Enforce strict DXVK policy and fix Wine log diagnostics#32
Conversation
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>
|
👋 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 New to Jules? Learn more at jules.google/docs. For security, I will only act on instructions from the user who triggered this task. |
…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>
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