Skip to content

backport and standarize options#46

Merged
pythonlover02 merged 11 commits into
mainfrom
upstream-config
Jun 23, 2026
Merged

backport and standarize options#46
pythonlover02 merged 11 commits into
mainfrom
upstream-config

Conversation

@pythonlover02

Copy link
Copy Markdown
Owner

No description provided.

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.
@pythonlover02 pythonlover02 self-assigned this Jun 11, 2026
@pythonlover02 pythonlover02 added the enhancement New feature or request label Jun 11, 2026
@pythonlover02 pythonlover02 changed the title backports and standarization of the options backport and standarize options Jun 11, 2026
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
@pythonlover02 pythonlover02 marked this pull request as ready for review June 23, 2026 23:42
@pythonlover02 pythonlover02 merged commit fa3f903 into main Jun 23, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant