Skip to content

Make explicit DXVK mode strict: no fallback to WineD3D#33

Merged
weter11 merged 3 commits intomainfrom
strict-dxvk-mode-enforcement-2121893909168592742
Mar 15, 2026
Merged

Make explicit DXVK mode strict: no fallback to WineD3D#33
weter11 merged 3 commits intomainfrom
strict-dxvk-mode-enforcement-2121893909168592742

Conversation

@weter11
Copy link
Owner

@weter11 weter11 commented Mar 15, 2026

This change enforces a strict backend policy when a user explicitly selects DXVK. It prevents silent fallbacks to WineD3D by using native-only overrides, performs more comprehensive pre-launch DLL validation (now including d3d10core), and ensures that any observed WineD3D usage during a DXVK-requested launch is treated as a session failure. These changes ensure that the launcher's reporting remains truthful and that users are clearly notified of environment issues that prevent DXVK from being used.


PR created automatically by Jules for task 2121893909168592742 started by @weter11

- Implemented strict DLL overrides (`=n`) in `build_dll_overrides` to prevent Wine from falling back to built-in WineD3D when DXVK is explicitly requested.
- Enhanced pre-launch validation in `ResolveDllProvidersStage` to include `d3d10core` and fail if any required DXVK DLLs are missing for the target architecture.
- Updated the launch pipeline to treat backend policy violations as a `Failure` state when DXVK is requested.
- Added a `STRICT_DXVK_POLICY_VIOLATION` diagnostic warning to `LaunchInvariantValidator` when WineD3D usage is observed despite a DXVK request.
- Updated sanity checks and unit tests to reflect and verify the strict enforcement policy.
- Maintained existing permissive behavior for `Auto` mode.

Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
@google-labs-jules
Copy link
Contributor

👋 Jules, reporting for duty! I'm here to lend a hand with this pull request.

When you start a review, I'll add a 👀 emoji to each comment to let you know I've read it. I'll focus on feedback directed at me and will do my best to stay out of conversations between you and other bots or reviewers to keep the noise down.

I'll push a commit with your requested changes shortly after. Please note there might be a delay between these steps, but rest assured I'm on the job!

For more direct control, you can switch me to Reactive Mode. When this mode is on, I will only act on comments where you specifically mention me with @jules. You can find this option in the Pull Request section of your global Jules UI settings. You can always switch back!

New to Jules? Learn more at jules.google/docs.


For security, I will only act on instructions from the user who triggered this task.

google-labs-jules bot and others added 2 commits March 15, 2026 20:56
- Enriched `WINEDLLPATH` in `WineTkgRunner` to explicitly include arch-specific subdirectories (`x86_64-windows`, `i386-windows`) for all runner library paths.
- Added runner DLL directories to `WINEPATH` to aid Wine's native PE loader in resolving dependencies (fixing error c0000135).
- Enhanced evidence classification in `wine_capture.rs` to detect "Failed to load module" and "Library ... not found" messages from Wine logs.
- Improved failure diagnostics in `LaunchInvariantValidator` to report precise details about which DLL failed to load, its provider, path, and architecture.
- Added `d3d10` and `d3d10_1` to strict pre-launch validation in `ResolveDllProvidersStage` for full D3D10 stack coverage.
- Fixed a compilation error in `WineTkgRunner` where an incorrect variable name was used.
- Updated unit tests to align with the latest strict mode argument requirements.

Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
- Refactored `ResolveDllProvidersStage` to use DXVK capability dependency sets (DX11/DXGI, DX10, DX9, DX8) instead of requiring literal DLL lists.
- Removed incorrect requirements for `d3d10.dll` and `d3d10_1.dll`, which are not present in standard DXVK layouts (DX10 support is provided via `d3d10core.dll`).
- Improved error messages to accurately describe missing translation capabilities and their specific DLL requirements.
- Ensured Batman: Arkham Origins (X86) no longer fails validation due to false-missing DLL errors.
- Maintained strict explicit-DXVK policy by requiring all applicable capabilities for a complete stack.

Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
@weter11 weter11 merged commit 8ab8f6a into main Mar 15, 2026
2 checks passed
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