doitsujin / dxvk

Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine
zlib License
12.72k stars 813 forks source link

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

Open Akrelion45 opened 1 month ago

Akrelion45 commented 1 month ago

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

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

Joshua-Ashton commented 1 month ago

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

Akrelion45 commented 1 month ago

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.

Akrelion45 commented 1 month ago

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

K0bin commented 1 month ago

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?

Akrelion45 commented 1 month ago

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

Joshua-Ashton commented 1 month ago

How are you getting v_pSwapchain?

Blisto91 commented 3 weeks ago

@Akrelion45 friendly ping