You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Enforce strict architecture-aware DXVK policy and normalize architecture 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>
0 commit comments