Huge slowdown on specific models + animations SAGE engine issues
Game: The Lord of the Rings: The Battle for Middle-earth II: The Rise of the Witch-king https://en.wikipedia.org/wiki/The_Lord_of_the_Rings:_The_Battle_for_Middle-earth_II:_The_Rise_of_the_Witch-king
When loading specific models like the spiderlings on Ultra High settings the game really slows down for some reason it seems to affect only units/models with multiple legs. Everything else runs fine it even solves the RAM limitation of the 32 bit game.
System information:
- GPU: RTX 3060
- Driver: 552.12
- Wine version: -
- DXVK version: 2.3.1 (D3D9 32Bit)
DXVK config: Only enabled d3d9.maxFrameRate = 30 dxvk.enableAsync = true # Compile shaders asynchronously.
Log File: info: Game: game.dat info: DXVK: v2.3.1 info: Found config file: dxvk.conf info: Effective configuration: info: dxvk.enableAsync = true info: d3d9.maxFrameRate = 30 info: Vulkan: Found vkGetInstanceProcAddr in vulkan-1.dll @ 0x6b9b16f0 info: Built-in extension providers: info: Win32 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: info: Driver : NVIDIA 552.12.0 info: Memory Heap[0]: info: Size: 12115 MiB info: Flags: 0x1 info: Memory Type[1]: Property Flags = 0x1 info: Memory Type[2]: Property Flags = 0x1 info: Memory Type[5]: Property Flags = 0x7 info: Memory Heap[1]: info: Size: 16336 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: Process set as DPI aware info: Device properties: info: Device : NVIDIA GeForce RTX 3060 info: Driver : NVIDIA 552.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: 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 : 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_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_raw_access_chains info: shaderRawAccessChains : 0 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: DXVK: Read 1057 valid state cache entries info: DXVK: Graphics pipeline libraries supported info: D3D9DeviceEx::ResetSwapChain: info: Requested Presentation Parameters info: - Width: 2560 info: - Height: 1440 info: - Format: D3D9Format::A8R8G8B8 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: 800x600 info: Image count: 3 info: Exclusive FS: 0 info: Setting display mode: 2560x1440@0 info: Setting display mode: 2560x1440@0 warn: ConvertFormat: Unknown format encountered: 1 warn: ConvertFormat: Unknown format encountered: 2 warn: ConvertFormat: Unknown format encountered: 3 warn: ConvertFormat: Unknown format encountered: 4 warn: ConvertFormat: Unknown format encountered: 5 warn: ConvertFormat: Unknown format encountered: 6 warn: ConvertFormat: Unknown format encountered: 7 warn: ConvertFormat: Unknown format encountered: 8 warn: ConvertFormat: Unknown format encountered: 9 warn: ConvertFormat: Unknown format encountered: 10 warn: ConvertFormat: Unknown format encountered: 11 warn: ConvertFormat: Unknown format encountered: 12 warn: ConvertFormat: Unknown format encountered: 13 warn: ConvertFormat: Unknown format encountered: 14 warn: ConvertFormat: Unknown format encountered: 15 warn: ConvertFormat: Unknown format encountered: 16 warn: ConvertFormat: Unknown format encountered: 17 warn: ConvertFormat: Unknown format encountered: 18 warn: ConvertFormat: Unknown format encountered: 19 warn: ConvertFormat: Unknown format encountered: 37 warn: ConvertFormat: Unknown format encountered: 38 warn: ConvertFormat: Unknown format encountered: 39 warn: ConvertFormat: Unknown format encountered: 42 warn: ConvertFormat: Unknown format encountered: 43 warn: ConvertFormat: Unknown format encountered: 44 warn: ConvertFormat: Unknown format encountered: 45 warn: ConvertFormat: Unknown format encountered: 46 warn: ConvertFormat: Unknown format encountered: 47 warn: ConvertFormat: Unknown format encountered: 48 warn: ConvertFormat: Unknown format encountered: 49 warn: ConvertFormat: Unknown format encountered: 53 warn: ConvertFormat: Unknown format encountered: 54 warn: ConvertFormat: Unknown format encountered: 55 warn: ConvertFormat: Unknown format encountered: 56 warn: ConvertFormat: Unknown format encountered: 57 warn: ConvertFormat: Unknown format encountered: 58 warn: ConvertFormat: Unknown format encountered: 59 warn: ConvertFormat: Unknown format encountered: 66 warn: ConvertFormat: Unknown format encountered: 68 warn: ConvertFormat: Unknown format encountered: 69 warn: ConvertFormat: Unknown format encountered: 72 warn: ConvertFormat: Unknown format encountered: 74 warn: ConvertFormat: Unknown format encountered: 76 warn: ConvertFormat: Unknown format encountered: 78 warn: ConvertFormat: Unknown format encountered: 86 warn: ConvertFormat: Unknown format encountered: 87 warn: ConvertFormat: Unknown format encountered: 88 warn: ConvertFormat: Unknown format encountered: 89 warn: ConvertFormat: Unknown format encountered: 90 warn: ConvertFormat: Unknown format encountered: 91 warn: ConvertFormat: Unknown format encountered: 92 warn: ConvertFormat: Unknown format encountered: 93 warn: ConvertFormat: Unknown format encountered: 94 warn: ConvertFormat: Unknown format encountered: 95 warn: ConvertFormat: Unknown format encountered: 96 warn: ConvertFormat: Unknown format encountered: 97 warn: ConvertFormat: Unknown format encountered: 98 warn: ConvertFormat: Unknown format encountered: 99 warn: ConvertFormat: Unknown format encountered: 103 warn: ConvertFormat: Unknown format encountered: 104 warn: ConvertFormat: Unknown format encountered: 105 warn: ConvertFormat: Unknown format encountered: 106 warn: ConvertFormat: Unknown format encountered: 107 warn: ConvertFormat: Unknown format encountered: 108 warn: ConvertFormat: Unknown format encountered: 109 warn: ConvertFormat: Unknown format encountered: D3D9Format::EXT1 warn: ConvertFormat: Unknown format encountered: D3D9Format::FXT1 warn: ConvertFormat: Unknown format encountered: D3D9Format::GXT1 warn: ConvertFormat: Unknown format encountered: D3D9Format::HXT1 warn: ConvertFormat: Unknown format encountered: 1 warn: ConvertFormat: Unknown format encountered: 2 warn: ConvertFormat: Unknown format encountered: 3 warn: ConvertFormat: Unknown format encountered: 4 warn: ConvertFormat: Unknown format encountered: 5 warn: ConvertFormat: Unknown format encountered: 6 warn: ConvertFormat: Unknown format encountered: 7 warn: ConvertFormat: Unknown format encountered: 8 warn: ConvertFormat: Unknown format encountered: 9 warn: ConvertFormat: Unknown format encountered: 10 warn: ConvertFormat: Unknown format encountered: 11 warn: ConvertFormat: Unknown format encountered: 12 warn: ConvertFormat: Unknown format encountered: 13 warn: ConvertFormat: Unknown format encountered: 14 warn: ConvertFormat: Unknown format encountered: 15 warn: ConvertFormat: Unknown format encountered: 16 warn: ConvertFormat: Unknown format encountered: 17 warn: ConvertFormat: Unknown format encountered: 18 warn: ConvertFormat: Unknown format encountered: 19 warn: ConvertFormat: Unknown format encountered: 37 warn: ConvertFormat: Unknown format encountered: 38 warn: ConvertFormat: Unknown format encountered: 39 warn: ConvertFormat: Unknown format encountered: 42 warn: ConvertFormat: Unknown format encountered: 43 warn: ConvertFormat: Unknown format encountered: 44 warn: ConvertFormat: Unknown format encountered: 45 warn: ConvertFormat: Unknown format encountered: 46 warn: ConvertFormat: Unknown format encountered: 47 warn: ConvertFormat: Unknown format encountered: 48 warn: ConvertFormat: Unknown format encountered: 49 warn: ConvertFormat: Unknown format encountered: 53 warn: ConvertFormat: Unknown format encountered: 54 warn: ConvertFormat: Unknown format encountered: 55 warn: ConvertFormat: Unknown format encountered: 56 warn: ConvertFormat: Unknown format encountered: 57 warn: ConvertFormat: Unknown format encountered: 58 warn: ConvertFormat: Unknown format encountered: 59 warn: ConvertFormat: Unknown format encountered: 66 warn: ConvertFormat: Unknown format encountered: 68 warn: ConvertFormat: Unknown format encountered: 69 warn: ConvertFormat: Unknown format encountered: 72 warn: ConvertFormat: Unknown format encountered: 74 warn: ConvertFormat: Unknown format encountered: 76 warn: ConvertFormat: Unknown format encountered: 78 warn: ConvertFormat: Unknown format encountered: 86 warn: ConvertFormat: Unknown format encountered: 87 warn: ConvertFormat: Unknown format encountered: 88 warn: ConvertFormat: Unknown format encountered: 89 warn: ConvertFormat: Unknown format encountered: 90 warn: ConvertFormat: Unknown format encountered: 91 warn: ConvertFormat: Unknown format encountered: 92 warn: ConvertFormat: Unknown format encountered: 93 warn: ConvertFormat: Unknown format encountered: 94 warn: ConvertFormat: Unknown format encountered: 95 warn: ConvertFormat: Unknown format encountered: 96 warn: ConvertFormat: Unknown format encountered: 97 warn: ConvertFormat: Unknown format encountered: 98 warn: ConvertFormat: Unknown format encountered: 99 warn: ConvertFormat: Unknown format encountered: 103 warn: ConvertFormat: Unknown format encountered: 104 warn: ConvertFormat: Unknown format encountered: 105 warn: ConvertFormat: Unknown format encountered: 106 warn: ConvertFormat: Unknown format encountered: 107 warn: ConvertFormat: Unknown format encountered: 108 warn: ConvertFormat: Unknown format encountered: 109 info: DXVK: Using 12 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: 2560x1440 info: Image count: 3 info: Exclusive FS: 0 info: Setting timer interval to 500 us
Hi there. Please make an apitrace of the issue if possible. When you say slow down i assume you mean the fps drops below your 30 cap.
Hi there. Please make an apitrace of the issue if possible. When you say slow down i assume you mean the fps drops below your 30 cap.
When using the apitrace the game crashes on startup see screenshot
I've used the 32 bit D3D9 apitrace dll files see screenshot.
By "slow down," I mean experiencing a significant FPS drop. For instance, when there are 15 or more single units on screen, like spiders, the FPS drops to around 20 FPS. With approximately 30 units on screen, the FPS further diminishes to around 5 FPS. Interestingly, there isn't a notable increase in CPU usage during these occurrences. I'm considering installing the game on Linux to see if the issue persists there.
This game holds a special place for many, but its reliance on the outdated D3D9 engine leads to crashes, particularly with large mods like Edain and AOTR. While DXVK resolves these crashing issues, it unfortunately introduces severe slowdowns with certain units.
Does setting d3d9.cachedDynamicBuffers = True help?
Does setting
d3d9.cachedDynamicBuffers = Truehelp?
d3d9.cachedDynamicBuffers doesn't seem to have any effect but: I've recently tested it with numerous units that previously caused significant lag, and the frame rate dropped from 30 to 20 fps. Additionally, I've updated both my Nvidia drivers and the Vulkan driver, and it appears to have resolved most of the issues. Previously, the frame rate plummeted to around 5 fps, but now it's greatly improved!
Currently, there are a few lingering concerns, though they're quite minor. Running on Vulkan driver version 1.3.275. I'll provide an update if I come across any further issues.
You mean a driver update seems to have solved your issue? You seem to already have had the latest when you posted originally.
You mean a driver update seems to have solved your issue? You seem to already have had the latest when you posted originally.
Yes sorry wrote down the wrong version. Will need to do some more testing
No i meant the log shows you are on latest. Was the performance a constant dip while units were on screen or was it stutter
That's odd, there's a consistent dip in the frame rate, maintaining at 20 frames per second repeatedly. It appears there are some compatibility issues with the latest Vulkan driver version. Previously, I tested it with a large number of units before the update, and it didn't crash, but now it seems to be crashing. Perhaps DXVK isn't functioning properly with Vulkan version 1.3.275. Will do some more testing on my laptop
The vulkan version is pretty meaningless. Only the nvidia driver version matters.
Does setting
d3d9.cachedDynamicBuffers = Truehelp?
Hey, some strange stuff was going on. After reinstalling the game, my DXVK version wasn't functioning properly. But, after stumbling upon the right DXVK dll file, the tool started working again. It used to crash the game constantly, but now it's stable. Also, after some testing, I noticed there was still lag. However, when I enabled 'd3d9.cachedDynamicBuffers = True', the game ran smoothly without any lag at all. So, big thanks for the help! I'll be sure to spread the word in the ROTWK community. Much love!
The vulkan version is pretty meaningless. Only the nvidia driver version matters.
Ah never knew that, thank you for the information.
Which patch are you using and mods if any. Also can you include a screenshot of an example where the fps is dipping?
Which patch are you using and mods if any. Also can you include a screenshot of an example where the fps is dipping?
Patch 2.02 V9 and AOTR 8.3.1 Did some testing with the Grass objects in the game they cause heavy lag when d3d9.cachedDynamicBuffers is turned off but when turned on it's smooth.
d3d9.cachedDynamicBuffers = False:
d3d9.cachedDynamicBuffers = True:
I have gotten my hand on the expansion now and confirmed the slowdowns with the mod and all. @BugFixer300 Which language have you installed the game in