The latest publicly available documentation for AMDAGS shader intrinsics ends at 0x20.
My guess is that they have a lot of proprietary instructions for WMMA and all sorts of other AI crap, but there's no useful way for us to support these when we cannot even know what any of these even do without significant reverse engineering efforts. Which isn't really within the scope of what we're doing here.
So yeah, TL;DR FSR4 is impossible to support until we get documentation.
Asked for exposing it to AMD devs (on AGS project):
https://github.com/GPUOpen-LibrariesAndSDKs/AGS_SDK/issues/55
Unrequested thoughts:
Smells like some “tensor core” opcodes much like the new cooperative vector NV Vulkan extension, also coming next month to DX Agility SDK..
Also FSR4 said using FP8 ops, and NV cooperative vector extension supports it.. so in theory once AGS new RDNA4 opcodes are exposed, might be easier to expose FSR4 under Nvidia until a KHR cooperative vector is available on AMD which might take uears ( just a guess..)
It's interesting if AMD exposes FSR4 in D3D12 via magic AGS instructions. That would at least be a theoretical path to enable this on Proton, but ye. If it's using undocumented opcodes, we're not getting anywhere.
Yeah, it's kind of the "best case" for us actually because it means the whole thing isn't locked away entirely inside driver DLLs, and they might switch to an SM6.9+ path at some point in the future once the required opcodes actually land.
That is, assuming there's not another roadblock hiding behind that unsupported opcode. I might give this a go just stubbing things out at some point and see how far it can get.
Not really. There are no helper calls for those opcodes, so it's unknown what the argument are, or how they are encoded.
Was able to get an RGP capture showing WMMA instructions on Windows, so this might be enough to figure out the instructions somehow with enough effort ...
interesting..
more unrequested thoughts:
1)nice to see RGP supports "decoding" these DXIL AGS extensions.. it would be interesting if RGP was truly open, as it will include the updated AGS headers somehow .. (https://github.com/GPUOpen-Tools/radeon_gpu_profiler)
2)if it's a FP8 WMMA instruction, VK doesn't have support for FP8 data in VK_KHR_cooperative_matrix ext.. altough might come soon, seeing latest Vulkan 311 release having a new VK_KHR_shader_bfloat16 ext, exposing bfloat16 format and adding support for cooperative matrix ops in this format..
so hope a VK_KHR_shader_fp8 extension is in the works..
also found interesting 2 new "unpublished" AMD VK exts in RGA release notes:
SPV_AMD_sparse_cooperative_matrix
SPV_AMD_int4_dot_product
(https://github.com/GPUOpen-Tools/radeon_gpu_analyzer/blob/master/documentation/RGA_RELEASE_NOTES.docx)..
so seems AMD is working on "sparse coop matrix" extension and an int4 dot product ext..
these two might be useful in case some future FSR iteration takes advantage of this..
1)nice to see RGP supports "decoding" these DXIL AGS extensions..
It doesn't, it shows hardware instructions.
It still doesn't tell us anything about how the DXIL instructions are encoded, but gives some info on what's supposed to come out of it.
Took a small session and set dummy stubs to see what instructions we are dealing with here is the complete list in order.
(0x29, 0x32, 0x2d, 0x28, 0x2a)
With all these dummy stubs it does not stop on "Unsupported AGS magic instruction" but makes the radv driver crash. can provide full logs if it could help.
8290.345:0124:016c:warn:seh:handle_syscall_fault backtrace: --- Exception 0xc0000005 at 0x70606f92348e: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/vulkan/libvulkan_radeon.so + 0x12348e.
8290.345:0124:016c:trace:unwind:dwarf_virtual_unwind function 70606f92348e base 0x70606f922d00 cie 0x7060706bb810 len 14 id 0 version 1 aug 'zR' code_align 1 data_align -8 retaddr %rip
Next session il try to see what i get from RGP about these instructions and maybe try to reverse engineer but i have very limited experience with this kind of shader stuff.
I'm looking at the DXIL fwiw, there's no need to duplicate that work. I also have the reference ISA from RGP.
Mapped out the AGS opcodes now.
Mapped out the AGS opcodes now.
In noob terms, what does this mean? Are we near to get FSR4 on Linux? 👀
https://github.com/HansKristian-Work/vkd3d-proton/pull/2427 can be tested with FSR4 now. Maybe it will work, maybe it won't.
[#2427](https://github.com/HansKristian-Work/vkd3d-proton/pull/2427) can be tested with FSR4 now. Maybe it will work, maybe it won't.
tried 2 games, no more dxil errors, cp2077 freezes, silent hill 2 renders but very incorrectly
i'll test more and get some logs
does not render correctly but doesn't crash!! :)
here is the log, i set vk3d3d to trace let me know if you want other log levels set.
[#2427](https://github.com/HansKristian-Work/vkd3d-proton/pull/2427) can be tested with FSR4 now. Maybe it will work, maybe it won't.
btw optiscaler is not necessary, just copying amdxc64.dll and amdxcffx64.dll from system32 already shows FSR4* override on whitelisted games by amd. seems like that only worked on hdz remastered it needs optiscaler, i was wrong
tried getting a renderdoc capture but got this error
Don't know if I'm doing this correctly, but I've copied both d3d12.dll and d3d12core.dll to proton's lib64/wine/x86_64-windows
Then copy amdxc64.dll and amdxcffx64.dll to The Last of Us II folder.
After that, FSR 4.0.0 is available inside the launcher and ingame. However, if I choose it... insta crash.
ps: OptiScaler didn't detect FSR 4.0.0 no matter what I do, tested in 3 different games.
Great job nonetheless! :)
Is it possible we need the configuration value from amd software on windows?
Don't know if I'm doing this correctly, but I've copied both d3d12.dll and d3d12core.dll to proton's lib64/wine/x86_64-windows
Then copy amdxc64.dll and amdxcffx64.dll to The Last of Us II folder.
After that, FSR 4.0.0 is available inside the launcher and ingame. However, if I choose it... insta crash.
ps: OptiScaler didn't detect FSR 4.0.0 no matter what I do, tested in 3 different games.
Great job nonetheless! :)
Any WINEDLLOVERRIDES?
I tried the same you did and only FSR 3.1 and XeSS are available.
Don't know if I'm doing this correctly, but I've copied both d3d12.dll and d3d12core.dll to proton's lib64/wine/x86_64-windows
Then copy amdxc64.dll and amdxcffx64.dll to The Last of Us II folder.
After that, FSR 4.0.0 is available inside the launcher and ingame. However, if I choose it... insta crash.
ps: OptiScaler didn't detect FSR 4.0.0 no matter what I do, tested in 3 different games.
Great job nonetheless! :)Any WINEDLLOVERRIDES?
I tried the same you did and only FSR 3.1 and XeSS are available.
WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,amdxcffx64.dll=n,b"
Those make things reproducible for me. Tried using MH Wilds with PROTON_FORCE_NVAPI=1 PROTON_LOG=1 WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,dinput8.dll,amdxcffx64.dll=n,b" %command% and it works until fsr4 is enabled.
Fixed some implementation bugs, and it should render correctly now ... hopefully.
Don't know if I'm doing this correctly, but I've copied both d3d12.dll and d3d12core.dll to proton's lib64/wine/x86_64-windows
Then copy amdxc64.dll and amdxcffx64.dll to The Last of Us II folder.
After that, FSR 4.0.0 is available inside the launcher and ingame. However, if I choose it... insta crash.
ps: OptiScaler didn't detect FSR 4.0.0 no matter what I do, tested in 3 different games.
Great job nonetheless! :)Any WINEDLLOVERRIDES?
I tried the same you did and only FSR 3.1 and XeSS are available.
WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,amdxcffx64.dll=n,b"Those make things reproducible for me. Tried using MH Wilds with
PROTON_FORCE_NVAPI=1 PROTON_LOG=1 WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,dinput8.dll,amdxcffx64.dll=n,b" %command%and it works until fsr4 is enabled.
I suppose you are talking about OptiScaler, I was quoting a user about FSR4 native support in The Last of Us Part 2.
@HansKristian-Work I don't know if I'm doing this correctly, to test the last build...
And I only found these two amd dlls (amdxc64.dll and amdxcffx64.dll) inside a driver store folder in my Windows installation. In system32 the only one available is amdxc64.dll (with a different size) and if I copy only this one, nothing happens.
What I'm doing wrong?
Still only rendering that top half but atleast its better now! :)
@HansKristian-Work i just noticed the right half is much better then the left part for some reason
@ryzendew can you give us a step by step? I'm only getting crashes (cyberpunk included)
https://github.com/nodscher/wine-tkg-git/actions/runs/14355726086
I've got this repo building proton-tkg with the correct vkd3d-proton branch. The version there gets everything to not crash and optiscaler to detect fsr4. (you can also fork it and get github actions to build you the fsync version)
You only need to copy the amdxcffx64.dll and amdxc64.dll next to the game-exe (where optiscaler and other dlls would be) after that. (No launch options are required for me)
It however still has the artifacting as described above. I can reproduce ryzendew's results, but I am quite certain that it's using fsr2 and optiscaler doesn't seem to work with that properly (at least in cyberpunk + linux)
I've got fsr2.1 selected in the settings, but optiscaler shows DLSS as input and the upscaler-frametime is frozen. Additionally after a restart of the game optiscaler says that there is no upscaler active when fsr 2.1 is active.
https://github.com/nodscher/wine-tkg-git/actions/runs/14355726086
I've got this repo building proton-tkg with the correct vkd3d-proton branch. The version there gets everything to not crash and optiscaler to detect fsr4. (you can also fork it and get github actions to build you the fsync version) You only need to copy the amdxcffx64.dll and amdxc64.dll next to the game-exe (where optiscaler and other dlls would be) after that. (No launch options are required for me)
It however still has the artifacting as described above. I can reproduce ryzendew's results, but I am quite certain that it's using fsr2 and optiscaler doesn't seem to work with that properly (at least in cyberpunk + linux)
I've got fsr2.1 selected in the settings, but optiscaler shows DLSS as input and the upscaler-frametime is frozen. Additionally after a restart of the game optiscaler says that there is no upscaler active when fsr 2.1 is active.
Are you sure you based this off of valve wine?
Still only rendering that top half but atleast its better now! :)
@HansKristian-Work i just noticed the right half is much better then the left part for some reason
From my testing, this happens with the B0 00 C3 edit to the dll. With B0 01 C3 you should get the whole image.
What DLL are you talking about? is this something on optiscaler side or vkd3d?
@Tk-Glitch
What DLL are you talking about? is this something on optiscaler side or vkd3d? @Tk-Glitch
Sorry I was evasive. I was talking about amdxcffx64.dll. However, since you have no idea what I'm talking about, that might actually be a useful information. Supposedly there are two models, either 1 or 0. 1 "works" with some caveats (ryzendew image), and 0 gives what you see. But considering the issues here and there with 1, maybe the key lies in getting 0 to work?
What do you think @HansKristian-Work ?
edit: The "0" path was found to be broken on native as well, so we can drop that theory. Someone is working on implementing amdxc64 to allow for running the correct path without hexediting amdxcffx64.
Could you please share more details?
Thanks!
@nodscher in Lutris, when I try to run any game using proton-tkg:
[umu.umu_run:802] INFO: umu-launcher version 1.2.6 (3.13.2 (main, Feb 5 2025, 08:05:21) [GCC 14.2.1 20250128])
[umu.umu_run:808] DEBUG: Connecting to '1.1.1.1'...
[umu.umu_run:724] DEBUG: PROTONPATH set, resolving its required runtime
[umu.main:102] ERROR: Failed to match '/home/pc3/.local/share/lutris/runners/proton/proton_tkg' with a container runtime
Traceback (most recent call last):
File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/main.py", line 95, in
sys.exit(main())
~~~~^^
File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/main.py", line 90, in main
return umu_run(args)
File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/umu/umu_run.py", line 847, in umu_run
raise ValueError(err)
ValueError: Failed to match '/home/pc3/.local/share/lutris/runners/proton/proton_tkg' with a container runtime
Monitored process exited.
Initial process has exited (return code: 0)
All processes have quit
Exit with return code 0
Doesn't work with Steam either
@intellq
@nodscher in Lutris, when I try to run any game using proton-tkg:
[umu.umu_run:802] INFO: umu-launcher version 1.2.6 (3.13.2 (main, Feb 5 2025, 08:05:21) [GCC 14.2.1 20250128])
[umu.umu_run:808] DEBUG: Connecting to '1.1.1.1'...
[umu.umu_run:724] DEBUG: PROTONPATH set, resolving its required runtime
[umu.main:102] ERROR: Failed to match '/home/pc3/.local/share/lutris/runners/proton/proton_tkg' with a container runtime
Traceback (most recent call last):
File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/main.py", line 95, in
sys.exit(main())File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/**main**.py", line 90, in main return umu_run(args) File "/home/pc3/.local/share/lutris/runtime/umu/umu-run/umu/umu_run.py", line 847, in umu_run raise ValueError(err) ValueError: Failed to match '/home/pc3/.local/share/lutris/runners/proton/proton_tkg' with a container runtime Monitored process exited. Initial process has exited (return code: 0) All processes have quit Exit with return code 0Doesn't work with Steam either
I've also got this: https://github.com/nodscher/proton-ge-custom/actions/runs/14386097099, which should work witch umu-run. Some Games (like Hitman for me) just don't seem to start at all though.
Hi Guys! im using HansKristian-Work/vkd3d-proton with Wine-tkg: https://github.com/nodscher/wine-tkg-git/actions/runs/14355726086 and Mesa-tkg-git with patch: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382
Cant see Fsr4 on games supported or Optiscaler. im on rdna3 7800xt just wanted to test if fsr4 appears. any ideas?
Hi Guys! im using HansKristian-Work/vkd3d-proton with Wine-tkg: https://github.com/nodscher/wine-tkg-git/actions/runs/14355726086 and Mesa-tkg-git with patch: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382
Cant see Fsr4 on games supported or Optiscaler. im on rdna3 7800xt just wanted to test if fsr4 appears. any ideas?
FSR4 is not available officialy on older amd gpu card but only on RX 9000 series
I think https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382 try to implement it. I heard about this on a YouTube video so I'm not sure if the information is true
Hi Guys! im using HansKristian-Work/vkd3d-proton with Wine-tkg: https://github.com/nodscher/wine-tkg-git/actions/runs/14355726086 and Mesa-tkg-git with patch: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382
Cant see Fsr4 on games supported or Optiscaler. im on rdna3 7800xt just wanted to test if fsr4 appears. any ideas?FSR4 is not available officialy on older amd gpu card but only on RX 9000 series
I think https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34382 try to implement it. I heard about this on a YouTube video so I'm not sure if the information is true
I know its not officially supported, i saw the video too. I patched the mesa git, hoping to see something regarding fsr4 on rdna3
There's no point in testing right now, it doesn't work correctly yet at all. Further testing won't give any additional information. The image quality is far below native results and that needs to be debugged first.
There's no point in testing right now, it doesn't work correctly yet at all. Further testing won't give any additional information. The image quality is far below native results and that needs to be debugged first.
let us know when to test again
https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4
@HansKristian-Work is this not something thats working kinda correctly? as far as i can see if i use the correct dll i can select fsr4 and it looks atleast on par with frs3 if not better. using fp8.
Btw dont reccomend trying this unless you know what you are doing.
https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4 @HansKristian-Work is this not something thats working kinda correctly? as far as i can see if i use the correct dll i can select fsr4 and it looks atleast on par with frs3 if not better. using fp8.
Btw dont reccomend trying this unless you know what you are doing.
mesa gitlab seems to be down so even if i wanted to test this on arch i can't
\ Oblivion Remake
Cyberpunk 2077
Dead island 2
Silent hill 2 remake
Stalker 2
Working so much better
https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4 @HansKristian-Work is this not something thats working kinda correctly? as far as i can see if i use the correct dll i can select fsr4 and it looks atleast on par with frs3 if not better. using fp8.
Btw dont reccomend trying this unless you know what you are doing.
thanks
I updated Proton-FSR4 fp8 version to 2025-04-29 release, and now fp8 is giving the same bad results as fp16. Like fp8 version is not working.
Exemple with Clair Obscur:
2025-05-15 fp8 version:
FSR3 = 95 fps
FSR4 = 90 fps
2025-05-29 fp8 version:
FSR3 = 95 fps
FSR4 = 65 fps
(I'm using mesa fp8 hack3)
Can someone give me a download link to the 2025-04-15 release? I deleted it and can't download it again (not available anymore)
FSR 4.0.1
FSR 3.1.3
81 fps versus 136 fps... this didn't happen with proton fsr4 fp8 previous version.
I really appreciate if anyone can provide me a download link...
FSR 4.0.1
FSR 3.1.3
81 fps versus 136 fps... this didn't happen with proton fsr4 fp8 previous version.
I really appreciate if anyone can provide me a download link...
do you mean this version? also how do you make it work in the first place? CP2077 and other games crash no matter what I do
do you mean this version?
This link is private, is it yours? I've asked for access.
also how do you make it work in the first place? CP2077 and other games crash no matter what I do
If you need extra help in any of these steps, let me know. I'm using arch linux.
Tested with FF XVI and The Last of Us Part II (both with Lutris) and Clair Obscur (Steam). All working fine, played Clair about 4 hours yesterday with FSR 4.0.1 and zero issues.
granted you access @intellq !
I did all the steps apart from the hack (no idea how so I'm using fp16 version) and I have extracted the proton fsr4 version in the heroic proton folder as this is where I have cp2077.
I'm using Nobara 41
granted you access @intellq !
Google said this file violated the terms or something and didn't let me download.
Can you send it in Mediafire?
I did all the steps apart from the hack (no idea how so I'm using fp16 version) and I have extracted the proton fsr4 version in the heroic proton folder as this is where I have cp2077. I'm using Nobara 41
I'll test Cyberpunk and report later
EDIT -- fsr 3.1.3 vs 4.0.1
What is your gpu, azyrion?
I have a 9070XT using it with mesa 25.0.4 (on Nobara 41, kernel 6.14.3)
Also here links to the proton version @intellq :
mediafire link
new google drive link
@Azyrion you are a lifesaver! As I suspected, just by swaping back Proton FSR4 fp8 to previous version (2025-04-15) boosted the fps immensely! This new fp8 version (2025-04-29) is completely broken, fp8 and fp16 are giving the same performance.
Clair Obscur: Expedition 33 now with FSR 4.0.1 @ Proton-FSR4-2025-04-15, jumping from 80 fps to 122!
@Azyrion you are a lifesaver! As I suspected, just by swaping back Proton FSR4 fp8 to previous version (2025-04-15) boosted the fps immensely! This new fp8 version (2025-04-29) is completely broken, fp8 and fp16 are giving the same performance.
Clair Obscur: Expedition 33 now with FSR 4.0.1 @ Proton-FSR4-2025-04-15, jumping from 80 fps to 122!
is there a visual difference between 2025-04-15 and 2025-04-29 version?
is there a visual difference between 2025-04-15 and 2025-04-29 version?
At least not that I saw. According to the changelog, this version only adds FSR4 support for RDNA3.
I opened an issue there:
https://github.com/Etaash-mathamsetty/wine-builds/issues/3
Is fsr4 now able to be enabled on rdna3?
Is fsr4 now able to be enabled on rdna3?
v3 (4/29/25): updated vkd3d-proton -> RDNA3 now functional with some minor graphical glitches. Switched to xz compression so that it takes up less space when compressed
So, yes. I've read a 7900 XTX is 3x slower (or more) than a 9070 XT using FSR4. Cause of few AI cores or something.
Can't say about bugs and/or glitches...
Proton FSR4 fp8 already fixed (2025-04-30 build).
@Etaash-mathamsetty is doing a great job :)
I apologize for asking the question here. I have rdna3, I have followed the instructions (fp16, amd dll in the game folder, the game (Last Of Us 2) allows me to select FSR4, but the game crashes if I apply the setting). Did I do something wrong?
Some problem as @Wiltonicol.
*** stack smashing detected ***: terminated
015c:err:seh:call_stack_handlers invalid frame 000000010080B3D0 (000000007A5E2000-000000007A6E0000)
015c:err:seh:NtRaiseException Exception frame is not in stack limits => unable to dispatch exception.
0148:fixme:kernelbase:AppPolicyGetProcessTerminationMethod FFFFFFFFFFFFFFFA, 000000000021FEB0
Tried with Stalker 2 without optiscaler and CyberPunk with optiscaler.
I think RDNA3 requires mesa-git (plus a PR maybe). It works on my machine with that configuration
do you mean this version?
This link is private, is it yours? I've asked for access.
also how do you make it work in the first place? CP2077 and other games crash no matter what I do
* Extracted amdxcffx64.dll from https://drivers.amd.com/drivers/amd-software-adrenalin-edition-25.4.1-win10-win11-apr22-rdna.exe and put it beside the game's .exe * Compiled Mesa fp8 hack3 and made it OS default (not sure if it's mandatory) * Extracted Proton FSR4 fp8 version in /home/[user]/.steam/steam/compatibilitytools.d/ * Selected that Proton inside Steam (it shows as "bleeding-edge-local") * Used latest Optiscaler to make it workIf you need extra help in any of these steps, let me know. I'm using arch linux.
Tested with FF XVI and The Last of Us Part II (both with Lutris) and Clair Obscur (Steam). All working fine, played Clair about 4 hours yesterday with FSR 4.0.1 and zero issues.
Hi, sorry but I'm new to github but I can't get my setup to work.
I followed the instructions, on my fedora 42 install with mesa-git and cachyos kernel to try fsr4 on RDNA4.
The only thing I didn't do is compile Mesa fp8 hack3 because I don't really know how.
The games run fine with optiscaler and FSR3 but as soon as I add the amdxcffx64.dll to cyberpunk's folder it crashes.
The only thing I didn't do is compile Mesa fp8 hack3 because I don't really know how.
It's not that difficult (edit: seeing the entire post now it's kinda difficult, but don't give up!)
Pass 4 will (probably) throw a lot of errors because of missing packages. In arch linux, these were the ones misssing for me:
yay -S cbindgen rust-bindgen libclc python-mako llvm spirv-llvm-translator (yeah I don't use pacman)
After you correct all the missing ones, you have two options. Make this mesa fp8 system default (option 1), or keep Mesa stock as it is, and use Mesa fp8 only for the games you want FSR4 (option 2).
For option 1:
echo /opt/mesa-fp8/lib | sudo tee /etc/ld.so.conf.d/mesa.conf
sudo ldconfig
Put inside /etc/environment:
LIBGL_DRIVERS_PATH=/opt/mesa-fp8/lib/dri
VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json
VK_LAYER_PATH=/opt/mesa-fp8/share/vulkan/icd.d
This is for arch linux, some systems use "lib64" path instead. Reboot after the changes. Mesa fp8 is now your system default for ALL apps (except for 32-bit ones, don't know how to do it and don't care much)
For option 2:
If using Lutris, just set:
VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json
In system options / variables for every game
In Steam:
VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command%
In General / Start up option for every game
In both Lutris and Steam you obviously have to choose Proton FSR4 fp8 (bleeding-edge-local) as I mentioned in my previous post.
If all the steps is followed properly, you'll have:
EDIT: In FFXVI, fsr 4.0.1 upgrade loses even less, 85 to 79 fps, only 7% :)
Careful, if you make Mesa fp8 system default and don't set it properly your DE won't even boot.
I recommend option 2 if you are not sure which one is better for you.
The games run fine with optiscaler and FSR3 but as soon as I add the amdxcffx64.dll to cyberpunk's folder it crashes.
Even with fp16 build?
Thank you very very much for all the instructions, I'll try them right now and I'll update!
Even with fp16 build?
Yes, I tried with fp16 and as soon as I load FSR4 the game crashes.
he basically has the same issue as me @intellq . I also tried FP16 as I had no idea to go about the mesa hack. Regardless which game I tried it crashes as soon as optiscaler loads FSR4. Without loading FSR4 optiscaler works normally.
Tried it with Guardian of the Galaxy, A Plague Tale: Requiem, Ghostrunner 2 and some other games in steam too. Same behavior as cp2077 in heroic.
You can also use mesa-tkg instead if you don't want to do all that manually (only on arch I think tho)
I've had good success with the following:
OS: Fedora 42 (Gnome)
Mesa: radv-float8-hack3 build - https://gitlab.freedesktop.org/DadSchoorse/mesa/-/tree/radv-float8-hack3?ref_type=heads
Proton: Proton-FSR4 fp8 build - https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4
FSR: 4.0.1
Works in CP2077, Clair Obscur and HZD Remastered using FSR 4.0.1. When using FP16, the performance was much worse!
(On Fedora 42)
7z e -r amd-software-adrenalin-edition-25.4.1-win10-win11-apr22-rdna.exe amdxcffx64.dllI do the mesa compile in a toolbox to avoid having a load of stuff on my base OS
wget https://gitlab.freedesktop.org/DadSchoorse/mesa/-/archive/radv-float8-hack3/mesa-radv-float8-hack3.zipunzip mesa-radv-float8-hack3.zip && cd ./mesa-radv-float8-hack3sudo dnf builddep mesameson setup build64 --libdir lib64 --prefix $HOME/mesa-fp8ninja -C build64 installfp8 build: https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4/home/<user>/.steam/steam/compatibilitytools.d (change the user to your own)amdxcffx64.dll you downloaded to the same placeIn Steam ensure you have the following set (per game):
bleeding-edge-localWINEDLLOVERRIDES=dxgi=n,b VK_DRIVER_FILES=/home/<user>/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command% (change the user to your own)The launch options includes the flag required for OptiScaler to function and specifying the mesa-fp8 build
Hope this helps someone!
Ok so, I tried the following:
I installed CachyOS (I'm not skilled enough to install Arch, even with archinstall) tested cyberpunk with FSR3 Optiscaler and proton-cachyos (works just fine), then followed @intellq instructions on how to build and use mesa for cyberpunk only + latest fp8 build, but it doesn't even open just like it does on Fedora.
I then tried using mesa-tkg-git after enabling it in the chaotic-aur repos like suggested by @Etaash-mathamsetty , if I use the fp8 build the game opens and it crashes after the first logo, but for some reason, if I use proton-cachyos I can enable FSR4 but It's all glitched.
I went back to fedora and followed @leeford instructions, I also used a toolbox to not introduce any variables and keep my install clean, but again no luck, it doesn't even run like before.
If I remove the launch options and use FSR3 on optiscaler the fp8 build does work and I can get in game, so I don't understand.
It's probably my fault but I can't understand what I'm doing wrong.
Are you using the FP8 Proton build from @Etaash-mathamsetty ?
Ok so, I tried the following:
I installed CachyOS (I'm not skilled enough to install Arch, even with archinstall) tested cyberpunk with FSR3 Optiscaler and proton-cachyos (works just fine), then followed @intellq instructions on how to build and use mesa for cyberpunk only + latest fp8 build, but it doesn't even open just like it does on Fedora.
I then tried using mesa-tkg-git after enabling it in the chaotic-aur repos like suggested by @Etaash-mathamsetty , if I use the fp8 build the game opens and it crashes after the first logo, but for some reason, if I use proton-cachyos I can enable FSR4 but It's all glitched.
I went back to fedora and followed @leeford instructions, I also used a toolbox to not introduce any variables and keep my install clean, but again no luck, it doesn't even run like before.
If I remove the launch options and use FSR3 on optiscaler the fp8 build does work and I can get in game, so I don't understand.
It's probably my fault but I can't understand what I'm doing wrong.
Did you add the patches from float8-hack3 branch? You have to compile it yourself you can't use a precompiled version as that probably doesn't have the patches. by mesa-tkg i meant this (https://github.com/Frogging-Family/mesa-git)
Are you using the FP8 Proton build from @Etaash-mathamsetty ?
Yes, I downloaded it each and every time I tried to be sure I wasn't using something outdated
Did you add the patches from float8-hack3 branch? You have to compile it yourself you can't use a precompiled version as that probably doesn't have the patches. by mesa-tkg i meant this (https://github.com/Frogging-Family/mesa-git)
My bad, I didn't, sorry.
Edit: I've got more luck with death stranding, it starts, I can get in game, I can enable FSR4 but only the top half of the screen can be seen, the rest is stuck to the same frame.
The only thing I didn't do is compile Mesa fp8 hack3 because I don't really know how.
It's not that difficult (edit: seeing the entire post now it's kinda difficult, but don't give up!)
- cd && git clone --recurse-submodules https://gitlab.freedesktop.org/DadSchoorse/mesa.git mesa-fp8 && cd mesa-fp8
- git checkout radv-float8-hack3
- meson setup build/ --prefix=/opt/mesa-fp8 -Dbuildtype=release
- ninja -C build
- sudo ninja -C build install
Pass 4 will (probably) throw a lot of errors because of missing packages. In arch linux, these were the ones misssing for me: yay -S cbindgen rust-bindgen libclc python-mako llvm spirv-llvm-translator (yeah I don't use pacman)
After you correct all the missing ones, you have two options. Make this mesa fp8 system default (option 1), or keep Mesa stock as it is, and use Mesa fp8 only for the games you want FSR4 (option 2).
For option 1: echo /opt/mesa-fp8/lib | sudo tee /etc/ld.so.conf.d/mesa.conf sudo ldconfig Put inside /etc/environment: LIBGL_DRIVERS_PATH=/opt/mesa-fp8/lib/dri VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json VK_LAYER_PATH=/opt/mesa-fp8/share/vulkan/icd.d
This is for arch linux, some systems use "lib64" path instead. Reboot after the changes. Mesa fp8 is now your system default for ALL apps (except for 32-bit ones, don't know how to do it and don't care much)
For option 2: If using Lutris, just set: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json In system options / variables for every game
In Steam: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command% In General / Start up option for every game
In both Lutris and Steam you obviously have to choose Proton FSR4 fp8 (bleeding-edge-local) as I mentioned in my previous post.
If all the steps is followed properly, you'll have:
- Mesa FP8 hack3, version 25.2.0-devel (more updated than 25.0.4, the last stable)
- Proton bleeding edge, also more updated than GE-Proton-27 (as far as I know)
- FSR 4.0.1 with only ~10% loss (or less) when compared to FSR 3.1.3 (around the same loss as Windows!)
EDIT: In FFXVI, fsr 4.0.1 upgrade loses even less, 85 to 79 fps, only 7% :)
Careful, if you make Mesa fp8 system default and don't set it properly your DE won't even boot. I recommend option 2 if you are not sure which one is better for you.
The games run fine with optiscaler and FSR3 but as soon as I add the amdxcffx64.dll to cyberpunk's folder it crashes.
Even with fp16 build?
Following your instructions for option 2:
1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Unsupported AGS magic instruction 0x29 (immediate 0). 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed DXIL opcode 79. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to emit instruction. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to convert function.
This happens as soon as I switch the upscaler to FSR
For those who can't make proton fsr4 works no matter what, I recommend to install EndeavourOS to test all of this in an arch linux distribution.
I'm starting to think is something related to kernel or linux-firmware versions of other distros.
Did you add the patches from float8-hack3 branch? You have to compile it yourself you can't use a precompiled version as that probably doesn't have the patches. by mesa-tkg i meant this (https://github.com/Frogging-Family/mesa-git)
How to add these patches from float8-hack3 branch to mesa-tkg?
I saw I need to create a .mymesapatch but I have no idea how to do it...
Made it work on Bazzite following these steps: https://github.com/HansKristian-Work/vkd3d-proton/issues/2398#issuecomment-2845201173
Compiling mesa was done inside a Fedora 42 distrobox to match the host version
I only tried enabling FSR4 in Clair Obscur: Expedition 33, but it works like a charm, even when running inside gamescope !
The only thing I didn't do is compile Mesa fp8 hack3 because I don't really know how.
It's not that difficult (edit: seeing the entire post now it's kinda difficult, but don't give up!)
- cd && git clone --recurse-submodules https://gitlab.freedesktop.org/DadSchoorse/mesa.git mesa-fp8 && cd mesa-fp8
- git checkout radv-float8-hack3
- meson setup build/ --prefix=/opt/mesa-fp8 -Dbuildtype=release
- ninja -C build
- sudo ninja -C build install
Pass 4 will (probably) throw a lot of errors because of missing packages. In arch linux, these were the ones misssing for me: yay -S cbindgen rust-bindgen libclc python-mako llvm spirv-llvm-translator (yeah I don't use pacman)
After you correct all the missing ones, you have two options. Make this mesa fp8 system default (option 1), or keep Mesa stock as it is, and use Mesa fp8 only for the games you want FSR4 (option 2).
For option 1: echo /opt/mesa-fp8/lib | sudo tee /etc/ld.so.conf.d/mesa.conf sudo ldconfig Put inside /etc/environment: LIBGL_DRIVERS_PATH=/opt/mesa-fp8/lib/dri VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json VK_LAYER_PATH=/opt/mesa-fp8/share/vulkan/icd.d
This is for arch linux, some systems use "lib64" path instead. Reboot after the changes. Mesa fp8 is now your system default for ALL apps (except for 32-bit ones, don't know how to do it and don't care much)
For option 2: If using Lutris, just set: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json In system options / variables for every game
In Steam: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command% In General / Start up option for every game
In both Lutris and Steam you obviously have to choose Proton FSR4 fp8 (bleeding-edge-local) as I mentioned in my previous post.
If all the steps is followed properly, you'll have:
- Mesa FP8 hack3, version 25.2.0-devel (more updated than 25.0.4, the last stable)
- Proton bleeding edge, also more updated than GE-Proton-27 (as far as I know)
- FSR 4.0.1 with only ~10% loss (or less) when compared to FSR 3.1.3 (around the same loss as Windows!)
EDIT: In FFXVI, fsr 4.0.1 upgrade loses even less, 85 to 79 fps, only 7% :)
Careful, if you make Mesa fp8 system default and don't set it properly your DE won't even boot. I recommend option 2 if you are not sure which one is better for you.
The games run fine with optiscaler and FSR3 but as soon as I add the amdxcffx64.dll to cyberpunk's folder it crashes.
Even with fp16 build?
Following your instructions for option 2:
1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Unsupported AGS magic instruction 0x29 (immediate 0). 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed DXIL opcode 79. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to emit instruction. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to convert function.This happens as soon as I switch the upscaler to FSR
You aren't using the correct proton version
Did you add the patches from float8-hack3 branch? You have to compile it yourself you can't use a precompiled version as that probably doesn't have the patches. by mesa-tkg i meant this (https://github.com/Frogging-Family/mesa-git)
How to add these patches from float8-hack3 branch to mesa-tkg?
I saw I need to create a .mymesapatch but I have no idea how to do it...
You can edit customization.cfg to use a custom repo and branch instead of creating a patch file
You can edit customization.cfg to use a custom repo and branch instead of creating a patch file
But this is not equivalent to just compile the branch from the custom repo myself, as I'm doing now?
You can edit customization.cfg to use a custom repo and branch instead of creating a patch file
But this is not equivalent to just compile the branch from the custom repo myself, as I'm doing now?
It is equivalent, I'm just suggesting an easier alternative since this will install this mesa version to your system and will automatically compile everything. There's much less room for error
I've had good success with the following:
OS: Fedora 42 (Gnome)
Mesa:
radv-float8-hack3build - https://gitlab.freedesktop.org/DadSchoorse/mesa/-/tree/radv-float8-hack3?ref_type=headsProton: Proton-FSR4
fp8build - https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4FSR: 4.0.1
Works in CP2077, Clair Obscur and HZD Remastered using FSR 4.0.1. When using FP16, the performance was much worse!
Steps to success
(On Fedora 42)
FSR4
- Download the latest AMD driver. I am using this one which has 4.0.1 inside: https://www.techpowerup.com/download/amd-radeon-graphics-drivers/
- Extract the FSR4 file from it:
7z e -r amd-software-adrenalin-edition-25.4.1-win10-win11-apr22-rdna.exe amdxcffx64.dllMesa
I do the mesa compile in a toolbox to avoid having a load of stuff on my base OS
- Install all the build dependencies
- Download the "hack" mesa branch:
wget https://gitlab.freedesktop.org/DadSchoorse/mesa/-/archive/radv-float8-hack3/mesa-radv-float8-hack3.zip- Extract the zip and go in folder:
unzip mesa-radv-float8-hack3.zip && cd ./mesa-radv-float8-hack3- Install build dependencies:
sudo dnf builddep mesa- Setup build:
meson setup build64 --libdir lib64 --prefix $HOME/mesa-fp8- Build/install:
ninja -C build64 installProton
- Download the latest
fp8build: https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4- Extract it and put it in the folder with the other proton versions:
/home/<user>/.steam/steam/compatibilitytools.d(change the user to your own)OptiScaler
- Follow the install instructions to install it: https://github.com/cdozdil/OptiScaler/wiki/Manual-Installation
- In addition, add the
amdxcffx64.dllyou downloaded to the same placeGame settings
In Steam ensure you have the following set (per game):
- Compatibility:
bleeding-edge-local- Launch Options:
WINEDLLOVERRIDES=dxgi=n,b VK_DRIVER_FILES=/home/<user>/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command%(change the user to your own)The launch options includes the flag required for OptiScaler to function and specifying the mesa-fp8 build
Hope this helps someone!
Mesa fp8 is required also with an RX 9070XT ?
Im using amdvlk, I need also mesa fp8 ?
The only thing I didn't do is compile Mesa fp8 hack3 because I don't really know how.
It's not that difficult (edit: seeing the entire post now it's kinda difficult, but don't give up!)
- cd && git clone --recurse-submodules https://gitlab.freedesktop.org/DadSchoorse/mesa.git mesa-fp8 && cd mesa-fp8
- git checkout radv-float8-hack3
- meson setup build/ --prefix=/opt/mesa-fp8 -Dbuildtype=release
- ninja -C build
- sudo ninja -C build install
Pass 4 will (probably) throw a lot of errors because of missing packages. In arch linux, these were the ones misssing for me: yay -S cbindgen rust-bindgen libclc python-mako llvm spirv-llvm-translator (yeah I don't use pacman)
After you correct all the missing ones, you have two options. Make this mesa fp8 system default (option 1), or keep Mesa stock as it is, and use Mesa fp8 only for the games you want FSR4 (option 2).
For option 1: echo /opt/mesa-fp8/lib | sudo tee /etc/ld.so.conf.d/mesa.conf sudo ldconfig Put inside /etc/environment: LIBGL_DRIVERS_PATH=/opt/mesa-fp8/lib/dri VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json VK_LAYER_PATH=/opt/mesa-fp8/share/vulkan/icd.d
This is for arch linux, some systems use "lib64" path instead. Reboot after the changes. Mesa fp8 is now your system default for ALL apps (except for 32-bit ones, don't know how to do it and don't care much)
For option 2: If using Lutris, just set: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json In system options / variables for every game
In Steam: VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command% In General / Start up option for every game
In both Lutris and Steam you obviously have to choose Proton FSR4 fp8 (bleeding-edge-local) as I mentioned in my previous post.
If all the steps is followed properly, you'll have:
- Mesa FP8 hack3, version 25.2.0-devel (more updated than 25.0.4, the last stable)
- Proton bleeding edge, also more updated than GE-Proton-27 (as far as I know)
- FSR 4.0.1 with only ~10% loss (or less) when compared to FSR 3.1.3 (around the same loss as Windows!)
EDIT: In FFXVI, fsr 4.0.1 upgrade loses even less, 85 to 79 fps, only 7% :)
Careful, if you make Mesa fp8 system default and don't set it properly your DE won't even boot. I recommend option 2 if you are not sure which one is better for you.The games run fine with optiscaler and FSR3 but as soon as I add the amdxcffx64.dll to cyberpunk's folder it crashes.
Even with fp16 build?
Following your instructions for option 2:
1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Unsupported AGS magic instruction 0x29 (immediate 0). 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed DXIL opcode 79. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to emit instruction. 1085.557:00d0:01e4:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to convert function.
This happens as soon as I switch the upscaler to FSRYou aren't using the correct proton version
Thanks. I thought I was, but I guess it wasn't working correctly.
I'm using lutris and was selecting a custom wine executable under runner, which loaded fine and mangohud suggested it was using the correct version.
I placed your build in the expected location for lutris to detect it and picked it that way which worked.
Going from FSR3 to FSR4 looks great. I had some serious artifacts in silent hill 2 remake going from dlss.
I'll test more games later.
I've had good success with the following:
- OS: Fedora 42 (Gnome)
- Mesa:
radv-float8-hack3build - https://gitlab.freedesktop.org/DadSchoorse/mesa/-/tree/radv-float8-hack3?ref_type=heads- Proton: Proton-FSR4
fp8build - https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4- FSR: 4.0.1
Works in CP2077, Clair Obscur and HZD Remastered using FSR 4.0.1. When using FP16, the performance was much worse!
Steps to success
(On Fedora 42)
FSR4
- Download the latest AMD driver. I am using this one which has 4.0.1 inside: https://www.techpowerup.com/download/amd-radeon-graphics-drivers/
- Extract the FSR4 file from it:
7z e -r amd-software-adrenalin-edition-25.4.1-win10-win11-apr22-rdna.exe amdxcffx64.dllMesa
I do the mesa compile in a toolbox to avoid having a load of stuff on my base OS
- Install all the build dependencies
- Download the "hack" mesa branch:
wget https://gitlab.freedesktop.org/DadSchoorse/mesa/-/archive/radv-float8-hack3/mesa-radv-float8-hack3.zip- Extract the zip and go in folder:
unzip mesa-radv-float8-hack3.zip && cd ./mesa-radv-float8-hack3- Install build dependencies:
sudo dnf builddep mesa- Setup build:
meson setup build64 --libdir lib64 --prefix $HOME/mesa-fp8- Build/install:
ninja -C build64 installProton
- Download the latest
fp8build: https://github.com/Etaash-mathamsetty/wine-builds/releases/tag/fsr4- Extract it and put it in the folder with the other proton versions:
/home/<user>/.steam/steam/compatibilitytools.d(change the user to your own)OptiScaler
- Follow the install instructions to install it: https://github.com/cdozdil/OptiScaler/wiki/Manual-Installation
- In addition, add the
amdxcffx64.dllyou downloaded to the same placeGame settings
In Steam ensure you have the following set (per game):
- Compatibility:
bleeding-edge-local- Launch Options:
WINEDLLOVERRIDES=dxgi=n,b VK_DRIVER_FILES=/home/<user>/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command%(change the user to your own)The launch options includes the flag required for OptiScaler to function and specifying the mesa-fp8 build
Hope this helps someone!Mesa fp8 is required also with an RX 9070XT ? Im using amdvlk, I need also mesa fp8 ?
It's not required, but if you default to the FP16 you will get much worse performance. Good question on AMDVLK, I haven't tried that!
AMDVLK probably won't work and it doesn't have good performance or compatibility anyway compared to radv lol
When my 9070XT arrived I've installed Ubuntu just to test the official AMD driver for linux, that uses amdvlk.
Friends, it's bad. It's really bad. Don't waste your time :)
Haha Great Success!
Control + FSR4 + OptiFG with Hud Fix 1
Works like a charm, thanks for your hard work! Funny thing is, Control crashes with FSR4 on Windows (from Optiscaler) but works fine on Linux. I honestly think that Linux compatibility layers are better than native windows dlls at this point :P
If anyone is on Arch or arch-based and wants to easily install the fp8 hask mesa, here's the modified mesa-git PKGBUILD: mesa-git-fp8-hack3.zip
Just extract, go into the folder and launch makepkg -sicC
You guys are amazing! Working like a charm even on Assassin's Creed Shadows on Ubisoft Connect (Lutris)
Made it work on Bazzite following these steps: [#2398 (comment)](https://github.com/HansKristian-Work/vkd3d-proton/issues/2398#issuecomment-2845201173) Compiling mesa was done inside a Fedora 42 distrobox to match the host version I only tried enabling FSR4 in Clair Obscur: Expedition 33, but it works like a charm, even when running inside gamescope !
I did exactly the same thing on Bazzite and tested in Clair Obscur: Expedition 33. Works great and the upscale looks better than FSR3.1.
I have all game post processing settings turned off in the screenshot.
Ignore the nvngx warning at the bottom. I was using an old version of OptiScaler previously and forgot to remove the old ini config file.
tried out the steps here https://github.com/HansKristian-Work/vkd3d-proton/issues/2398#issuecomment-2845201173 and could make it work in some games now thanks @leeford ! But one thing I still don't understand is why cp2077 still has issues. I'm playing it through heroics launcher but when I put in the like this
it just doesn't want to start at all. And I'm only declaring and not activating the variable there. And yes I did change the /user/ to actual name when I tried it. Through what are you all playing cp2077? Through Lutris? Or are you all playing the steam version?
Games that worked for me (heroic games use same setting that won't work with cp2077):
A Plague tale: Requiem (steam)
Control Ultimate Edition (heroic)
Ghostwire: Tokyo (heroic)
Monster Hunter Wilds (steam, no optiscaler ui but it says it uses fsr4 in game settings)
Valkyrie Elysium (steam)
I think now that we have this confirmed, we can stop spamming here with screens :D
Excuse my ignorance, but since I've seen several videos on YouTube about a hack to use FSR4 in RNDA3 I've been following this post, could you clarify for me about all the tests I've seen in each of the posts, is it related to this or is it just the FSR4 support in the Linux and Optiscaler drivers?
thank you!
Works on RDNA3 but the performance is pretty bad. It's early days, it might get better if AMD cooks up something of a "FSR4 lite"
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
I've played several hours without a crash or freeze the last couple of days using FSR4 through Optiscaler. It looks and runs incredible.
Manjaro using 6.15 RC4 kernel. The 6.15 kernel improved stability on it's own with 9070XT.
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
Maybe a Bazzite issue, as played same game for about 4 hours last night with zero issues.
Is the game or the OS freezing?
Haha Great Success! Control + FSR4 + OptiFG with Hud Fix 1
Screenshot
Works like a charm, thanks for your hard work! Funny thing is, Control crashes with FSR4 on Windows (from Optiscaler) but works fine on Linux. I honestly think that Linux compatibility layers are better than native windows dlls at this point :PIf anyone is on Arch or arch-based and wants to easily install the fp8 hask mesa, here's the modified mesa-git PKGBUILD: mesa-git-fp8-hack3.zip
Just extract, go into the folder and launch
makepkg -sicC
This pkgbuild worked for me, thanks for this. Only thing was I had to set VK_DRIVER_FILES var to /usr/share/vulkan/icd.d/radeon_icd.x86_64.json instead of what original tutorial said, might be because I installed with paru instead of provided makepkg command
Also note the proton fsr4 package now has fp8 and fp16 combined, with enabling fp8 with DXIL_SPIRV_CONFIG="wmma_fp8_hack" variable
EDIT: After some reflection the VK_DRIVER_FILES env var probably isn't needed as it's installed as the driver for entire system rather than a random folder in home. Will update post when I can retest
EDiT2: can confirm I didnt need VK_DRIVER_FILES var set
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
Maybe a Bazzite issue, as played same game for about 4 hours last night with zero issues.
Is the game or the OS freezing?
When it was working, the game freezes and I can tab out to the desktop and force it closed. However, I updated Bazzite and now I can't get Expedition 33 to launch with the modifications to enable FSR4. Expedition 33 gives me a "fatal error" window from UE.
When it was working, the game freezes and I can tab out to the desktop and force it closed. However, I updated Bazzite and now I can't get Expedition 33 to launch with the modifications to enable FSR4. Expedition 33 gives me a "fatal error" window from UE.
I just finished Clair Obscur with FSR4 all the time (4.0.1 version), not a single crash or glitch.
FSR4 already seems stable enough, It would be nice to see these fp8 modifications get to Mesa's main branch
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
Maybe a Bazzite issue, as played same game for about 4 hours last night with zero issues.
Is the game or the OS freezing?When it was working, the game freezes and I can tab out to the desktop and force it closed. However, I updated Bazzite and now I can't get Expedition 33 to launch with the modifications to enable FSR4. Expedition 33 gives me a "fatal error" window from UE.
Had the same "Fatal error" on launch, until I noticed the distrobox I used to build mesa was still on Fedora 41 whereas Bazzite hopped on Fedora 42 some time ago
Removing and creating a new distrobox based on Fedora 42, updating all its packages with sudo dnf upgrade --refresh, then building mesa fixed this issue for me
I'll have to check it against windows. Using KDCII, and 4.0.1 amd file, got arch on mainline working with about 1.33ms latency for upscaler, curious how this compares to windows and other games, but honestly so cool that this is working well. shout out to @Lawstorant for the package build. Interestingly enough, probably my CPU but no difference in framerate from performance up to quality, however the optiscaler recognized the upscaling changed multipliers
I did the installation on my fedora and it does seem to work in a few games. I however get this weird topscreen error:
no idea how to solve it, as it seems to only be a problem for LAD infinite wealth, and claire obscure
I did the installation on my fedora and it does seem to work in a few games. I however get this weird topscreen error:
no idea how to solve it, as it seems to only be a problem for LAD infinite wealth, and claire obscure
Did you select DLSS in game as upscaler? I had the same effect while I enabled Optiscaler but XESS was still selected in game.
I did the installation on my fedora and it does seem to work in a few games. I however get this weird topscreen error:
no idea how to solve it, as it seems to only be a problem for LAD infinite wealth, and claire obscure
Did you select DLSS in game as upscaler? I had the same effect while I enabled Optiscaler but XESS was still selected in game.
yep, it was dlss. With xess it's just black screen (no matter what upscale option i choose in optiscaler menu)
An update to my post. It seems the game is not stable with this combo of mesa/proton/optiscaler. It freezes anywhere from 5-30 min of game play. I am using stock setting on my 9070xt.
Maybe a Bazzite issue, as played same game for about 4 hours last night with zero issues.
Is the game or the OS freezing?When it was working, the game freezes and I can tab out to the desktop and force it closed. However, I updated Bazzite and now I can't get Expedition 33 to launch with the modifications to enable FSR4. Expedition 33 gives me a "fatal error" window from UE.
Had the same "Fatal error" on launch, until I noticed the distrobox I used to build mesa was still on Fedora 41 whereas Bazzite hopped on Fedora 42 some time ago Removing and creating a new distrobox based on Fedora 42, updating all its packages with
sudo dnf upgrade --refresh, then building mesa fixed this issue for me
Finally rebuilt mesa and it seems to have gotten me back to my previous state of COE33 running for about 20 min before it freezes. I am beginning to think it might be something else other than the FSR4 workaround.
I have tried CP2077 and Alan Wake 2. Both work just fine with no crashing issues for at least 30 min of game play. Oddly enough, gamescope works with COE33 and CP2077, but I can't get Alan Wake 2 to load with that pipeline.
The last of us part II FSR4 works
Tested on Spider Man 2 and Monster Hunter Wilds and FSR 4 works like a charm.
Large artifacts appear in satisfactory(directx 12 mode) but other than that I see no issues.
This is more or less resolved now. We've done what we can for now.
ge-proton9-26x1 2025-03WINEDLLOVERRIDES=dxgi=n,bx3 2025-05WINEDLLOVERRIDESx3 2025-04PROTON_FORCE_NVAPI=1x2 2025-04PROTON_LOG=1x2 2025-04WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,amdxcffx64.dll=n,b"x2 2025-04WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,dinput8.dll,amdxcffx64.dll=n,b"x2 2025-04WINEDLLOVERRIDES="dxgi.dll=n,b"x1 2025-03WINEDLLOVERRIDES=dxgi=n,b VK_DRIVER_FILES=/home/<user>/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command%x3 2025-05VK_ICD_FILENAMES=/opt/mesa-fp8/share/vulkan/icd.d/radeon_icd.x86_64.json %command%x4 2025-05PROTON_FORCE_NVAPI=1 PROTON_LOG=1 WINEDLLOVERRIDES="dxgi.dll,amdxc64.dl,dinput8.dll,amdxcffx64.dll=n,b" %command%x2 2025-04amdxcffx64.dllx20 2025-05amdxc64.dllx10 2025-04d3d12.dllx5 2025-04d3d12core.dllx5 2025-04dxgi.dllx3 2025-04dinput8.dllx2 2025-04optiscaler.dllx1 2025-030xc0000005x1 2025-030x80070057x1 2025-03
Please describe your issue as accurately as possible. Include screenshots or videos if relevant
Using Optiscaler you can get fsr4 on many titles on windows, on linux it works for 3.1 but when i try to apply fsr4.0 the game/games crash. Note that it crashes on boot with default settings since it tries to load fsr4. i made the settings so i could apply it to see the crash happening in the logs. here is the issue on optiplexer github: https://github.com/cdozdil/OptiScaler/issues/285
The culprit seems to be this from proton logs:
7624.558:0128:0178:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Unsupported AGS magic instruction 0x29 (immediate 0).
7624.558:0128:0178:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed DXIL opcode 79.
7624.558:0128:0178:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to emit instruction.
7624.558:0128:0178:err:vkd3d-proton:vkd3d_dxil_log_callback: dxil-spirv: Failed to convert function.
7624.558:0128:0178:warn:vkd3d-proton:vkd3d_compile_shader_stage: Failed to compile shader, vkd3d result -3.
7624.558:0128:0178:warn:vkd3d-proton:d3d12_pipeline_state_init_compute: Failed to create Vulkan compute pipeline, hr 0x80070057.
Backtrace:
0x006ffff3fb1371 in d3d12core (+0x1d1371)
1 0x006ffff2c19f53 in amdxcffx64 (+0x39f53)
2 0x006ffff2c17724 in amdxcffx64 (+0x37724)
3 0x006ffff2bf73b7 in amdxcffx64 (+0x173b7)
4 0x006ffff2be1e71 in amdxcffx64 (+0x1e71)
5 0x006ffffbb80d0e in dxgi (+0x50d0e)
I'm guessing vkd3d does not support something that fsr4 tries to use?
somebody also made a issue on proton github page: https://github.com/ValveSoftware/Proton/issues/8519
steps to get OptiScaler to attempt loading fsr4
use latest nightly version
copy all the OptiScaler files to games exe location
rename OptiScaler.dll > dxgi.dll
you will need amdxc64.dll and amdxcffx64.dll in games exe location (can grab from windows after installing drivers)
Windows/System32/DriverStore/FileRepository/u0412790.inf_amd64_b0a9eb989e37c81c/B413137/amdxcffx64.dll
Windows/System32/DriverStore/FileRepository/u0412790.inf_amd64_b0a9eb989e37c81c/B413137/amdxc64.dll
set fsr4Update to true (if not detecting 9000 series gpu properly) in OptiScaler.ini
set WINEDLLOVERRIDES="dxgi.dll=n,b" in launch options
there is a FsrAgilitySDKUpgrade=true option in OptiScaler.ini which may or may not be needed on proton not entirely sure though, desc of FsrAgilitySDKUpgrade option (from ini)
Updates the DirectX 12 Agility SDK Enabling the use of FSR 4 on Windows 10 in older titles like Cyberpunk 2077 You MUST copy D3D12_Optiscaler folder next to games exe! true or false - Default (auto) is false
Software information
Name of the game, settings used etc.
god of war ragnarok
FSR 3.1
no frame generation
System information
Log files
steam-2322010.log
optiscaler log if it helps:
OptiScaler.log
can provide further help/testing no problem.