protonscr

[Windows] Image corruption in DXGI WGC captured video, Euro Truck Simulator 2 & FFXIV

dxvkclosed windows
doitsujin/dxvk#5587 · opened 2026-04-17 by mhtvsSFrpHdE · updated 2026-05-18 · 7 comments · github
MmhtvsSFrpHdE 2026-04-17 github

I know Windows is unsupported and likely this issue won't appear on Linux
Anyone recognize image corruption like this?
This appears on quickly move (shake) camera, and sometimes tearing happen even on screenshot level instead of monitor level.

Since it appear in multiple game, something may be wrong.

Image

Update:
Solution 1, https://github.com/doitsujin/dxvk/issues/5587#issuecomment-4369388785
Solution 2 (deprecated), https://github.com/doitsujin/dxvk/issues/5587#issuecomment-4270863262

BBlisto91 2026-04-17 github

Hi there. Attach a dxvk log and if able make a apitrace.

MmhtvsSFrpHdE 2026-04-17 github

@Blisto91 Oops, my bad, didn't excepted

Windows 11 25H2 26200.7840
NVIDIA GeForce GTX 1080 Ti / driver version 582.28 / Vulkan 1.4.341
AMD Ryzen 5 8400F
Kingston FURY Beast DDR5 5200MT

Click to expand / fold log

