Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DXVK 2.5.x - Risen 2: Dark Waters - Videos are pitch black #4614

Open
Csimbi opened this issue Jan 14, 2025 · 7 comments
Open

DXVK 2.5.x - Risen 2: Dark Waters - Videos are pitch black #4614

Csimbi opened this issue Jan 14, 2025 · 7 comments
Labels

Comments

@Csimbi
Copy link

Csimbi commented Jan 14, 2025

Hello,
I have an ALT+Tab problem with Risen 2 on Windows 10, so I thought I would give DXVK a go as I know it to fix such problems, and it seems that is does that just fine.
However, the videos are coming up pitch black.
They play all right, there is audio, but nothing is visible on screen.
The problem is easily observable on the startup video already, no need to start a new game or anything.

I tried the new setting in the config file:
dxvk.allowFse = True
It does not seem to make any difference in this case.

Thank you for your support!

Software information

Windows 10 x64 patched via Windows Update
Risen 2: Dark Waters (currently only x86 build is available on Steam, I applied the 4GB patch from ntcore to reduce crashes and I tried running it in Windows 7 compatibility mode as well)
Screen resolution: 2560x1600 (16:10)
All graphics settings set to maximum.

System information

  • GPU: Geforce RTX 3060Ti
  • Driver: 566.36
  • Wine version: N/A
  • DXVK version: 2.5.2 and 2.5.3 (tried both)

Apitrace file(s)

It appears that the game does not start with apitrace dxd9.dll
Loader:

d:\STEAM\SteamApps\common\Risen 2\system>apitrace.exe trace -a d3d9 Risen2.exe
error: failed to find d3d9.dll wrapper (rerun with -v option for more details)

Log files

risen2_d3d9.log

info:  Game: risen2.exe
info:  DXVK: v2.5.3
info:  Build: x86 gcc 14.2.0
info:  Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7a0e16e0
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 3060 Ti:
info:    Driver : NVIDIA 566.36.0
info:    Memory Heap[0]: 
info:      Size: 8024 MiB
info:      Flags: 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:      Memory Type[2]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 32647 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: risen2.exe
info:  DXVK: v2.5.3
info:  Build: x86 gcc 14.2.0
info:  Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x7a0e16e0
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 3060 Ti:
info:    Driver : NVIDIA 566.36.0
info:    Memory Heap[0]: 
info:      Size: 8024 MiB
info:      Flags: 0x1
info:      Memory Type[1]: Property Flags = 0x1
info:      Memory Type[2]: Property Flags = 0x1
info:    Memory Heap[1]: 
info:      Size: 32647 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 3060 Ti
info:    Driver : NVIDIA 566.36.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_line_rasterization
info:    VK_EXT_memory_priority
info:    VK_EXT_non_seamless_cube_map
info:    VK_EXT_pageable_device_local_memory
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_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                      : 1
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                   : 1
info:  Vulkan 1.2
info:    samplerMirrorClampToEdge               : 1
info:    drawIndirectCount                      : 1
info:    samplerFilterMinmax                    : 0
info:    hostQueryReset                         : 1
info:    timelineSemaphore                      : 1
info:    bufferDeviceAddress                    : 0
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_pageable_device_local_memory
info:    pageableDeviceLocalMemory              : 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                    : 0
info:  VK_NVX_image_view_handle
info:    extension supported                    : 0
info:  VK_KHR_win32_keyed_mutex
info:    extension supported                    : 1
info:  Queue families:
info:    Graphics : 0
info:    Transfer : 1
info:    Sparse   : 0
info:  Memory type mask for buffer resources: 0x3b, usage: 0x1ff
info:  DXVK: Read 11 valid state cache entries
info:  DXVK: Graphics pipeline libraries supported
info:  D3D9DeviceEx::ResetSwapChain:
info:    Requested Presentation Parameters
info:      - Width:              2560
info:      - Height:             1600
info:      - Format:             D3D9Format::X8R8G8B8
info:      - Auto Depth Stencil: true
info:                  ^ Format: D3D9Format::D24S8
info:      - Windowed:           false
info:      - Swap effect:        2
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:  2560x1600
info:    Image count:  3
info:  Setting display mode: 2560x1600@60
info:  Setting display mode: 2560x1600@60
info:  DXVK: Using 16 compiler threads
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_FIFO_KHR (dynamic: yes)
info:    Buffer size:  2560x1600
info:    Image count:  3

@qinlili23333
Copy link
Contributor

It appears that the game does not start with apitrace dxd9.dll Loader:

d:\STEAM\SteamApps\common\Risen 2\system>apitrace.exe trace -a d3d9 Risen2.exe
error: failed to find d3d9.dll wrapper (rerun with -v option for more details)

In most cases, you don't need to use command to run apitrace, especially on Windows.
Just use apitrace d3d9.dll in the same way as DXVK (replace DXVK dll with apitrace one), and run game as normal, apitrace file should generate on desktop. See https://github.com/doitsujin/dxvk/wiki/Using-Apitrace#on-windows

@K0bin K0bin added the d3d9 label Jan 15, 2025
@Csimbi
Copy link
Author

Csimbi commented Jan 15, 2025

It appears that the game does not start with apitrace dxd9.dll Loader:

d:\STEAM\SteamApps\common\Risen 2\system>apitrace.exe trace -a d3d9 Risen2.exe
error: failed to find d3d9.dll wrapper (rerun with -v option for more details)

In most cases, you don't need to use command to run apitrace, especially on Windows. Just use apitrace d3d9.dll in the same way as DXVK (replace DXVK dll with apitrace one), and run game as normal, apitrace file should generate on desktop. See https://github.com/doitsujin/dxvk/wiki/Using-Apitrace#on-windows

Hi and thanks for getting back.
That is the first thing I tried and as I wrote in the OP, the game does not start with apitrace dxd9.dll.
That's the reason I tried the loader, which, again, did not work - not even as admin.
Please let me know if there's anything else I can try.
Thank you!

@qinlili23333
Copy link
Contributor

qinlili23333 commented Jan 16, 2025

That is the first thing I tried and as I wrote in the OP, the game does not start with apitrace dxd9.dll.
That's the reason I tried the loader, which, again, did not work - not even as admin.

So the game can start with DXVK d3d9.dll but cannot with apitrace d3d9.dll right?
I would try to launch in x32dbg with apitrace d3d9.dll to see detailed exceptions.

Update: I just found this game has Steam CEG DRM. I don't think this type of DRM can be used with LAA patch. Can you test at lower resolution with original unpatched executable?

Anyway I have just bought cdkey for this game. I will also try to make a trace later.

@qinlili23333
Copy link
Contributor

qinlili23333 commented Jan 16, 2025

I have successfully made a trace file.
https://github.com/qinlili23333/PageConnect/releases/download/TEST/risen2_trace.7z.001

I can reproduce black screen on my device. See my screen recording. https://youtu.be/z8YWla2PyqU
The splash videos are totally black, while DXVK hud is visible and sound works. After videos the game works as expected, although the performance is a bit poor due to screen recording.
risen2_d3d9.log

When replay trace with DXVK, the splash videos are normal.

My system:
13980HX @ 4.5GHz (iGPU enabled but no display connected, driver 101.6449)
RTX4080 Laptop (output from dGPU) driver 566.14
Windows 11 23H2 Build 22631.4751 (2025-01 Update installed)

More detail about the game:
The game is using Bink 1.8.8.0.
Both splash videos and right side of the menu are Bink videos, but the menu is working as expected.
Linux compatibility: received one report on ProtonDB said splash videos are black https://www.protondb.com/app/40390#YPt9otvt1T

@Csimbi
Copy link
Author

Csimbi commented Jan 16, 2025

So the game can start with DXVK d3d9.dll but cannot with apitrace d3d9.dll right? I would try to launch in x32dbg with apitrace d3d9.dll to see detailed exceptions.

Update: I just found this game has Steam CEG DRM. I don't think this type of DRM can be used with LAA patch. Can you test at lower resolution with original unpatched executable?

Anyway I have just bought cdkey for this game. I will also try to make a trace later.

Correct on all points.
Game starts with DXVK d3d9.dll but cannot with apitrace d3d9.dll.
Steam client is required to run. I have not seen any issues with the LAA patch; Steam launches the game just fine and it runs. The videos are blank with or without the LAA patch while using DXVK.

Thank you for validating it and posting the details and insights!

I am curious, how did you manage to get apitrace working?

@qinlili23333
Copy link
Contributor

I am curious, how did you manage to get apitrace working?

apitrace on my device is works fine for this game. I'm not sure why it's not working on your system.

@qinlili23333
Copy link
Contributor

Made another apitrace with DXVK 2.5.3: https://github.com/qinlili23333/PageConnect/releases/download/TEST/risen2.dxvk.trace.7z
This trace can show the pitch black when replay with DXVK.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants