Skip to content

Upgrade DXVK to 3.0.2 - #6

Merged
viktor-ferenczi merged 1 commit into
mainfrom
dxvk-update
Aug 22, 2026
Merged

Upgrade DXVK to 3.0.2#6
viktor-ferenczi merged 1 commit into
mainfrom
dxvk-update

Conversation

@viktor-ferenczi

Copy link
Copy Markdown
Contributor

Bump the DXVK pin from v2.7.1 to v3.0.2 and rebase the patch series onto it.

Both patches are still required — upstream has fixed neither:

  • 0001 (Windows-ABI 16-bit WCHAR): WCHAR is still wchar_t in include/native/windows/windows_base.h at v3.0.2. Two rebase changes were needed: upstream dropped the duplicate LPWSTR typedef the old hunk keyed on, and the shared-NT-handle naming code added in 3.0 (D3D11DXGIResource::CreateSharedHandle, D3D11Fence::CreateSharedHandle) calls the wchar_t-typed wcslen/swprintf, which no longer compiles once WCHAR is 16-bit. Both are rewritten onto DXVK's own str::length / str::transcodeString, which are character-type generic and so behave identically on the Windows build.

  • 0002 (use the new surface extent on resize): unchanged upstream; the patch applies with only a line offset.

Also fix the cached-clone path in build_dxvk.sh: it checked the new tag out before discarding the previous run's applied patches, so every version bump failed locally with "local changes would be overwritten by checkout". CI was unaffected (fresh clone every run).

Note for consumers: DXVK 3.0 tightens the Vulkan device requirements (maintenance6, robustness2, depth_clip_enable, 8/16-bit storage, shaderInt8 /shaderInt16 among others moved from optional to required).

Verified by a full local ./build.sh with build/dxvk wiped: DXVK builds clean, the libs report v3.0.2, the ldd allow-list and DT_RUNPATH=$ORIGIN assertions pass, and all three archives package.

Bump the DXVK pin from v2.7.1 to v3.0.2 and rebase the patch series onto it.

Both patches are still required — upstream has fixed neither:

* 0001 (Windows-ABI 16-bit WCHAR): `WCHAR` is still `wchar_t` in
  include/native/windows/windows_base.h at v3.0.2. Two rebase changes were
  needed: upstream dropped the duplicate `LPWSTR` typedef the old hunk keyed
  on, and the shared-NT-handle naming code added in 3.0
  (D3D11DXGIResource::CreateSharedHandle, D3D11Fence::CreateSharedHandle)
  calls the wchar_t-typed wcslen/swprintf, which no longer compiles once
  WCHAR is 16-bit. Both are rewritten onto DXVK's own str::length /
  str::transcodeString, which are character-type generic and so behave
  identically on the Windows build.

* 0002 (use the new surface extent on resize): unchanged upstream; the patch
  applies with only a line offset.

Also fix the cached-clone path in build_dxvk.sh: it checked the new tag out
before discarding the previous run's applied patches, so every version bump
failed locally with "local changes would be overwritten by checkout". CI was
unaffected (fresh clone every run).

Note for consumers: DXVK 3.0 tightens the Vulkan device requirements
(maintenance6, robustness2, depth_clip_enable, 8/16-bit storage, shaderInt8
/shaderInt16 among others moved from optional to required).

Verified by a full local ./build.sh with build/dxvk wiped: DXVK builds
clean, the libs report v3.0.2, the ldd allow-list and DT_RUNPATH=$ORIGIN
assertions pass, and all three archives package.
@viktor-ferenczi
viktor-ferenczi merged commit 6c48345 into main Aug 22, 2026
1 check passed
@viktor-ferenczi
viktor-ferenczi deleted the dxvk-update branch August 22, 2026 19:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant