protonscr

Last Chaos with D3D8TO9 Integration crash at Startup (worked until DXVK 1.5.4)

dxvkclosed d3d9
doitsujin/dxvk#4157 · opened 2024-07-17 by Akrelion45 · updated 2024-11-25 · 9 comments · github
AAkrelion45 2024-07-17 github

We upgraded the game ourselfs to DX9 from DX8 with D3D8TO9.
It actually worked with an older version - d9vk-0.40.1
After figuring out, that D9VK was merged into DXVK, i tested it out, and it crashed at the game startup.
If helpful, i coud upload a log file from the working d9vk-0.40.1

Edit: It works in DXVK 1.5.4 but crashed At DXVK1.5.5 and upwards

Operating System: Windows 11.

Software information

Last Chaos. 64 Bit

System information

  • GPU: NVIDIA SUPER 2080
  • Driver: NEWEST
  • Wine version: /
  • DXVK version: 2.4

Log files From the Crash

info: Game: Nksp.exe
info: DXVK: v2.4
info: Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7ffe1a94d360
info: Built-in extension providers:
info: Platform WSI
info: OpenVR
info: OpenXR
info: OpenVR: could not open registry key, status 2
info: OpenVR: Failed to locate module
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: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver : NVIDIA 556.12.0
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver : NVIDIA 556.12.0
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: Process set as DPI aware
info: Game: Nksp.exe
info: DXVK: v2.4
info: Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7ffde3d6d360
info: Built-in extension providers:
info: Platform WSI
info: OpenVR
info: OpenXR
info: OpenVR: could not open registry key, status 2
info: OpenVR: Failed to locate module
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: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver : NVIDIA 556.12.0
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver : NVIDIA 556.12.0
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: Process set as DPI aware
info: Device properties:
info: Device : NVIDIA GeForce RTX 2080 SUPER
info: Driver : NVIDIA 556.12.0
info: Enabled device extensions:
info: VK_EXT_attachment_feedback_loop_layout
info: VK_EXT_conservative_rasterization
info: VK_EXT_custom_border_color
info: VK_EXT_depth_bias_control
info: VK_EXT_depth_clip_enable
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_memory_priority
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_maintenance5
info: VK_KHR_pipeline_library
info: VK_KHR_present_id
info: VK_KHR_present_wait
info: VK_KHR_swapchain
info: VK_KHR_win32_keyed_mutex
info: VK_NVX_binary_import
info: VK_NVX_image_view_handle
info: VK_NV_descriptor_pool_overallocation
info: VK_NV_raw_access_chains
info: Device features:
info: robustBufferAccess : 1
info: fullDrawIndexUint32 : 1
info: imageCubeArray : 1
info: independentBlend : 1
info: geometryShader : 1
info: tessellationShader : 0
info: sampleRateShading : 1
info: dualSrcBlend : 0
info: logicOp : 0
info: multiDrawIndirect : 0
info: drawIndirectFirstInstance : 0
info: depthClamp : 1
info: depthBiasClamp : 1
info: fillModeNonSolid : 1
info: depthBounds : 1
info: wideLines : 1
info: multiViewport : 1
info: samplerAnisotropy : 1
info: textureCompressionBC : 1
info: occlusionQueryPrecise : 1
info: pipelineStatisticsQuery : 1
info: vertexPipelineStoresAndAtomics : 1
info: fragmentStoresAndAtomics : 0
info: shaderImageGatherExtended : 0
info: shaderClipDistance : 1
info: shaderCullDistance : 1
info: shaderFloat64 : 0
info: shaderInt64 : 0
info: variableMultisampleRate : 1
info: shaderResourceResidency : 0
info: shaderResourceMinLod : 0
info: sparseBinding : 0
info: sparseResidencyBuffer : 0
info: sparseResidencyImage2D : 0
info: sparseResidencyImage3D : 0
info: sparseResidency2Samples : 0
info: sparseResidency4Samples : 0
info: sparseResidency8Samples : 0
info: sparseResidency16Samples : 0
info: sparseResidencyAliased : 0
info: Vulkan 1.1
info: shaderDrawParameters : 0
info: Vulkan 1.2
info: samplerMirrorClampToEdge : 1
info: drawIndirectCount : 1
info: samplerFilterMinmax : 0
info: hostQueryReset : 1
info: timelineSemaphore : 1
info: bufferDeviceAddress : 1
info: shaderOutputViewportIndex : 1
info: shaderOutputLayer : 1
info: vulkanMemoryModel : 1
info: Vulkan 1.3
info: robustImageAccess : 0
info: pipelineCreationCacheControl : 1
info: shaderDemoteToHelperInvocation : 1
info: shaderZeroInitializeWorkgroupMemory : 0
info: synchronization2 : 1
info: dynamicRendering : 1
info: VK_AMD_shader_fragment_mask
info: extension supported : 0
info: VK_EXT_attachment_feedback_loop_layout
info: attachmentFeedbackLoopLayout : 1
info: VK_EXT_conservative_rasterization
info: extension supported : 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_extended_dynamic_state3
info: extDynamicState3AlphaToCoverageEnable : 1
info: extDynamicState3DepthClipEnable : 1
info: extDynamicState3RasterizationSamples : 1
info: extDynamicState3SampleMask : 1
info: extDynamicState3LineRasterizationMode : 1
info: VK_EXT_fragment_shader_interlock
info: fragmentShaderSampleInterlock : 0
info: fragmentShaderPixelInterlock : 0
info: VK_EXT_full_screen_exclusive
info: extension supported : 1
info: VK_EXT_graphics_pipeline_library
info: graphicsPipelineLibrary : 1
info: VK_EXT_line_rasterization
info: rectangularLines : 1
info: smoothLines : 1
info: VK_EXT_memory_budget
info: extension supported : 1
info: VK_EXT_memory_priority
info: memoryPriority : 1
info: VK_EXT_non_seamless_cube_map
info: nonSeamlessCubeMap : 1
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: extension supported : 0
info: VK_EXT_swapchain_colorspace
info: extension supported : 0
info: VK_EXT_swapchain_maintenance1
info: swapchainMaintenance1 : 1
info: VK_EXT_hdr_metadata
info: extension supported : 1
info: VK_EXT_transform_feedback
info: transformFeedback : 0
info: geometryStreams : 0
info: VK_EXT_vertex_attribute_divisor
info: vertexAttributeInstanceRateDivisor : 1
info: vertexAttributeInstanceRateZeroDivisor : 1
info: VK_KHR_external_memory_win32
info: extension supported : 1
info: VK_KHR_external_semaphore_win32
info: extension supported : 1
info: VK_KHR_maintenance5
info: maintenance5 : 1
info: VK_KHR_present_id
info: presentId : 1
info: VK_KHR_present_wait
info: presentWait : 1
info: VK_NV_descriptor_pool_overallocation
info: descriptorPoolOverallocation : 1
info: VK_NV_raw_access_chains
info: shaderRawAccessChains : 1
info: VK_NVX_binary_import
info: extension supported : 1
info: VK_NVX_image_view_handle
info: extension supported : 1
info: VK_KHR_win32_keyed_mutex
info: extension supported : 1
info: Queue families:
info: Graphics : 0
info: Transfer : 1
info: Sparse : 0
warn: DXVK: Updating state cache version to v17
info: DXVK: Read 105 valid state cache entries
warn: DXVK: Creating new state cache file
info: DXVK: Graphics pipeline libraries supported
info: D3D9DeviceEx::ResetSwapChain:
info: Requested Presentation Parameters
info: - Width: 8
info: - Height: 8
info: - Format: D3D9Format::X8R8G8B8
info: - Auto Depth Stencil: false
info: ^ Format: D3D9Format::Unknown
info: - Windowed: true
info: - Swap effect: 3
info: Presenter: Actual swap chain 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: 1600x900
info: Image count: 3
info: Exclusive FS: 0
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM

Log File from Version 1.5.4 the last one that worked:

info: Game: Nksp.exe
info: DXVK: v1.5.4
info: Built-in extension providers:
info: Win32 WSI
info: OpenVR
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_surface_capabilities2
info: VK_KHR_surface
info: VK_KHR_win32_surface
warn: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver: 556.12.0
info: Vulkan: 1.3.278
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: Process set as DPI aware
info: Game: Nksp.exe
info: DXVK: v1.5.4
info: Built-in extension providers:
info: Win32 WSI
info: OpenVR
warn: OpenVR: Failed to locate module
info: Enabled instance extensions:
info: VK_KHR_get_surface_capabilities2
info: VK_KHR_surface
info: VK_KHR_win32_surface
warn: D3D9: VK_FORMAT_D16_UNORM_S8_UINT -> VK_FORMAT_D24_UNORM_S8_UINT
info: NVIDIA GeForce RTX 2080 SUPER:
info: Driver: 556.12.0
info: Vulkan: 1.3.278
info: Memory Heap[0]:
info: Size: 7987 MiB
info: Flags: 0x1
info: Memory Type[1]: Property Flags = 0x1
info: Memory Type[2]: Property Flags = 0x1
info: Memory Heap[1]:
info: Size: 16352 MiB
info: Flags: 0x0
info: Memory Type[0]: Property Flags = 0x0
info: Memory Type[3]: Property Flags = 0x6
info: Memory Type[4]: Property Flags = 0xe
info: Memory Heap[2]:
info: Size: 214 MiB
info: Flags: 0x1
info: Memory Type[5]: Property Flags = 0x7
info: Process set as DPI aware
info: Device properties:
info: Device name: : NVIDIA GeForce RTX 2080 SUPER
info: Driver version : 556.12.0
info: Enabled device extensions:
info: VK_EXT_depth_clip_enable
info: VK_EXT_full_screen_exclusive
info: VK_EXT_host_query_reset
info: VK_EXT_memory_priority
info: VK_EXT_shader_demote_to_helper_invocation
info: VK_EXT_shader_viewport_index_layer
info: VK_EXT_transform_feedback
info: VK_EXT_vertex_attribute_divisor
info: VK_KHR_create_renderpass2
info: VK_KHR_depth_stencil_resolve
info: VK_KHR_draw_indirect_count
info: VK_KHR_driver_properties
info: VK_KHR_image_format_list
info: VK_KHR_sampler_mirror_clamp_to_edge
info: VK_KHR_swapchain
info: Device features:
info: robustBufferAccess : 1
info: fullDrawIndexUint32 : 1
info: imageCubeArray : 1
info: independentBlend : 1
info: geometryShader : 1
info: tessellationShader : 0
info: sampleRateShading : 1
info: dualSrcBlend : 0
info: logicOp : 0
info: multiDrawIndirect : 0
info: drawIndirectFirstInstance : 0
info: depthClamp : 1
info: depthBiasClamp : 1
info: fillModeNonSolid : 1
info: depthBounds : 1
info: multiViewport : 1
info: samplerAnisotropy : 1
info: textureCompressionBC : 1
info: occlusionQueryPrecise : 1
info: pipelineStatisticsQuery : 1
info: vertexPipelineStoresAndAtomics : 1
info: fragmentStoresAndAtomics : 0
info: shaderImageGatherExtended : 0
info: shaderStorageImageExtendedFormats : 1
info: shaderStorageImageReadWithoutFormat : 0
info: shaderStorageImageWriteWithoutFormat : 1
info: shaderClipDistance : 1
info: shaderCullDistance : 1
info: shaderFloat64 : 0
info: shaderInt64 : 0
info: variableMultisampleRate : 0
info: VK_EXT_conditional_rendering
info: conditionalRendering : 0
info: VK_EXT_depth_clip_enable
info: depthClipEnable : 1
info: VK_EXT_host_query_reset
info: hostQueryReset : 1
info: VK_EXT_memory_priority
info: memoryPriority : 1
info: VK_EXT_shader_demote_to_helper_invocation
info: shaderDemoteToHelperInvocation : 1
info: VK_EXT_transform_feedback
info: transformFeedback : 0
info: geometryStreams : 0
info: VK_EXT_vertex_attribute_divisor
info: vertexAttributeInstanceRateDivisor : 1
info: vertexAttributeInstanceRateZeroDivisor : 1
info: Queue families:
info: Graphics : 0
info: Transfer : 1
info: DXVK: Read 15 valid state cache entries
info: DXVK: Using 10 compiler threads
info: D3D9DeviceEx::ResetSwapChain:
info: Requested Presentation Parameters
info: - Width: 8
info: - Height: 8
info: - Format: D3D9Format::X8R8G8B8
info: - Auto Depth Stencil: false
info: ^ Format: D3D9Format::Unknown
info: - Windowed: true
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0
warn: D3D9DeviceEx::SetRenderState: Unhandled render state D3DRS_DITHERENABLE
info: Presenter: Actual swap chain properties:
info: Format: VK_FORMAT_R8G8B8A8_UNORM
info: Present mode: VK_PRESENT_MODE_IMMEDIATE_KHR
info: Buffer size: 1600x900
info: Image count: 2
info: Exclusive FS: 0

Mmisyltoad 2024-07-17 github

Given it's your game, would you be able to provide a backtrace?

AAkrelion45 2024-07-18 github

Given it's your game, would you be able to provide a backtrace?

Its a mod we are doing for that game. Here is the Call Stack from Visual Studio with the newest version of DXVK in my Games Executable folder
Screenshot 2024-07-18 190618
If you want an Apitrace or something else i can provide that too.

AAkrelion45 2024-07-18 github

I also have a 2nd source, that uses native Directx9 instead of DX8toDX9 with exactly the same crash behaviour and there the call stack / backtrace looks like this:
Screenshot 2024-07-18 191455

KK0bin maintainer 2024-07-18 github

I also have a 2nd source, that uses native Directx9 instead of DX8toDX9 with exactly the same crash behaviour and there the call stack / backtrace looks like this:

I'm confused. Doesn't that mean that the crash is your bug rather than a DXVK bug?

AAkrelion45 2024-07-18 github

I also have a 2nd source, that uses native Directx9 instead of DX8toDX9 with exactly the same crash behaviour and there the call stack / backtrace looks like this:

I'm confused. Doesn't that mean that the crash is your bug rather than a DXVK bug?

There must be a reason that up to DXVK 1.5.4 it was working and beyond that not.
In DXVK 1.5.4 it is not a nullpointer
So my best guess would be that something in DXVK 1.5.5 and onwards was updated / changed that causes it to be a nullpointer while before it was working. I can try a bit around in the code in my application to see if i can fix it. Buf if anyone has an idea, feel free to tell me

Mmisyltoad 2024-07-18 github

How are you getting v_pSwapchain?

BBlisto91 2024-08-15 github

@Akrelion45 friendly ping

BBlisto91 2024-11-25 github

@Akrelion45 Double friendly ping

AAkrelion45 2024-11-25 github

We got directx9 nativly working now, we are not in need of D3D8TO9 anymore or dxvk.

But thanks for trying to help :)

DLLs