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

Huge slowdown on specific models + animations SAGE engine issues #3950

Open
BugFixer300 opened this issue Apr 11, 2024 · 12 comments
Open

Huge slowdown on specific models + animations SAGE engine issues #3950

BugFixer300 opened this issue Apr 11, 2024 · 12 comments

Comments

@BugFixer300
Copy link

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

@Blisto91
Copy link
Contributor

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.

@BugFixer300
Copy link
Author

BugFixer300 commented Apr 11, 2024

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
Schermafbeelding 2024-04-12 000537
Schermafbeelding 2024-04-12 000605
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.

@WinterSnowfall
Copy link
Contributor

Does setting d3d9.cachedDynamicBuffers = True help?

@BugFixer300
Copy link
Author

BugFixer300 commented Apr 12, 2024

Does setting d3d9.cachedDynamicBuffers = True help?

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.

@Blisto91
Copy link
Contributor

You mean a driver update seems to have solved your issue? You seem to already have had the latest when you posted originally.

@BugFixer300
Copy link
Author

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

@Blisto91
Copy link
Contributor

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

@BugFixer300
Copy link
Author

BugFixer300 commented Apr 12, 2024

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

@mbriar
Copy link
Contributor

mbriar commented Apr 12, 2024

The vulkan version is pretty meaningless. Only the nvidia driver version matters.

@BugFixer300
Copy link
Author

BugFixer300 commented Apr 12, 2024

Does setting d3d9.cachedDynamicBuffers = True help?

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.

@Blisto91
Copy link
Contributor

Blisto91 commented Apr 12, 2024

Which patch are you using and mods if any.
Also can you include a screenshot of an example where the fps is dipping?

@BugFixer300
Copy link
Author

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:
Before cache 1
Before cache 2
Before cache 3
Before cache 4

d3d9.cachedDynamicBuffers = True:
After cache 1
After cache 2
After cache 3

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

No branches or pull requests

4 participants