Skip to content

B580 – Asymmetric API Presentation Failures: Vulkan Swapchain Context Loss (Thread Crash via igvk64) #649

@clickersoft

Description

@clickersoft

main report url: https://community.intel.com/t5/Intel-Arc-Discrete-Graphics/B580-Asymmetric-API-Presentation-Failures-Vulkan-Swapchain/m-p/1750414

[BUG / REGRESSION] Intel Arc B580 (Battlemage) – Asymmetric API Presentation Failures: Vulkan Swapchain Context Loss (Thread Crash via igvk64.dll) vs. OpenGL DWM Presentation Bypass During OS Window State Transitions
Note for Reviewing Engineers: English is not my native language. I have used an AI assistant to precisely translate my real-world testing observations, Windows Event Viewer telemetry, and application anomalies into standard English graphics engineering terminology to ensure this bug report is clear and actionable for your development team. Full log files are attached to this post.

  1. System Configuration & Hardware Environment

GPU Architecture: Intel Battlemage Xe2-HPG Discrete Graphics Architecture
Specific Board Vendor / Model: Acer Nitro Intel Arc B580 12GB OC Black
Device ID / PCI Configuration: PCI\VEN_8086&DEV_E20B (Bus ID: 47)
Firmware / VBIOS Revision: 23.0.1051
Silicon Topology: 20 Xe2 Cores | 160 Execution Units (EUs) | 2560 ALUs | 20 Dedicated Ray Tracing Cores
Frame Buffer Configuration: 12288 MB GDDR6 | Physical Bus Width: 192-bit
Resizable BAR Status: ENABLED (Confirmed via driver topology)
Intel Graphics Driver Branch: 32.0.101.8826 WHQL
Faulting Driver Component: igvk64.dll (Vulkan Driver Runtime Component)
Operating System Environment: Windows 11 Pro 64-Bit (Build 26200)
2. Software & Diagnostic Tool Environment

Diagnostic Suite: Geeks3D FurMark 2.10.2.0 (Build Profile: Oct 22 2025)
Core Engines: GeeXLab Player Core Engine 0.66.2.0 | GraphX Core 0.60.1.0 (Codename: Dirac)
Vulkan Runtime Loader API: 1.4.348 (Instance API Version: 1.1)
Execution CLI Command String:
furmark.exe --demo furmark-vk --gpu-index 0 --width 1600 --height 900 --msaa 1 --furmark-bfc 0 --furmark-bkg-img-id 0 --artifact-scanner
3. Detailed Problem Statement & Primary Symptoms
A deterministic, highly repeatable regression has been isolated in how the Intel Battlemage display presentation pipeline interacts with the Windows Desktop Window Manager (DWM) during fundamental OS window state changes. This is specifically triggered by minimizing the window to the taskbar via SW_MINIMIZE and subsequently restoring it via SW_RESTORE, or utilizing Win+D (Show Desktop) toggles.
The driver exhibits deeply asymmetric, bugged behavior depending strictly on whether the underlying software utilizes the modern Vulkan explicit API or the legacy OpenGL API layer.
Symptom A: The Vulkan Pipeline (Fatal Crash Path)
When running FurMark 2 under Vulkan with the continuous mathematical Artifact Scanner enabled, minimizing and then maximizing the rendering window causes an immediate, unhandled 3D viewport exception that crashes back to the desktop.

The crash does NOT occur during uninterrupted rendering.
The crash does NOT occur when simply Alt+Tabbing away from the application to another full-screen window (see Test Cases below).
Upon restoring the minimized Vulkan window, distinct visual corruption patterns appear for less than one second, immediately followed by the termination of the 3D viewport thread.
The FurMark launcher/configuration GUI window (running on an isolated parent thread) remains perfectly alive and interactive.
Visual Corruption Patterns Observed Before Vulkan Crash:

Pattern 1 (Transient Localized Blocks): Small, colored rectangular fragments (primarily blue and purple hues) appearing briefly on the screen immediately upon restoration. Note: The structural location of these corrupted blocks is completely variable and not fixed across different test runs.
Pattern 2 (Horizontal Banding): A displaced horizontal corruption strip stretching across a significant portion of the rendered donut image, visible for a microsecond before thread termination.
(Note: These visual artifacts are entirely transient and have never been observed during uninterrupted rendering cycles.)
Symptom B: The OpenGL Pipeline (Runaway Workload & Presentation Bypass)
When running the exact same hardware configuration under the legacy OpenGL graphics layer, the application remains fully stable and avoids crashing. The attached OpenGL logs confirm that the engine successfully catches the OS window state modification flag (which treats minimization as an internal resize event to a null frame) and safely disengages the scanner subsystem via an automated handler routine to avoid memory exceptions.
However, a secondary driver flaw manifests here. The moment the OpenGL window hits a minimized state, the Intel display driver acts as if it has been unhooked from the Windows DWM frame presentation interval constraint (V-Sync/Present throttling). Instead of entering a low-power background execution sleep state, the frame generation runs entirely uncapped—skyrocketing from a baseline of ~174 FPS to an immediate runaway 350–400 FPS state while entirely hidden in the taskbar. This subjects the GPU to completely unnecessary power spikes and thermal density jumps while entirely hidden from user view.
4. Controlled Isolation Test Cases & Reproducibility Matrix

Test Case A (Standard Taskbar Minimization): Launch FurMark 2 Vulkan with Artifact Scanner Enabled. Minimize the active 3D window via the standard window control. Wait 5 seconds, then click the taskbar icon to restore/maximize.

Result: Brief transient visual corruption followed by an immediate crash of the 3D viewport window. (Reproducibility: 100%)
Test Case B (OS Desktop Toggles via Win+D): Launch active benchmark execution -> Press Win+D to show the Windows desktop -> Press Win+D or click to return to the FurMark surface context.

Result: Immediate application crash upon surface restoration. (Reproducibility: 100%)
Test Case C (Standard Focus Shift via Alt+Tab): Launch active benchmark execution -> Alt+Tab directly into a different running browser or application background -> Alt+Tab directly back to the active test window.

Result: No corruption. No crash. The loop continues rendering normally. This proves that background focus loss itself is stable; the crash is explicitly tied to window surface minimization states. (Reproducibility: 100%)
Test Case D (Sustained Minimization Timing): Launch active benchmark execution -> Minimize window and leave it sitting minimized in the taskbar for >10 seconds -> Restore window.

Result: Crash occurs identically to Test Case A, proving that prolonged background states do not clear the faulted buffer memory. (Reproducibility: 100%)
Test Case E (Internal OS Window Resizing): While manual mouse boundary dragging is locked out by the FurMark application GUI constraints, the Windows OS forces an internal window-extent adjustment flag upon minimization and restoration. Under OpenGL, this internal flag is caught and handled seamlessly. Under Vulkan, this re-allocation loop drops surface tracking entirely and crashes.
5. Hardware Performance State Prior to Crash
The Battlemage silicon operates flawlessly under unhindered rendering paths, proving that this crash is entirely a software/API synchronization failure rather than hardware degradation, unstable factory overclocks, or thermal protection trips:

Frames Rendered Prior to Transition: 1300 frames (Duration: 8989 ms)
Pacing & Framerate: 136 Min / 143 Avg / 152 Max FPS
GPU Thermals: Stabilized beautifully at a peak of 64°C (Ambient desktop idle: 43°C)
GPU Core Clock: Reached a peak monitored core boost of 2850 MHz (Usage: 95%)
6. Technical Analysis & Suspected Root Cause

Vulkan Swapchain Context Loss: When a window bound to a low-level Vulkan presentation loop is minimized, Windows modifications to surface capabilities force a swapchain invalidation state (VK_ERROR_OUT_OF_DATE_KHR). Upon window restoration, the engine attempts to immediately recreate the swapchain extents using vkCreateSwapchainKHR.
Re-allocation Synchronization Deficit: Driver branch 32.0.101.8826 suffers a minor synchronization lag during this rapid memory re-allocation loop within the B580’s 12GB frame buffer. Uninitialized or unaligned memory addresses are briefly sent down the pipeline, creating the transient, variable-position visual corruption blocks (Patterns 1 and 2).
Scanner Array Overflow Exception: If the mathematical [ArtifactScanner] module is active, its mathematical logging subsystem intercepts these unaligned frames. The scanner misinterprets the driver's layout synchronization lag as thousands of structural rendering artifacts happening simultaneously. The application's error-tracking array encounters a catastrophic overflow exception, triggering an out-of-bounds pointer calculation and resulting in a fatal 0xc0000005 Access Violation inside igvk64.dll at fault offset 0x00000000009cd168.

Image [_furmark_log.txt](https://github.com/user-attachments/files/28922047/_furmark_log.txt) [_geexlab_log.txt](https://github.com/user-attachments/files/28922046/_geexlab_log.txt) [Event Viewer log.txt](https://github.com/user-attachments/files/28922045/Event.Viewer.log.txt) Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions