Repository navigation
DLAA DLSS Injection Mod under Linux howto #13
rimaille
started this conversation in
Show and tell
Replies: 1 comment
|
can you paste your logs for us? i think it will give more info that can help, then ill make a fix for linux users too. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
I went toward several steps to make the DLSS/DLAA injection to work under linux. Here's what i did, if that can help someone.
First, there's my setup :
rx9060xt 8gb with triple screen, archlinux with vanilla kernel, kde plasma/wayland, proton-ge, gamemode, dmemcg-booster, gamescope, lsfg-vk-git, optiscaler.
Setup agnostic (beside running on linux) steps :
How to load the plugin :
On the steam game launch options, WINEDLLOVERRIDES="dinput8.dll=n,b" %command%
This make proton use the plugin dll first, and if loading fails, it use builtin then.
ETS2 : plugin crash with Unhandled exception: page fault on read access to 0x0000000000000008
Backtrace:
0 msvcp140 (+0x12618)
1 msvcp140 (+0x128d8)
2 dinput8 (+0x72e31)
3 dinput8 (+0x61fd5)
Solution : I installed vcrun2026 via protontricks (via the gui, then select game prefix, install a windows DLL or component, vcrun2026, then microsoft installer launch.) The dll included in wine/proton does not work with the plugin, but only on ETS2, ATS is fine.
ETS2/ATS : shader compilation fail under proton/wine
In the log 29 failed out of 42 shaders, with errors like Method 'GetDimensions' is not defined on type 'RWTexture2D', InterlockedAdd/Load4 on RWByteAddressBuffer, and isnan/isfinite “not defined”.
The mod compiles its HLSL at runtime through D3DCompile in d3dcompiler_47.dll (it’s a static import in the shipped DLL). Under Proton that DLL is Wine’s builtin one, which uses the vkd3d HLSL compiler.
Solution: protontricks <game_id> d3dcompiler_47
game_id is 227300 for ets2 and 270880 for ats
Enjoy !
Hardware specific setup :
As i have a 8gb card on a triple screen setup, with high/ultra graphics settings, i went on installing dmemcg-booster, by a valve developper, which improves vram management by prioritizing foreground applications, such as games, over background processes when video memory is under pressure. It make wonders.
As i have a triple 1080p screen setup, i had to use gamescope to extend display to 5760x1080 , and make use of plasma videowall script to make it fullscreen.
As i have an AMD card and there's no DLSS DLAA built in, i have to use translation layer by optiscaler with fakenvapi. The game think i have a nvidia, DLSS/DLAA is translated to FSR4.1. I choose to rename optiscaler.dll to winmm.dll to make the plugin could load with it's hook and not interfere with optiscaler's hook.
As i cant choose to play between an ugly game and a smooth game, i made the game run beautifully stable 45fps then lsfg-vk frame generation x4 with performance mode and flowscale 85% Make sure to use 2.0+ version, ideally git one, performance improvement is huge.
Lastly my full steam game launch commands, which are the same on ATS and ETS2 :
LD_PRELOAD="/usr/$LIB/libgamemode.so.0" WINEDLLOVERRIDES="winmm=n,b;dinput8=n,b" MESA_NO_ERROR=1 DISABLE_LAYER_MESA_ANTI_LAG=1 PROTON_USE_NTSYNC=1 MESA_VK_DEVICE_SELECT="1002:7590" MESA_SHADER_CACHE_SIZE=1G gamemoderun gamescope --force-grab-cursor --backend sdl -b -W 5760 -H 1080 -r 180 -- %command% -64bit -fast -nointro -no_steamvr -unlimitedlog -mm_pool_size 8192 -mm_max_resource_size 100 -mm_max_tmp_buffers_size 1000
Sorry this post is as messy as i'm, hope this help tho :)
All reactions