Skip to content

Enforce strict DXVK policy and fix Wine log diagnostics#32

Merged
weter11 merged 3 commits intomainfrom
strict-dxvk-policy-11865275950888502371
Mar 13, 2026
Merged

Enforce strict DXVK policy and fix Wine log diagnostics#32
weter11 merged 3 commits intomainfrom
strict-dxvk-policy-11865275950888502371

Conversation

@weter11
Copy link
Owner

@weter11 weter11 commented Mar 12, 2026

Enforced strict DXVK backend policy to prevent silent fallbacks to WineD3D. Fixed the runtime evidence scanner to use the configured WINE_LOG_OUTPUT path. Introduced a 'Degraded' launch status to flag policy violations even if the process starts successfully. Improved diagnostics with specific error codes for strict policy failures.


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

This change addresses misleading behavior when DXVK is explicitly selected
but not used by the runtime.

Key changes:
- ResolveDllProvidersStage now fails early if required DXVK DLLs are missing
  when the DXVK policy is explicitly selected.
- Introduced LaunchResult::Degraded to distinguish between process spawn
  success and backend policy satisfaction.
- Fixed runtime evidence scanner in LaunchPipeline to use the actual
  configured WINE_LOG_OUTPUT path, resolving "Wine log missing" errors.
- Updated LaunchInvariantValidator to emit STRICT_POLICY_VIOLATION and
  STRICT_DXVK_EVIDENCE_MISSING codes for better diagnostics.
- Ensured WineTkgRunner correctly reflects the effective backend without
  silent degradation in explicit modes.

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 13, 2026 06:01
…stics

This change addresses misleading behavior when DXVK is explicitly selected
but not used by the runtime, particularly for Win32 games like Batman: Arkham Origins.

Key changes:
- Implemented PE header architecture detection for Windows executables.
- ResolveDllProvidersStage now fails early if required DXVK DLLs for the
  CORRECT architecture are missing when the DXVK policy is explicitly selected.
- DllProviderResolver now strictly filters runner-bundled DLLs by architecture
  (i386-windows vs x86_64-windows) to prevent cross-architecture resolution.
- Introduced LaunchResult::Degraded to distinguish between process spawn
  success and backend policy violation.
- Fixed runtime evidence scanner in LaunchPipeline to use the actual
  configured WINE_LOG_OUTPUT path, resolving "Wine log missing" errors.
- Updated LaunchInvariantValidator to emit STRICT_POLICY_VIOLATION and
  STRICT_DXVK_EVIDENCE_MISSING codes for better diagnostics.
- Ensured WineTkgRunner correctly reflects the effective backend without
  silent degradation in explicit modes.

Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
…ure detection

This change addresses misleading behavior when DXVK is explicitly selected
but not used by the runtime, particularly for Win32 games like Batman: Arkham Origins.

Key changes:
- Implemented robust PE header architecture detection for Windows executables.
- Normalized architecture into a consistent `ExecutableArchitecture` enum
  (X86, X86_64, Unknown) and propagated it through the launch pipeline.
- ResolveDllProvidersStage now fails early if required DXVK DLLs for the
  detected architecture are missing when the DXVK policy is explicitly selected.
- DllProviderResolver now strictly filters runner-bundled DLLs by architecture
  (i386-windows vs x86_64-windows) to prevent cross-architecture resolution.
- Improved diagnostics output to clearly report the target architecture
  (e.g., target_architecture = "x86") and the detection method.
- Introduced LaunchResult::Degraded to distinguish between process spawn
  success and backend policy violations.
- Fixed runtime evidence scanner in LaunchPipeline to use the actual
  configured WINE_LOG_OUTPUT path, resolving "Wine log missing" errors.
- Updated LaunchInvariantValidator to emit STRICT_POLICY_VIOLATION and
  STRICT_DXVK_EVIDENCE_MISSING codes for better diagnostics.
- Ensured WineTkgRunner correctly reflects the effective backend without
  silent degradation in explicit modes.

Co-authored-by: weter11 <14630689+weter11@users.noreply.github.com>
@weter11 weter11 merged commit 6f5118e into main Mar 13, 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