eurotrucks2_dxgi.log
info:  Game: eurotrucks2.exe
info:  DXVK: v2.7.1
info:  Build: x86_64 gcc 15.1.0
info:  Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7ffc49d4ebf0
info:  Extension providers:
info:    Platform WSI
info:    OpenVR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:    OpenXR
info:  Enabled instance extensions:
info:    VK_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  Found device: NVIDIA GeForce GTX 1080 Ti (NVIDIA 582.28.0)
warn:  DXGI: Found monitors not associated with any adapter, using fallback
info:  DXGI: Hiding actual GPU, reporting:
info:    vendor ID: 0x1002
info:    device ID: 0x73df
warn:  CreateDXGIFactory2: Ignoring flags
info:  Game: eurotrucks2.exe
info:  DXVK: v2.7.1
info:  Build: x86_64 gcc 15.1.0
info:  Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7ffc49d4ebf0
info:  Extension providers:
info:    Platform WSI
info:    OpenVR
info:  OpenVR: could not open registry key, status 2
info:  OpenVR: Failed to locate module
info:    OpenXR
info:  Enabled instance extensions:
info:    VK_EXT_surface_maintenance1
info:    VK_KHR_get_surface_capabilities2
info:    VK_KHR_surface
info:    VK_KHR_win32_surface
info:  Found device: NVIDIA GeForce GTX 1080 Ti (NVIDIA 582.28.0)
warn:  DXGI: Found monitors not associated with any adapter, using fallback
info:  DXGI: Hiding actual GPU, reporting:
info:    vendor ID: 0x1002
info:    device ID: 0x73df
warn:  DXGI: MakeWindowAssociation: Ignoring flags
eurotrucks2_d3d11.log
info:  D3D11InternalCreateDevice: Maximum supported feature level: D3D_FEATURE_LEVEL_12_1
info:  D3D11InternalCreateDevice: Using feature level D3D_FEATURE_LEVEL_10_0
info:  Creating device:
info:  NVIDIA GeForce GTX 1080 Ti:
info:    Driver   : NVIDIA 582.28.0
info:  Queues:
info:    Graphics : (0, 0)
info:    Transfer : (1, 0)
info:    Sparse   : (0, 0)
info:  Memory:
info:    Heap 0: 10.84 GiB (DEVICE_LOCAL)
info:    Budget: 10.9 GiB
info:      Type  7: DEVICE_LOCAL
info:    Heap 1: 31.80 GiB
info:    Budget: 31.5 GiB
info:      Type  0: (None)
info:      Type  1: (None)
info:      Type  2: (None)
info:      Type  3: (None)
info:      Type  4: (None)
info:      Type  5: (None)
info:      Type  6: (None)
info:      Type  8: HOST_VISIBLE | HOST_COHERENT
info:      Type  9: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED
info:    Heap 2: 214 MiB (DEVICE_LOCAL)
info:    Budget: 209 MiB
info:      Type 10: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT
info:  Enabled extensions:
info:    VK_EXT_attachment_feedback_loop_layout
info:    VK_EXT_conservative_rasterization
info:    VK_EXT_custom_border_color
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_depth_bias_control
info:    VK_EXT_extended_dynamic_state3
info:    VK_EXT_fragment_shader_interlock
info:    VK_EXT_full_screen_exclusive
info:    VK_EXT_graphics_pipeline_library
info:    VK_EXT_hdr_metadata
info:    VK_EXT_line_rasterization
info:    VK_EXT_memory_priority
info:    VK_EXT_multi_draw
info:    VK_EXT_non_seamless_cube_map
info:    VK_EXT_robustness2
info:    VK_EXT_shader_module_identifier
info:    VK_EXT_swapchain_maintenance1
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_external_memory_win32
info:    VK_KHR_external_semaphore_win32
info:    VK_KHR_load_store_op_none
info:    VK_KHR_maintenance5
info:    VK_KHR_maintenance6
info:    VK_KHR_maintenance7
info:    VK_KHR_pipeline_library
info:    VK_KHR_present_id
info:    VK_KHR_present_wait
info:    VK_KHR_swapchain
info:    VK_KHR_swapchain_mutable_format
info:    VK_KHR_win32_keyed_mutex
info:    VK_NV_descriptor_pool_overallocation
info:    VK_NV_low_latency2
info:    VK_NV_raw_access_chains
info:  Enabled features:
info:    depthBiasClamp                 : 1
info:    depthBounds                    : 1
info:    depthClamp                     : 1
info:    drawIndirectFirstInstance      : 1
info:    dualSrcBlend                   : 1
info:    fillModeNonSolid               : 1
info:    fragmentStoresAndAtomics       : 1
info:    fullDrawIndexUint32            : 1
info:    geometryShader                 : 1
info:    imageCubeArray                 : 1
info:    independentBlend               : 1
info:    logicOp                        : 1
info:    multiDrawIndirect              : 1
info:    multiViewport                  : 1
info:    occlusionQueryPrecise          : 1
info:    pipelineStatisticsQuery        : 1
info:    robustBufferAccess             : 1
info:    sampleRateShading              : 1
info:    samplerAnisotropy              : 1
info:    shaderClipDistance             : 1
info:    shaderCullDistance             : 1
info:    shaderFloat64                  : 1
info:    shaderImageGatherExtended      : 1
info:    shaderInt16                    : 1
info:    shaderInt64                    : 1
info:    shaderSampledImageArrayDynamicIndexing : 1
info:    sparseBinding                  : 1
info:    sparseResidencyBuffer          : 1
info:    sparseResidencyImage2D         : 1
info:    sparseResidencyImage3D         : 1
info:    sparseResidency2Samples        : 1
info:    sparseResidency4Samples        : 1
info:    sparseResidency8Samples        : 1
info:    sparseResidency16Samples       : 1
info:    sparseResidencyAliased         : 1
info:    shaderResourceResidency        : 1
info:    shaderResourceMinLod           : 1
info:    tessellationShader             : 1
info:    textureCompressionBC           : 1
info:    variableMultisampleRate        : 1
info:    vertexPipelineStoresAndAtomics : 1
info:    wideLines                      : 1
info:    shaderDrawParameters           : 1
info:    storagePushConstant16          : 1
info:    bufferDeviceAddress            : 1
info:    descriptorIndexing             : 1
info:    descriptorBindingSampledImageUpdateAfterBind : 1
info:    descriptorBindingUpdateUnusedWhilePending : 1
info:    descriptorBindingPartiallyBound : 1
info:    drawIndirectCount              : 1
info:    hostQueryReset                 : 1
info:    runtimeDescriptorArray         : 1
info:    samplerFilterMinmax            : 1
info:    samplerMirrorClampToEdge       : 1
info:    shaderInt8                     : 1
info:    shaderOutputViewportIndex      : 1
info:    shaderOutputLayer              : 1
info:    timelineSemaphore              : 1
info:    uniformBufferStandardLayout    : 1
info:    vulkanMemoryModel              : 1
info:    dynamicRendering               : 1
info:    maintenance4                   : 1
info:    robustImageAccess              : 0
info:    pipelineCreationCacheControl   : 1
info:    shaderDemoteToHelperInvocation : 1
info:    shaderZeroInitializeWorkgroupMemory : 1
info:    synchronization2               : 1
info:  VK_EXT_attachment_feedback_loop_layout:
info:    attachmentFeedbackLoopLayout   : 1
info:  VK_EXT_conservative_rasterization:
info:    extConservativeRasterization   : 1
info:  VK_EXT_custom_border_color:
info:    customBorderColors             : 1
info:    customBorderColorWithoutFormat : 1
info:  VK_EXT_depth_clip_enable:
info:    depthClipEnable                : 1
info:  VK_EXT_depth_bias_control:
info:    depthBiasControl               : 1
info:    leastRepresentableValueForceUnormRepresentation : 1
info:    floatRepresentation            : 0
info:    depthBiasExact                 : 1
info:  VK_EXT_descriptor_buffer:
info:    descriptorBuffer               : 0
info:  VK_EXT_extended_dynamic_state3:
info:    extendedDynamicState3AlphaToCoverageEnable : 1
info:    extendedDynamicState3DepthClipEnable : 1
info:    extendedDynamicState3RasterizationSamples : 1
info:    extendedDynamicState3SampleMask : 1
info:    extendedDynamicState3LineRasterizationMode : 1
info:  VK_EXT_fragment_shader_interlock:
info:    fragmentShaderSampleInterlock  : 1
info:    fragmentShaderPixelInterlock   : 1
info:  VK_EXT_full_screen_exclusive:
info:    extFullScreenExclusive         : 1
info:  VK_EXT_graphics_pipeline_library:
info:    graphicsPipelineLibrary        : 1
info:  VK_EXT_hdr_metadata:
info:    extHdrMetadata                 : 1
info:  VK_EXT_line_rasterization:
info:    rectangularLines               : 1
info:    smoothLines                    : 1
info:  VK_EXT_memory_budget:
info:    extMemoryBudget                : 1
info:  VK_EXT_memory_priority:
info:    memoryPriority                 : 1
info:  VK_EXT_multi_draw:
info:    multiDraw                      : 1
info:  VK_EXT_non_seamless_cube_map:
info:    nonSeamlessCubeMap             : 1
info:  VK_EXT_pageable_device_local_memory:
info:    pageableDeviceLocalMemory      : 0
info:  VK_EXT_robustness2:
info:    robustBufferAccess2            : 1
info:    robustImageAccess2             : 1
info:    nullDescriptor                 : 1
info:  VK_EXT_shader_module_identifier:
info:    shaderModuleIdentifier         : 1
info:  VK_EXT_shader_stencil_export:
info:    extShaderStencilExport         : 0
info:  VK_EXT_swapchain_colorspace:
info:    extSwapchainColorSpace         : 0
info:  VK_EXT_swapchain_maintenance1:
info:    swapchainMaintenance1          : 1
info:  VK_EXT_transform_feedback:
info:    transformFeedback              : 1
info:    geometryStreams                : 1
info:  VK_EXT_vertex_attribute_divisor:
info:    vertexAttributeInstanceRateDivisor : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  VK_KHR_external_memory_win32:
info:    khrExternalMemoryWin32         : 1
info:  VK_KHR_external_semaphore_win32:
info:    khrExternalSemaphoreWin32      : 1
info:  VK_KHR_load_store_op_none:
info:    khrLoadStoreOpNone             : 1
info:  VK_KHR_maintenance5:
info:    maintenance5                   : 1
info:  VK_KHR_maintenance6:
info:    maintenance6                   : 1
info:  VK_KHR_maintenance7:
info:    maintenance7                   : 1
info:  VK_KHR_pipeline_library:
info:    khrPipelineLibrary             : 1
info:  VK_KHR_present_id:
info:    presentId                      : 1
info:  VK_KHR_present_wait:
info:    presentWait                    : 1
info:  VK_KHR_swapchain:
info:    khrSwapchain                   : 1
info:  VK_KHR_swapchain_mutable_format:
info:    khrSwapchainMutableFormat      : 1
info:  VK_KHR_win32_keyed_mutex:
info:    khrWin32KeyedMutex             : 1
info:  VK_NV_descriptor_pool_overallocation:
info:    descriptorPoolOverallocation   : 1
info:  VK_NV_low_latency2:
info:    nvLowLatency2                  : 1
info:  VK_NV_raw_access_chains:
info:    shaderRawAccessChains          : 1
info:  VK_NVX_binary_import:
info:    nvxBinaryImport                : 0
info:  VK_NVX_image_view_handle:
info:    nvxImageViewHandle             : 0
info:  Memory type mask for sparse resources: 0x80
info:  Memory type mask for buffer resources: 0x781, usage: 0x219ff
info:  DXVK: Graphics pipeline libraries supported
info:  D3D11InternalCreateDevice: Maximum supported feature level: D3D_FEATURE_LEVEL_12_1
info:  D3D11InternalCreateDevice: Using feature level D3D_FEATURE_LEVEL_12_1
info:  Creating device:
info:  NVIDIA GeForce GTX 1080 Ti:
info:    Driver   : NVIDIA 582.28.0
info:  Queues:
info:    Graphics : (0, 0)
info:    Transfer : (1, 0)
info:    Sparse   : (0, 0)
info:  Memory:
info:    Heap 0: 10.84 GiB (DEVICE_LOCAL)
info:    Budget: 10.9 GiB
info:      Type  7: DEVICE_LOCAL
info:    Heap 1: 31.80 GiB
info:    Budget: 31.5 GiB
info:      Type  0: (None)
info:      Type  1: (None)
info:      Type  2: (None)
info:      Type  3: (None)
info:      Type  4: (None)
info:      Type  5: (None)
info:      Type  6: (None)
info:      Type  8: HOST_VISIBLE | HOST_COHERENT
info:      Type  9: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED
info:    Heap 2: 214 MiB (DEVICE_LOCAL)
info:    Budget: 209 MiB
info:      Type 10: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT
info:  Enabled extensions:
info:    VK_EXT_attachment_feedback_loop_layout
info:    VK_EXT_conservative_rasterization
info:    VK_EXT_custom_border_color
info:    VK_EXT_depth_clip_enable
info:    VK_EXT_depth_bias_control
info:    VK_EXT_extended_dynamic_state3
info:    VK_EXT_fragment_shader_interlock
info:    VK_EXT_full_screen_exclusive
info:    VK_EXT_graphics_pipeline_library
info:    VK_EXT_hdr_metadata
info:    VK_EXT_line_rasterization
info:    VK_EXT_memory_priority
info:    VK_EXT_multi_draw
info:    VK_EXT_non_seamless_cube_map
info:    VK_EXT_robustness2
info:    VK_EXT_shader_module_identifier
info:    VK_EXT_swapchain_maintenance1
info:    VK_EXT_transform_feedback
info:    VK_EXT_vertex_attribute_divisor
info:    VK_KHR_external_memory_win32
info:    VK_KHR_external_semaphore_win32
info:    VK_KHR_load_store_op_none
info:    VK_KHR_maintenance5
info:    VK_KHR_maintenance6
info:    VK_KHR_maintenance7
info:    VK_KHR_pipeline_library
info:    VK_KHR_present_id
info:    VK_KHR_present_wait
info:    VK_KHR_swapchain
info:    VK_KHR_swapchain_mutable_format
info:    VK_KHR_win32_keyed_mutex
info:    VK_NV_descriptor_pool_overallocation
info:    VK_NV_low_latency2
info:    VK_NV_raw_access_chains
info:  Enabled features:
info:    depthBiasClamp                 : 1
info:    depthBounds                    : 1
info:    depthClamp                     : 1
info:    drawIndirectFirstInstance      : 1
info:    dualSrcBlend                   : 1
info:    fillModeNonSolid               : 1
info:    fragmentStoresAndAtomics       : 1
info:    fullDrawIndexUint32            : 1
info:    geometryShader                 : 1
info:    imageCubeArray                 : 1
info:    independentBlend               : 1
info:    logicOp                        : 1
info:    multiDrawIndirect              : 1
info:    multiViewport                  : 1
info:    occlusionQueryPrecise          : 1
info:    pipelineStatisticsQuery        : 1
info:    robustBufferAccess             : 1
info:    sampleRateShading              : 1
info:    samplerAnisotropy              : 1
info:    shaderClipDistance             : 1
info:    shaderCullDistance             : 1
info:    shaderFloat64                  : 1
info:    shaderImageGatherExtended      : 1
info:    shaderInt16                    : 1
info:    shaderInt64                    : 1
info:    shaderSampledImageArrayDynamicIndexing : 1
info:    sparseBinding                  : 1
info:    sparseResidencyBuffer          : 1
info:    sparseResidencyImage2D         : 1
info:    sparseResidencyImage3D         : 1
info:    sparseResidency2Samples        : 1
info:    sparseResidency4Samples        : 1
info:    sparseResidency8Samples        : 1
info:    sparseResidency16Samples       : 1
info:    sparseResidencyAliased         : 1
info:    shaderResourceResidency        : 1
info:    shaderResourceMinLod           : 1
info:    tessellationShader             : 1
info:    textureCompressionBC           : 1
info:    variableMultisampleRate        : 1
info:    vertexPipelineStoresAndAtomics : 1
info:    wideLines                      : 1
info:    shaderDrawParameters           : 1
info:    storagePushConstant16          : 1
info:    bufferDeviceAddress            : 1
info:    descriptorIndexing             : 1
info:    descriptorBindingSampledImageUpdateAfterBind : 1
info:    descriptorBindingUpdateUnusedWhilePending : 1
info:    descriptorBindingPartiallyBound : 1
info:    drawIndirectCount              : 1
info:    hostQueryReset                 : 1
info:    runtimeDescriptorArray         : 1
info:    samplerFilterMinmax            : 1
info:    samplerMirrorClampToEdge       : 1
info:    shaderInt8                     : 1
info:    shaderOutputViewportIndex      : 1
info:    shaderOutputLayer              : 1
info:    timelineSemaphore              : 1
info:    uniformBufferStandardLayout    : 1
info:    vulkanMemoryModel              : 1
info:    dynamicRendering               : 1
info:    maintenance4                   : 1
info:    robustImageAccess              : 0
info:    pipelineCreationCacheControl   : 1
info:    shaderDemoteToHelperInvocation : 1
info:    shaderZeroInitializeWorkgroupMemory : 1
info:    synchronization2               : 1
info:  VK_EXT_attachment_feedback_loop_layout:
info:    attachmentFeedbackLoopLayout   : 1
info:  VK_EXT_conservative_rasterization:
info:    extConservativeRasterization   : 1
info:  VK_EXT_custom_border_color:
info:    customBorderColors             : 1
info:    customBorderColorWithoutFormat : 1
info:  VK_EXT_depth_clip_enable:
info:    depthClipEnable                : 1
info:  VK_EXT_depth_bias_control:
info:    depthBiasControl               : 1
info:    leastRepresentableValueForceUnormRepresentation : 1
info:    floatRepresentation            : 0
info:    depthBiasExact                 : 1
info:  VK_EXT_descriptor_buffer:
info:    descriptorBuffer               : 0
info:  VK_EXT_extended_dynamic_state3:
info:    extendedDynamicState3AlphaToCoverageEnable : 1
info:    extendedDynamicState3DepthClipEnable : 1
info:    extendedDynamicState3RasterizationSamples : 1
info:    extendedDynamicState3SampleMask : 1
info:    extendedDynamicState3LineRasterizationMode : 1
info:  VK_EXT_fragment_shader_interlock:
info:    fragmentShaderSampleInterlock  : 1
info:    fragmentShaderPixelInterlock   : 1
info:  VK_EXT_full_screen_exclusive:
info:    extFullScreenExclusive         : 1
info:  VK_EXT_graphics_pipeline_library:
info:    graphicsPipelineLibrary        : 1
info:  VK_EXT_hdr_metadata:
info:    extHdrMetadata                 : 1
info:  VK_EXT_line_rasterization:
info:    rectangularLines               : 1
info:    smoothLines                    : 1
info:  VK_EXT_memory_budget:
info:    extMemoryBudget                : 1
info:  VK_EXT_memory_priority:
info:    memoryPriority                 : 1
info:  VK_EXT_multi_draw:
info:    multiDraw                      : 1
info:  VK_EXT_non_seamless_cube_map:
info:    nonSeamlessCubeMap             : 1
info:  VK_EXT_pageable_device_local_memory:
info:    pageableDeviceLocalMemory      : 0
info:  VK_EXT_robustness2:
info:    robustBufferAccess2            : 1
info:    robustImageAccess2             : 1
info:    nullDescriptor                 : 1
info:  VK_EXT_shader_module_identifier:
info:    shaderModuleIdentifier         : 1
info:  VK_EXT_shader_stencil_export:
info:    extShaderStencilExport         : 0
info:  VK_EXT_swapchain_colorspace:
info:    extSwapchainColorSpace         : 0
info:  VK_EXT_swapchain_maintenance1:
info:    swapchainMaintenance1          : 1
info:  VK_EXT_transform_feedback:
info:    transformFeedback              : 1
info:    geometryStreams                : 1
info:  VK_EXT_vertex_attribute_divisor:
info:    vertexAttributeInstanceRateDivisor : 1
info:    vertexAttributeInstanceRateZeroDivisor : 1
info:  VK_KHR_external_memory_win32:
info:    khrExternalMemoryWin32         : 1
info:  VK_KHR_external_semaphore_win32:
info:    khrExternalSemaphoreWin32      : 1
info:  VK_KHR_load_store_op_none:
info:    khrLoadStoreOpNone             : 1
info:  VK_KHR_maintenance5:
info:    maintenance5                   : 1
info:  VK_KHR_maintenance6:
info:    maintenance6                   : 1
info:  VK_KHR_maintenance7:
info:    maintenance7                   : 1
info:  VK_KHR_pipeline_library:
info:    khrPipelineLibrary             : 1
info:  VK_KHR_present_id:
info:    presentId                      : 1
info:  VK_KHR_present_wait:
info:    presentWait                    : 1
info:  VK_KHR_swapchain:
info:    khrSwapchain                   : 1
info:  VK_KHR_swapchain_mutable_format:
info:    khrSwapchainMutableFormat      : 1
info:  VK_KHR_win32_keyed_mutex:
info:    khrWin32KeyedMutex             : 1
info:  VK_NV_descriptor_pool_overallocation:
info:    descriptorPoolOverallocation   : 1
info:  VK_NV_low_latency2:
info:    nvLowLatency2                  : 1
info:  VK_NV_raw_access_chains:
info:    shaderRawAccessChains          : 1
info:  VK_NVX_binary_import:
info:    nvxBinaryImport                : 0
info:  VK_NVX_image_view_handle:
info:    nvxImageViewHandle             : 0
info:  Memory type mask for sparse resources: 0x80
info:  Memory type mask for buffer resources: 0x781, usage: 0x219ff
info:  DXVK: Graphics pipeline libraries supported
warn:  D3D11DXGIDevice::QueryInterface: Unknown interface query
warn:  0ec870a6-5d7e-4c22-8cfc-5baae07616ed
info:  DXVK: Using 6 compiler threads
info:  Presenter: Actual swapchain properties:
info:    Format:       VK_FORMAT_R8G8B8A8_UNORM
info:    Color space:  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR
info:    Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR (dynamic: yes)
info:    Buffer size:  1920x1080
info:    Image count:  3
Ddoitsujin maintainer 2026-04-17 github

