italomandara / CXPatcher

A patcher to upgrade Crossover dependencies and improve compatibility
GNU General Public License v3.0
914 stars 23 forks source link

Assetto Corsa Competizione #21

Closed deladuck closed 11 months ago

deladuck commented 1 year ago

Hey guys, first of all I wanted to thank you for all you work! I'm facing an issue with Assetto Corsa Competizione. First one is with the colors, but I found this variable to be fixing it to almost what it should look like "MVK_CONFIG_FAST_MATH_ENABLED" = "0". Then another issue is with the performance. This is an UE4/DX11 game which is possible to play with this patch, but the performance is really not the best as it could be. Sometimes the game facing staters which looks like a processor issue (??). Maybe you could tell me more. To get it working to at least the state as it is now I had to add these variables that I found all over the internet:

[EnvironmentVariables]
;;"PROMPT" = "$p$g"
"CX_BOTTLE_CREATOR_APPID" = "com.codeweavers.unknown"
"WINEESYNC" = "1"
"MVK_ALLOW_METAL_FENCES" = "1"
"DXVK_HUD" = "full"
"DXVK_ASYNC" = "1"
;;"MESA_GLSL_CACHE_DISABLE" = "1"
"VK_USE_PLATFORM_XCB_KHR" = "1"
"DXVK_HDR" = "1"
"DXVK_STATE_CACHE_PATH" = "/Users/mborisenko/Desktop/dxvk_cache"
"CX_MAC_GPU_OVERRIDE" = "metal"
"__GL_THREADED_OPTIMIZATIONS" = "1"
"MESA_GLTHREAD" = "1"
"WINEDEBUG" = "-all"
"WINE_LARGE_ADDRESS_AWARE" = "1"
"MVK_CONFIG_FAST_MATH_ENABLED" = "0"

These are all my variables and honestly, I feel like some of them are not needed and also I might need some other vars to add... Thus I'm asking your help. My specs are MB pro M1 Max 10 core CPU/32 GPU/32 RAM

Here's a video with full metal HUD for low settings preset https://youtu.be/4MAEhIpPTPg

Here's a video for High preset https://youtu.be/meN0IHZF-TY

Maybe it'll help you. Thanks again!

italomandara commented 1 year ago

I don't own the game myself (I have assetto corsa, but not the competizione edition) download this template https://github.com/doitsujin/dxvk/blob/master/dxvk.conf and copy it into the game's main .exe folder, try and fiddle with the settings in the file and please let me know how it goes, you can try to turn off the barriers for example or enable caching and other things. thanks! Good luck!

italomandara commented 1 year ago

Also, can you provide me the name of the main exe of the game please? so that we can set fastmath off for you automatically. Thanks!

deladuck commented 1 year ago

Hey! Looks like this is a correct .exe name AC2-Win64-Shipping.exe I'll try tweaking the vars in the file you sent and let you know the result. Thanks!

italomandara commented 1 year ago

AC2-Win64-Shipping.exe

Thanks!

deladuck commented 1 year ago

Ok what I've done so far is:

[EnvironmentVariables]
;;"PROMPT" = "$p$g"
"CX_BOTTLE_CREATOR_APPID" = "com.codeweavers.unknown"
"WINEESYNC" = "1"
"MVK_ALLOW_METAL_FENCES" = "1"
"DXVK_HUD" = "full"
"DXVK_ASYNC" = "1"
"DXVK_STATE_CACHE_PATH" = "/Users/mborisenko/Desktop/dxvk_cache"
"__GL_THREADED_OPTIMIZATIONS" = "1"
"MESA_GLTHREAD" = "1"
"WINEDEBUG" = "-all"
"WINE_LARGE_ADDRESS_AWARE" = "1"
"MVK_CONFIG_FAST_MATH_ENABLED" = "0"

This is what I decided to leave in Environment Variables, and this is what I've changed and tested so far in dxvk.conf and what REALLY helps with performance: dxvk.numCompilerThreads = 2 Looks like this one helps with shader compilation and physics calculations at the same time and reduces to minimum of the processor overload. Will keep looking forward tomorrow.

italomandara commented 1 year ago

Just few little considerations: MVK_ALLOW_METAL_FENCES has been deprecated and has no longer effect when using the recent MoltenVK builds __GL_THREADED_OPTIMIZATIONS and MESA_GLTHREAD are you sure those aren't Linux specific? MacOS doesn't use Mesa drivers AFAIK?

italomandara commented 1 year ago

dxvk.numCompilerThreads = 2

this might also fix other problems in other games for example Elite dangerous, Shadow warrior 3, and other games that suffer a lot from compilation stutters.

deladuck commented 1 year ago

Just few little considerations: MVK_ALLOW_METAL_FENCES has been deprecated and has no longer effect when using the recent MoltenVK builds __GL_THREADED_OPTIMIZATIONS and MESA_GLTHREAD are you sure those aren't Linux specific? MacOS doesn't use Mesa drivers AFAIK?

As I said, found that over an internet in my initial attempt of improving performance. Looks like these really has no effect at all on ACC

deladuck commented 1 year ago

dxvk.numCompilerThreads = 2

this might also fix other problems in other games for example Elite dangerous, Shadow warrior 3, and other games that suffer a lot from compilation stutters.

Still requires more testing as sometimes I still get stuttering and a cpu bottleneck (?) as I see a frozen screen for a couple of seconds and then after it unfreezes the GPU usage starts to grow from 5% and no visual issues on the graph... Tried almost all DXVK variables, no significant improvement

deladuck commented 1 year ago

And I really can't get over 78 fps on any resolution/quality preset... GPU usage on lowest is on 50-70% max

deladuck commented 1 year ago

HMMM this vars preset gives me a stable fps 70+

[EnvironmentVariables]
;;"PROMPT" = "$p$g"
"CX_BOTTLE_CREATOR_APPID" = "com.codeweavers.unknown"
"WINEESYNC" = "1"
;;"MVK_ALLOW_METAL_FENCES" = "1"
"DXVK_HUD" = "full"
;;"DXVK_ASYNC" = "1"
;;"MESA_GLSL_CACHE_DISABLE" = "1"
;;"VK_USE_PLATFORM_XCB_KHR" = "1"
;;"DXVK_HDR" = "1"
;;"DXVK_STATE_CACHE_PATH" = "/Users/mborisenko/Desktop/dxvk_cache"
;;"CX_MAC_GPU_OVERRIDE" = "metal"
;;"__GL_THREADED_OPTIMIZATIONS" = "1"
;;"MESA_GLTHREAD" = "1"
;;"WINEDEBUG" = "-all"
;;"WINE_LARGE_ADDRESS_AWARE" = "1"
"MVK_CONFIG_FAST_MATH_ENABLED" = "0"

I've disabled even async and it looks like that really helps. Gonna tweak a bit DXVK vars

italomandara commented 1 year ago

HMMM this vars preset gives me a stable fps 70+

[EnvironmentVariables]
;;"PROMPT" = "$p$g"
"CX_BOTTLE_CREATOR_APPID" = "com.codeweavers.unknown"
"WINEESYNC" = "1"
;;"MVK_ALLOW_METAL_FENCES" = "1"
"DXVK_HUD" = "full"
;;"DXVK_ASYNC" = "1"
;;"MESA_GLSL_CACHE_DISABLE" = "1"
;;"VK_USE_PLATFORM_XCB_KHR" = "1"
;;"DXVK_HDR" = "1"
;;"DXVK_STATE_CACHE_PATH" = "/Users/mborisenko/Desktop/dxvk_cache"
;;"CX_MAC_GPU_OVERRIDE" = "metal"
;;"__GL_THREADED_OPTIMIZATIONS" = "1"
;;"MESA_GLTHREAD" = "1"
;;"WINEDEBUG" = "-all"
;;"WINE_LARGE_ADDRESS_AWARE" = "1"
"MVK_CONFIG_FAST_MATH_ENABLED" = "0"

I've disabled even async and it looks like that really helps. Gonna tweak a bit DXVK vars

don't disable async, i tested too (didn't change async) and couldn't notice any benefit unfortunately... also "WINE_LARGE_ADDRESS_AWARE" = "1" seem to work it's only the ones i listed before that don't give me better fps.

italomandara commented 1 year ago

another hint: "MVK_CONFIG_PREALLOCATE_DESCRIPTORS" = 1 "MVK_CONFIG_SUPPORT_LARGE_QUERY_POOLS" = "0" "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS" = "MVK_CONFIG_PREFILL_METAL_COMMAND_BUFFERS_STYLE_DEFERRED_ENCODING" In Moltenvk docs i found those settings that seem to improve performances. I hope this helps.

deladuck commented 1 year ago

Hey! Here's the result, I've got pretty good fps with these steps https://www.reddit.com/r/macgaming/comments/13ktd7i/assetto_corsa_competizione_on_m1_max_with/ I've mentioned you there. Unfortunately it requires some config changes, but dxvk/environment vars also make a good difference. If you have any thoughts - please, let me know!

italomandara commented 1 year ago

Good job! thanks! how much extra fps you get from the new tweaks? I'm considering bringing them in CXPatcher

deladuck commented 1 year ago

Good job! thanks!

how much extra fps you get from the new tweaks?

I'm considering bringing them in CXPatcher

Like 20 ish sometimes, it's just more stable and less CPU bottlenecked especially for ACC because of physics calculations... Also for UE4 games tweaking the Engine.ini might help as it contains some fixes, but not all games might support all of those variables. If you have any UE4 game, you might want to make a try

italomandara commented 11 months ago

closing this for not being a CXPatcher bug if you have further questions please use https://github.com/italomandara/CXPatcher/discussions