backport and standarize options#46
Merged
Merged
Conversation
tilerMode is only partially active. preferCachedMemory biases host-visible allocations toward cached memory on tilers and works. preferRenderPassOps is detected and set but not yet consumed by Sarek render-pass code, which diverges significantly from upstream; wiring it requires changes to the context/render-pass layer and on-device testing, left as a future todo.
Zero initializes host-visible mapped memory to work around games that assume freshly mapped buffers are clean and break on stale data. Sarek static budget allocator has no per allocation flags or clear on free hook like upstream, so this clears on handout instead of on free. Memory is zeroed at every site that returns a mapped pointer: sub-allocated slices in DxvkMemoryChunk::alloc (covering reused slices from recycled chunks) and direct large/dedicated allocations in tryAllocFromType. Nonmapped memory is skipped via a null map-pointer guard. App visible guarantee matches upstream (no resource ever receives stale mapped data), but the mechanism differs. Off by default; adds one memset per host visible allocation when enabled.
Replaces native SPIR‑V Sin/Cos with a Taylor series approximation on Intel GPUs to fix rendering bugs caused by hardware inaccuracy near x ≈ ±π/2 (dxvk doitsujin#4861).
dxgi: - dxgi.forceRefreshRate > forces a single refresh rate in mode enumeration - dxgi.hideNvkGpu > separate override for NVK adapters; defaults to hideNvidiaGpu - isXessUsed helper > auto-hide Intel vendor when libxess(_dx11).dll is loaded - DxgiOutput now holds a raw DxgiFactory back-pointer so FindClosestMatchingMode1 can read forceRefreshRate (factory outlives output via the adapter, so refcount isn't needed and a Com<> would force a circular include) d3d11: - d3d11.exposeDriverCommandLists > lets games that mis-detect AMD opt out of DriverCommandLists - d3d11.enableContextLock > force ID3D10Multithread protection on the immediate context - d3d11.forceComputeLdsBarriers > alias for d3d11.forceTgsmBarriers - d3d11.relaxedGraphicsBarriers > alias for d3d11.ignoreGraphicsBarriers; relaxedBarriers now also implies graphics relaxation (matches upstream; behavior change for existing relaxedBarriers users) - dxvk.maxFrameRate > alias for dxgi.maxFrameRate (also added to d3d9) d3d9: - d3d9.hideNvidiaGpu / d3d9.hideNvkGpu / d3d9.hideAmdGpu / d3d9.hideIntelGpu > vendor-spoofing toggles layered on top of the existing customVendorId path; hideIntelGpu defaults to true (mirrors upstream; behavior change on Intel hardware - reports as AMD Radeon RX 6700 XT by default). Fallbacks are AMD RX 6700 XT, then Nvidia RTX 3060, then a generic 0xdead/0xbeef. Nonclassical vendors are hidden by default. NVK vs proprietary Nvidia is distinguished via matchesDriver so hideNvkGpu only fires on Mesa NVK. - d3d9.supportCubeDepthFormats > re-allows depth-format cube textures (SimCity Societies fix) - d3d9.useD32forD24 > forces D32f fallback for D24 - d3d9.forceRefreshRate > mode-list filter, mirrors the dxgi/d3d9 upstream option - d3d9.cachedWriteOnlyBuffers > alias for d3d9.cachedDynamicBuffers - d3d9.deviceLocalConstantBuffers > now a Tristate; Auto = on for discrete GPUs (behavior change: previously hardcoded false, now defaults to true on discrete) swapchain + fps limiter: - UpdateTargetFrameRate > per-Present in both d3d9 and d3d11 swapchains - negative maxFrameRate > soft cap; auto-engages when SyncInterval > 1 and rate left at 0 - FpsLimiter > preserves deviation on slow frames for soft limits (matches upstream) util: - util_string.h strlcpy > switched from strncpy to strlen+memcpy with explicit, silences GCC 16
Also enable d3d11.constantBufferRangeCheck by default (AMD still excluded via vendor check) to match upstream behavior, which dropped the option entirely in favor of VK_EXT_robustness2. This removes the need for per app entries while keeping our SSBO based fallback path for vendors that need it. backport: - EDF6 - Scarface - RaceRoom Racing Experience - Blitzkrieg 2 - Perilous Warp - Sims 3 - SimCity Societies: Destinations - Mafia update: - Granblue Fantasy: Relink remove (now covered by constantBufferRangeCheck default): - Dark Souls Remastered - Grim Dawn - NieR:Automata - Titan Quest - Saints Row IV - Saints Row: The Third - Blue Reflection - Secret World Legends (DX11) - Styx: Shards of Darkness - Romancing Saga 3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.