Never seen anything like this myself but based on your description it's most likely compositor-related. Do you have your monitor plugged into the APU or something?

Either way I don't think there's much we can do here if this hasn't magically become a widespread issue overnight.

MmhtvsSFrpHdE 2026-04-17 github

@doitsujin Thank you. Indeed, my setup is pretty weird. I run Hyper-V GPU Partition virtual machine and "dual monitor" Microsoft Hyper-V Video + Virtual Display Driver, then capture using Sunshine WGC / DXGI Desktop duplication, encode use NVENC send to network and finally view video with Moonlight client.

There is no real monitor in such environment.

I understand this isn't common at all. I plan to do some random try. And also see if I'm luck enough for some other people in this situation and know how to workaround...

The reason to use dxvk on Windows is this game regularly lag spike, fps freeze for a very short time frequently.
With dxvk vulkan as backend, lag spike completely gone

MmhtvsSFrpHdE 2026-04-17 github

Damn, the issue magically gone during random try and I have no idea why, I undo my settings and still can't reproduce it

Strictly speaking, it hasn't completely disappeared. But barely noticeable anymore no longer bother me while gaming.

What I ever try

  1. Use Desktop duplication capture API
  2. Nvidia control panel vsync settings to "Use 3D application settings", in game vsync settings to off, frame limiter to off, use RTSS and profile "eurotrucks2.exe", per profile settings, frame limiter 60 fps, frame limiter mode NVIDIA Reflex, Use Microsoft Detours API hooking set to on
  3. Switch monitor mode to Extend (Win + P keyboard shortcut), turn on Microsoft Hyper-V Video + Virtual Display Driver together so Vulkan apps can run
  4. Set Virtual Display Driver to 60 Hz, then set to 120 Hz, then set to 60 Hz, then set to whatever you want
  5. Start game
  6. After enter the game, switch monitor mode to PC screen only, notice that vulkan apps can't start without Microsoft Hyper-V Video but able to continue to run on turn off Hyper-V video after game window is created
  7. Image corruption gone and looks pretty smooth
  8. Vertical sync is done on Moonlight client so there is no tearing

Extra settings I'm unsure is related or not:
Settings, System, Display, Graphics, Custom settings for applications, "Euro Truck Simulator 2 - Steam", "Optimizations for windowed games" from on to off, after I confirmed issue gone, finally turn back to on but issue can't reproduce, seems unrelated but I don't know

Look at step 4, at the beginning I use 120 Hz.
I was originally thought is game fps lock at 60 but virtual monitor set to 120, but in the end I game 60 fps with monitor 120 Hz I still get good image

Look at step 6, indeed it's necessary to solve this issue... where strange place is yesterday I switch to "PC Screen only" but it doesn't work at that time.

Maybe step 4 solved micro timing sync problem by coincidence?

So generally speaking, I touched some random settings then issue gone, I undo my settings back to they used to be to verify which settings is the critical, but nothing.

Well, for other people meet similar glitch, do these magic steps and see if... damn

MmhtvsSFrpHdE 2026-04-18 github

Confirmed step 4 is critical step.

Once a DXGI (or perhaps WGC) capture session is started (in this virtual environment), switch refresh rate once (and switch back) is necessary for games run use DXVK to be captured properly. This step can be done at any time no matter game is started or not

After capture session ended and later start another capture session, need switch refresh rate again.

I don't have native vulkan game, can't make comparison for digging deeper right now
Maybe Microsoft capture API just badly support vulkan and that would not surprise me at all

MmhtvsSFrpHdE 2026-05-04 github

Seems NVIDIA has new fancy stuff available in nvidiaProfileInspector that also fix this issue

Vulkan/OpenGL Present Method - Flags, 0x00080004 Allow promoting DXVK to DXGI/DirectFlip

After that, if using virtual display driver, set it's refresh rate to 180 Hz (see https://github.com/VirtualDrivers/Virtual-Display-Driver/issues/36#issuecomment-4473183108)

Upstream links

DLLs