@runar-work reproduced it.
I wasn't able to reproduce this with the 555 drivers on RTX 3070, so give that a try. 555.58.02 is the most recent I checked.
Thanks, will try.
Looks like the 555 driver works! Tested very extensively launching the game 15 or so times, worked perfectly. Still reproduces easily on 545, so it must be a bug that's been since patched. Anyways, thanks so much for the help! Should this be closed now since it appears to just be a driver issue?
Edit: Nevermind, I launched the game again and it is indeed still happening. Somehow wasn't happening for the first 15 times I launched the game :/
Huh. Strangely enough I also reproduced again after roughly the same number of launches. Thanks for the feedback. I'll switch back to 545 and poke at this a bit more.
Thanks a ton for the help!
I found a compute shader that seems to do the ground work for the flower drawing, 3ca95f6902bd3478. It does have some barriers, but not in the biggest of the loops, so I added one there and could no longer reproduce the issue. Without the shader override the glitch always reproduces on the second launch after I delete the pipeline cache.
Here's the original dumped shader and the edited version: 3ca95f6902bd3478.zip
How would I go about trying the edited version? Sorry I'm not very good with this kind of stuff :P
Ah, sorry, I meant to tag Hans-Kristian on that comment. The goal, if it's possible, is to find some way to fix this in vkd3d-proton so you won't need to do any acrobatics. So far the easy workarounds involve reducing performance in some way, like adding VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 to launch options, which obviously isn't ideal.
Is this an UE5 game? I noticed the same issue in Talos Principle 2, on AMD, in a couple of spots in the west 2 and west 3 areas when looking at the grass from certain angles or when zooming in, I thought it was a game bug but it looks the same as this.
@adolfintel It runs on a proprietary engine made by the devs called Enfusion. That is a very similar looking bug, although in Arma Reforger it doesn't seem have to do with the angle you view the grass from.
@kit-the-cat-skelanimal-plush Thanks, I'll see if I can replicate this in windows, make some captures and open a separate issue then.
Yeah, this is an Nvidia issue. I tested it on RX 7600 with Mesa 24.1.2 without any problems there, at least.
As for the root cause investigation, I did some more testing with shader overrides and it seems it was the shader compilation and not the shader modification that fixed the issue. So it seems to be a bug that is fixed when going through SPIRV-Cross.
Here's a RenderDoc capture with 550.90.07 and minimal settings, where I bookmarked the compute shader dispatch and a draw call that reads from the same buffer later.
The SPIR-V files from the original shader dump and the recompiled override (without other modifications):
3ca95f6902bd3478.spv.zip
The easiest way to reproduce seems to be to launch with high or ultra preset (changing presets while in-game doesn't seem to affect the glitch), then go into the training mode.
Thanks for the detailed investigation Runar. I am tracking this issue in NVIDIA bug 4739549. I will report back here when I have more to share.
I seem to no longer be having this bug while playing on the bleeding edge branch of Proton. Not gonna say that it's fixed for sure yet, but I have launched the game maybe 30 times in testing and have had no issues. I can still easily reproduce it on the most recent stable branch of Proton. Were any changes made to vkd3d that might've fixed it?
Weird. I can still reproduce the glitch easily with
Well sure enough I went back and tested it a few more times and it happened on the third launch. No idea why it was working seemingly perfectly for me earlier, I haven't changed anything since then. Very strange.
Same issue here, Bazzite OS, nvidia RTX 2080.
It seems totally random, but the idea that it is because of load seems plausible.
Got the same Issue on Fedora 41 Gnome with ProtonGE-23 and Proton Experimental, RTX 3060 Ti. It's not a single round without it and only near around me constantly flickering since I started playing Arma Reforger.
After the 1.3.0 patch the hash of the foliage shader is 3a1ef71a2dbb0c0f.spv so if you used a VKD3D_SHADER_OVERRIDE to play prior to that, make sure to recompile this shader in order to fix it again.
What is the solution for normal players? Imagine I have no idea what any of this means, do I just wait for it to be fixed or can I actually do something right now to fix this?
I often have this after a game crash and restart and I can get it to disappear by restarting the game a couple of times.
You can fix it by doing the following:
[!NOTE]
Make sure to replace{your_user}with your actual user. You can find out the path easily by runningcd ~ && pwdin the terminal.
arma_shader_dump in /home/{your_user}recompiled in /home/{your_user}/arma_shader_dumpVKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command%
cd to /home/{your_user}/arma_shader_dumpspirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semanticsglslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"VKD3D_SHADER_OVERRIDE=/home/{your_user}/arma_shader_dump/recompiled %command%Enjoy the game.
[!IMPORTANT]
You needspirv-crossandglslangValidatorinstalled on your machine which you can do easily with your distros package manager (if you don't know how to do that ask ChatGPT).
EDIT:
Since there's more people asking for an explanation on how I figured it out, here it goes:
runar-work is the one that figured out what the issue is, if you read the thread, they say:
I found a compute shader that seems to do the ground work for the flower drawing, 3ca95f6902bd3478. It does have some barriers, but not in the biggest of the loops, so I added one there and could no longer reproduce the issue. Without the shader override the glitch always reproduces on the second launch after I delete the pipeline cache.
Here's the original dumped shader and the edited version: 3ca95f6902bd3478.zip
and a bit later:
As for the root cause investigation, I did some more testing with shader overrides and it seems it was the shader compilation and not the shader modification that fixed the issue. So it seems to be a bug that is fixed when going through SPIRV-Cross
If you then read Advanced shader debugging in the readme of this repo, you will find out:
VKD3D_SHADER_DUMP_PATH- path where shader bytecode is dumped. Bytecode is dumped in format of$hash.{spv,dxbc,dxil}
So I used that to dump the shaders.
And then in the same section:
VKD3D_SHADER_OVERRIDE- path to where overridden shaders can be found. If application is creating a pipeline with$hashand$VKD3D_SHADER_OVERRIDE/$hash.spvexists, that SPIR-V file will be used instead.
And I used this to override the shader.
Other than that, use a good search engine or a good LLM to learn stuff.
You can fix it by doing the following:
Note
Make sure to replace
{your_user}with your actual user. You can find out the path easily by runningcd ~ && pwdin the terminal.
- Create a folder called
arma_shader_dumpin/home/{your_user}- Create a folder called
recompiledin/home/{your_user}/arma_shader_dump- In Steam, right click on Arma Reforger > Properties > General > Launch Options and put this:
VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command%
- Launch the game, enter Training, wait a bit for all the shaders to be dumped, then exit the game.
- Open a terminal, then
cdto/home/{your_user}/arma_shader_dump- Run
spirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semantics- Run
glslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"- In Steam, right click on Arma Reforger > Properties > General > Launch Options change to:
VKD3D_SHADER_OVERRIDE=/home/{your_user}/arma_shader_dump/recompiled %command%Enjoy the game.
Important
You need
spirv-crossandglslangValidatorinstalled on your machine which you can do easily with your distros package manager (if you don't know how to do that ask ChatGPT).
How did you figure this out, and could you elaborate on the solution?
@romeobalta could you answer @JDZant ? I'm really curious about it.
@romeobalta my SPIRV-Cross give me an error SPIRV-Cross threw an exception: Cannot resolve expression type. any idea how to fix this ?
@romeobalta what version of spirv-cross are you using? I'm also getting the same error as @kensad-ops when trying to follow your instructions using spirv-cross version 1.4.313.0.
If a simple roundtrip is needed, pyroveil can do that automatically. Here's a config for that. Didn't test it myself, but just copied in the hash pyroveil.json
@romeobalta what version of spirv-cross are you using? I'm also getting the same error as @kensad-ops when trying to follow your instructions using spirv-cross version
1.4.313.0.
@romeobalta
I have the same issue, I cannot recompile the shader as per your instructions, could you perhaps upload the recompiled version so we can use it?
If a simple roundtrip is needed, pyroveil can do that automatically. Here's a config for that. Didn't test it myself, but just copied in the hash pyroveil.json
this actually worked, and it also increased my FPS by 5-10 interestingly... running a smooth 100 now on ULTRA
For anyone wanting a less convoluted workaround, there is a configuration file for reforger that allows you to disable grass rendering.
Go to your SteamLibrary directory
steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/profile/.save/<App_Random Digits>/settings/ReforgerEngineSettings.conf
Find GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}"
Change to the following :
GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}" {
Distance 0
Lod 1
Quality 0
}
I've tested this with multiple launches and i can't seem to reproduce the foilage flickering issue anymore, downside is grass isn't fully rendered unlike the shader fix, but a quick and easy workaround.
Do note that the config file will change back to defaults for grass settings from time to time (if you touch any of the settings for instance, it will set to grass default values, or occassional updates may do this), so if the issue presents again, make sure to check if it changed back to defaults.
Presumably you can just write-lock the file, i haven't tried though.
If a simple roundtrip is needed, pyroveil can do that automatically. Here's a config for that. Didn't test it myself, but just copied in the hash pyroveil.json
I am not able to fix it using pyroveil.json (on Arch Linux)
My steps:
Building and installing pyroveil with the readme instructions on https://github.com/HansKristian-Work/pyroveil
Copying the .json to pyroveil/hacks/arma-reforger
Running with launch options
PROTON_LOG=1 PYROVEIL=1 PYROVEIL_CONFIG=/home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json %command%
Confirmed with PROTON_LOG that it's actually finding the .json and applying the patch, but the grass is sadly still flickering.
╰─ ❯❯ grep "pyroveil:" steam-1874880.log pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Found config in /home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json! pyroveil: Adding match for OpString: 3a1ef71a2dbb0c0f. pyroveil: Adding GLSL roundtrip via SPIRV-Cross for match. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Disabling extension VK_NV_raw_access_chains. pyroveil: Found match for opStringSearch: "3a1ef71a2dbb0c0f.dxil" in 997640884fd1e7c3.
For anyone wanting a less convoluted workaround, there is a configuration file for reforger that allows you to disable grass rendering.
Go to your SteamLibrary directory
steamapps/compatdata/1874880/pfx/drive_c/steamuser/Documents/My Games/ArmaReforger/profile/.save/<App_Random Digits>/settings/ReforgerEngineSettings.conf
Find
GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}"Change to the following :
GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}" { Distance 0 Lod 1 Quality 0 }I've tested this with multiple launches and i can't seem to reproduce the foilage flickering issue anymore, downside is grass isn't fully rendered unlike the shader fix, but a quick and easy workaround.
Do note that the config file will change back to defaults for grass settings from time to time (if you touch any of the settings for instance, it will set to grass default values, or occassional updates may do this), so if the issue presents again, make sure to check if it changed back to defaults.
Presumably you can just write-lock the file, i haven't tried though.
It's not working for me anymore, the flickering still happens
UPDATE:
It worked by doing the following:
GrassMaterialSettings are empty, so just add the edits thereUPDATE 2:
I didn't change any settings after that and now it went back to flickering again.
If a simple roundtrip is needed, pyroveil can do that automatically. Here's a config for that. Didn't test it myself, but just copied in the hash pyroveil.json
I am not able to fix it using pyroveil.json (on Arch Linux)
My steps:
Building and installing pyroveil with the readme instructions on https://github.com/HansKristian-Work/pyroveil
Copying the .json to pyroveil/hacks/arma-reforger
Running with launch options PROTON_LOG=1 PYROVEIL=1 PYROVEIL_CONFIG=/home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json %command%
Confirmed with PROTON_LOG that it's actually finding the .json and applying the patch, but the grass is sadly still flickering.
Same for me
After the 1.3.0 patch the hash of the foliage shader is
3a1ef71a2dbb0c0f.spvso if you used aVKD3D_SHADER_OVERRIDEto play prior to that, make sure to recompile this shader in order to fix it again.
It's not working for me, is it possible that the hash of the foliage shader has changed again? (We're already at 1.4.0.45)
No knowledge in graphics so apology for my ignorance, but what is the root cause of this? Is this an inherent issue with nvidia drivers or vkd3d giving an erroneous shader?
I've asked around and i can't find any AMD or windows users that are reporting this issue, maybe the problem exists there but judging by this thread this seems to be exclusive to nvidia cards.
No knowledge in graphics so apology for my ignorance, but what is the root cause of this? Is this an inherent issue with nvidia drivers or vkd3d giving an erroneous shader?
I've asked around and i can't find any AMD or windows users that are reporting this issue, maybe the problem exists there but judging by this thread this seems to be exclusive to nvidia cards.
I'd like to know as well, I've had similar issues in other games, I think they were exclusive to nvidia too.
- Launch game, set my preferred settings, do not touch anything grass related
That one made me laugh. Thanks for the updates, guys, I will check out if something works for me later. This thing is driving me crazy everytime I play this game.
Somehow, I had the same issue and was able to avoid it by limiting FPS so GPU never reached 90% or more. Then, upgrading to nvidia driver 575 the issue vanished (until now - knock on wood) :)
This wasn't happening for last update but with the newest update that released Oct. 30 2025, it is back
It doesn't affect trees for me but I have ghost images of grass that are offset from the normal stuff and its grass that shouldn't be in that location of the map.
System:
Debian 13
Nvidia driver 580.95.05
Ryzen 5 3600
RTX 3060
This wasn't happening for last update but with the newest update that released Oct. 30 2025, it is back
It doesn't affect trees for me but I have ghost images of grass that are offset from the normal stuff and its grass that shouldn't be in that location of the map.
System: Debian 13 Nvidia driver 580.95.05 Ryzen 5 3600 RTX 3060
yep, confirmed back after newest update.
Accidentally found a quick hack - using this flag
VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command%
fixes flickering for me. You can use invalid path to not really dump any files.
Didn't notice any performance difference using it.
Accidentally found a quick hack - using this flag VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command% fixes flickering for me. You can use invalid path to not really dump any files. Didn't notice any performance difference using it.
that won't work. you probably just had a lucky launch. it's an intermittent problem.
I know that should not have worked, but i could 100% reproduce flickering without it and fix it 100% of launches with it.
But today i just can't reproduce it. No flickering with\without it.
EndeavourOS Linux 6.17.8-arch1-1
RTX 4070 Ti Super
Ryzen 7 5800x3D
nvidia 580.105.08-3 and nvidia-open 580.105.08-5. both tested
Still happening every single launch, can confirm that the original file with the spirv method does not presently work.
The "use settings to remove grass completely" did work but I do not consider that a valid workaround. HOWEVER:
I was able to get the spirv fix running with some brute-force, using the following bash script dropped into the dumped shaders folder:
for shaderfile in *.spv; do
outfile="${shaderfile%.spv}.comp"
echo "Processing $shaderfile as $outfile"
spirv-cross "$shaderfile" --output "$outfile" --vulkan-semantics
glslangValidator -V "$outfile" -o "recompiled/$shaderfile"
done
Now, I have no idea how "Safe" this is from say, an anticheat perspective, but, I did also notice a general FPS improvement from 35fps to 50fps on mostly max settings. This results in 46 recompiled shaders, performing a binary search on these I was able to locate the (Current) correct shader file: d57abd4309e6b388.spv
This does indeed fix the issue, and I am presently using it, however I DID notice the occasional very quick flicker of grass with cc9bc55b63b8cfe0.spv removed as well. Surely enough - adding it back fixed this. I don't know how to identify what each of these do, and I'm only using d57... for now, because I want the minimum amount of changes.
This does beg the question though, in terms of anticheat safety, is there a risk using recompiled shaders like this? Any additional risk to just using them all (For the sizeable performance increase) vs just using the single shader? I'm moderately experienced in the software side of things, not so much with graphics.
Thanks.
Fixed the grass flickering
GPU: Nvidia RTX 3060 Ti
OS:Linux Mint
on steam go browse local files, then delete "vkd3d-proton.cache.write" and relaunch Arma Reforger. This has worked for me every time!
Hey everyone, before I start a short disclaimer: I'm a newbie to this graphic/shader topic, so please bear with me
And a big shout-out to all the people mentioned below, thanks for putting this much effort into fixing this bug!
I have this problem with grass flickering too since I switched entirely to linux and installed arma reforger.
What I tried:
If a simple roundtrip is needed, pyroveil can do that automatically. Here's a config for that. Didn't test it myself, but just copied in the hash pyroveil.json
For anyone wanting a less convoluted workaround, there is a configuration file for reforger that allows you to disable grass rendering.
Go to your SteamLibrary directory
steamapps/compatdata/1874880/pfx/drive_c/users/steamuser/Documents/My Games/ArmaReforger/profile/.save/<App_Random Digits>/settings/ReforgerEngineSettings.conf
Find
GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}"Change to the following :
GrassMaterialSettings GrassMaterialSettings "{647B33B662D0A939}" { Distance 0 Lod 1 Quality 0 }I've tested this with multiple launches and i can't seem to reproduce the foilage flickering issue anymore, downside is grass isn't fully rendered unlike the shader fix, but a quick and easy workaround.
Do note that the config file will change back to defaults for grass settings from time to time (if you touch any of the settings for instance, it will set to grass default values, or occassional updates may do this), so if the issue presents again, make sure to check if it changed back to defaults.
Presumably you can just write-lock the file, i haven't tried though.
EndeavourOS Linux 6.17.8-arch1-1 RTX 4070 Ti Super Ryzen 7 5800x3D nvidia 580.105.08-3 and nvidia-open 580.105.08-5. both tested
Still happening every single launch, can confirm that the original file with the spirv method does not presently work.
The "use settings to remove grass completely" did work but I do not consider that a valid workaround. HOWEVER:
I was able to get the spirv fix running with some brute-force, using the following bash script dropped into the dumped shaders folder:
for shaderfile in *.spv; do outfile="${shaderfile%.spv}.comp" echo "Processing $shaderfile as $outfile" spirv-cross "$shaderfile" --output "$outfile" --vulkan-semantics glslangValidator -V "$outfile" -o "recompiled/$shaderfile" doneNow, I have no idea how "Safe" this is from say, an anticheat perspective, but, I did also notice a general FPS improvement from 35fps to 50fps on mostly max settings. This results in 46 recompiled shaders, performing a binary search on these I was able to locate the (Current) correct shader file:
d57abd4309e6b388.spvThis does indeed fix the issue, and I am presently using it, however I DID notice the occasional very quick flicker of grass with
cc9bc55b63b8cfe0.spvremoved as well. Surely enough - adding it back fixed this. I don't know how to identify what each of these do, and I'm only using d57... for now, because I want the minimum amount of changes.This does beg the question though, in terms of anticheat safety, is there a risk using recompiled shaders like this? Any additional risk to just using them all (For the sizeable performance increase) vs just using the single shader? I'm moderately experienced in the software side of things, not so much with graphics.
Thanks.
My steps were those from the method mentioned by @romeobalta just without the spirv-cross and glslangValidator commands:
- Create a folder called
arma_shader_dumpin/home/{your_user}- Create a folder called
recompiledin/home/{your_user}/arma_shader_dump- In Steam, right click on Arma Reforger > Properties > General > Launch Options and put this:
VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command%
- Launch the game, enter Training, wait a bit for all the shaders to be dumped, then exit the game.
- Open a terminal, then
cdto/home/{your_user}/arma_shader_dump- Run
spirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semantics- Run
glslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"- In Steam, right click on Arma Reforger > Properties > General > Launch Options change to:
VKD3D_SHADER_OVERRIDE=/home/{your_user}/arma_shader_dump/recompiled %command%
However I couldn't find a shader file called d57abd4309e6b388.spv, neither in the dumped-folder, nor in the recompiled one, I guess it changed again. But does this method still work for you? For me the flickering came back after a few launches.
Fixed the grass flickering
GPU: Nvidia RTX 3060 Ti
OS:Linux Minton steam go browse local files, then delete "vkd3d-proton.cache.write" and relaunch Arma Reforger. This has worked for me every time!
For me that didn't work either, do you have any more information, like which version of proton you are using, and when you delete that cache file (for example when still in-game), and if you force-quit arma through steam? I tried these few things but couldn't get it to work.
I am really looking forward to every response, thanks!
My specs:
None of these solutions work, I've tested them all.
This wasn't happening for last update but with the newest update that released Oct. 30 2025, it is back
It doesn't affect trees for me but I have ghost images of grass that are offset from the normal stuff and its grass that shouldn't be in that location of the map.
System: Debian 13 Nvidia driver 580.95.05 Ryzen 5 3600 RTX 3060
I asked the devs if they could fix it and they did. I even thanked them. then it came back in the next update and I can't talk to them anymore since their nazi mod banned me for having a pfp that poked fun at charlie kirk (rest in piss) No warnings or anything either, just instant perm ban. lol, must have touched a nerve.
So someone else will have to ask them to fix it. this isn't a proton issue.
Is there any current, permanent solution to this problem other than limiting the FPS to prevent the graphics card from being overloaded? I’ve scoured all the forums, but the most recent questions on this topic remain unanswered, and the older ones are no longer relevant based on other people’s responses and my own attempts. I’d appreciate any answers.
Is there any current, permanent solution to this problem other than limiting the FPS to prevent the graphics card from being overloaded? I’ve scoured all the forums, but the most recent questions on this topic remain unanswered, and the older ones are no longer relevant based on other people’s responses and my own attempts. I’d appreciate any answers.
For me it worked to delete the cache files in the Arma Reforger folder before every start of the game.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue.
It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now.
Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup:
Arch Linux 6.19.11-zen
Intel i9-13900K
RTX 4090
Nvidia Driver: 595.58.03
My Testing:
Without launch commands:
8/10 launches with flickering
With aforementioned launch command:
0/10 launches with flickering
This should fix both this issue and #2919.
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger.
Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
Worked for me! Thanks! As well didn't notice any impact on performance.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
Worked for me too! No performance impact either.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
Unfortunately, it's still occurring for me with this launch option. Nvidia driver 590.48.01, Proton Experimental.
@kit-the-cat-skelanimal-plush
Thanks for letting me know.
Since it is mainly a nvidia driver issue, updating to the latest driver + launch option should fix this.
I should also add that I use GE-Proton10-34.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
Unfortunately, it's still occurring for me with this launch option.
Nvidia driver 595.45.04 Prod, Proton-GE Latest & Experimental.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!Unfortunately, it's still occurring for me with this launch option. Nvidia driver 595.45.04 Prod, Proton-GE Latest & Experimental.
Thanks for the feedback!
Interestingly this launch option is the only "fix" that works either 100% of the time or not at all.
By now I have launched the game at least 100 times and did not have a re-occurrence.
At the same time I am in contact with others that had the same issue and it was completely fixed for them as well.
Now you are the second one that reported that it would not work. That is definitely strange and worth investigating.
Would you mind giving me your system's specs (with distro, kernel, etc)?
@Ximenes101
Thanks for the feedback! Interestingly this launch option is the only "fix" that works either 100% of the time or not at all. By now I have launched the game at least 100 times and did not have a re-occurrence.
At the same time I am in contact with others that had the same issue and it was completely fixed for them as well.
Now you are the second one that reported that it would not work. That is definitely strange and worth investigating.
Would you mind giving me your system's specs (with distro, kernel, etc)?
Operating System: Nobara Linux 43
KDE Plasma Version: 6.6.2
KDE Frameworks Version: 6.24.0
Qt Version: 6.10.2
Kernel Version: 6.19.11-201.nobara.fc43.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 24 × AMD Ryzen 9 9900X3D 12-Core Processor
Memory: 32 GiB of RAM (30.2 GiB usable)
Graphics Processor 1: NVIDIA GeForce RTX 4080
Graphics Processor 2: AMD Ryzen 9 9900X3D 12-Core Processor
Manufacturer: Micro-Star International Co., Ltd.
Product Name: MS-7E26
System Version: 1.0
Tested
Nvidia driver 595.45.04 Prod
Proton-GE Latest & Experimental
VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains -forceUpdate (my setup) & VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains
Thanks to @Ximenes101 fixed.
Launch commands get ignored when not in use with: ...%command%
so my personal launch command is now
VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command% -forceUpdate
@kit-the-cat-skelanimal-plush maybe this helps you too.
Hey! It took me far too long but i finally got it!!
Took me days.
I will keep it short (Let me know, if you need details).
Firstly I got to say that it IS an Nvidia issue. It is the Nvidia Linux driver that miscompiles "OpRawAccessChainNV" for foliage compute shaders.
That said, there is a workaround you can use right now. Use "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" as launch option.
The big hint was @runar-work discovery in 2024: Running the shader through SPIRV-Cross translates OpRawAccessChainNV to OpAccessChain. That is why it worked. Without that I would have stood no chance.
Performance impact was negligible on my end (1% lows slightly worse).
My setup: Arch Linux 6.19.11-zen Intel i9-13900K RTX 4090 Nvidia Driver: 595.58.03
My Testing: Without launch commands: 8/10 launches with flickering
With aforementioned launch command: 0/10 launches with flickering
This should fix both this issue and [#2919](https://github.com/HansKristian-Work/vkd3d-proton/issues/2919).
I already got a patch ready for libs/vkd3d/device.c, so it would automatically apply for Arma Reforger. Obviously the launch option needs to be tested first by more people and depends on the maintainers how they like to approach it, so I am not gonna open a PR yet. (Or we wait for Nvidia to fix their shader compiler 😆 )
Let me know, if it works for you, guys!
yeah, finally the only solution that actually fixed this for me - thank you so much ^_^
setup:
Operating System: CachyOS x86_64
KDE Plasma Version: KDE Plasma 6.6.4
Kernel Version: Linux 6.19.11-1-cachyos
Graphics Platform: KWin (Wayland)
Processors: 12th Gen Intel(R) Core(TM) i5-12450H × 8
Memory: 7.73 GiB / 15.32 GiB (50%)
Graphics Processor 1: NVIDIA GeForce RTX 4060 Max-Q / Mobile [Discrete]
Driver Version: 4.6.0 NVIDIA 595.58.03
Graphics Processor 2: Intel UHD Graphics @ 1.20 GHz [Integrated]
Manufacturer: GF
Product Name: Cyborg 15 A12VF
System Version: REV:1.0
Driver Version: 4.6.0 NVIDIA 595.58.03
launch options (I just added a few commands to improve performance on CachyOS; if anyone has suggestions on what to fix or add, I'd appreciate it^^):
VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains PROTON_ENABLE_WAYLAND=1 PROTON_DLSS_UPGRADE=1 PROTON_NVIDIA_LIBS_NO_32BIT=1 PROTON_NO_WM_DECORATION=1 %command%
I followed the advice of runar-work and decompiled the shader with the help of opencode and an LLM (GLM 5 assisted in this specific case). Adding a single barrier instruction to the shader solves the issue completely. I used his old patched shader as a reference to find the new shader, and patch it in a similar manner, again using the old patched shader as a reference.
More details here: https://github.com/avirar/arma-reforger-foliage-shader-fix
launch command with proton-ge 34
VKD3D_CONFIG=no_upload_hvv VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command% -malloc=system -high -nolauncher -noSplash
fixes the issue completely for me, I tested it multiple weeks with no issues. @Ximenes101 you are my mvp
VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%
It worked
Operating System: Bazzite 44
KDE Plasma Version: 6.6.4
KDE Frameworks Version: 6.26.0
Qt Version: 6.10.3
Kernel Version: 6.19.14-ogc2.1.fc44.x86_64 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 8845HS w/ Radeon 780M Graphics
Memory: 32 GB of RAM (30.6 GB usable)
Graphics Processor 1: AMD Radeon 780M Graphics
Graphics Processor 2: NVIDIA GeForce RTX 4060 Laptop GPU
Manufacturer: ASUSTeK COMPUTER INC.
Product Name: ASUS TUF Gaming A15 FA507UV_FA507UV
System Version: 1.0
VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains no longer works for me. Itwas working before Arma Reforger 1.7. But it could also be due to nvidia drivers after update 610.
OS: CachyOS x86_64
Host: Z690 UD DDR4
Kernel: Linux 7.0.10-2-cachyos
DE: KDE Plasma 6.6.5
CPU: 12th Gen Intel(R) Core(TM) i7-12700K (20) @ 5.00 GHz
GPU 1: NVIDIA GeForce RTX 3080 12GB [Discrete]
Proton Version: proton-cachyos-11.0-20260521
Nvidia driver: 610.43.02
I had the same problem after upgrading to driver version 610.xxx . I tried everything I saw in this thread before for several hours yesterday: shader recompiling with barrier instructions, using SPIRV-Cross, different environment variables in steam, combining the approaches, even running without any fixes/environment variables. Nothing worked other than downgrading to the previous driver version (should be 595.xxx) and then using "VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains" again. Since then it works again.
Confirming last 2 posts. Broke on my end as well. Working on a new fix right now.
Will update here once I find a solution.
Thank you @0LGuenth, that narrows it down to the driver (rather than Reforger)
If anything's to be learned by this multiple year long thread, it's that we should all buy an AMD card next time.
Nvidia 610.xxx 3060TI
proton-cachyos-11.0.20260602-3
adding VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains to launch options seems to reduce the flickering but it still happens
VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%
It really helped me after quite a lot of suffering. I have been using this solution for over a month now—even before version 1.7 was released.
OS: Arch Linux x86_64
Host: Nitro AN515-46
Kernel: Linux 7.0.12-arch1-1
DE: Niri 26.04
CPU: AMD Ryzen 5 6600H with Radeon Graphics (12) @ 4.57 GHz
GPU 1: NVIDIA GeForce RTX 3050 Mobile [Discrete]
GPU 2: AMD Radeon 660M [Integrated]
Proton Version: ge-proton10-32
NVIDIA driver: 610.43.02
Do note that this bug seems to be somewhat random, i've had many occasions where i tried something that seemed to fix the problem but came back a few days later after a few more startups, so if you post a proposed solution make sure it's something that you've been using for at least a few days to confirm it works for you.
A lot of people including myself have posted what they thought were fixes but turned out to not work, so just keep that in mind.
VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%It really helped me after quite a lot of suffering.
I have been using this solution for over a month now—even before version 1.7 was released.
NVPRESENT_ENABLE_SMOOTH_MOTION=1 for some reason stops the grass flickering as well. Funny thing is I have a Nvidia 3080, but the parameter is meant for 50xx series. Didn't notice any performance impact
Current whole launch options PROTON_ENABLE_WAYLAND=1 NVPRESENT_ENABLE_SMOOTH_MOTION=1 DXVK_ASYNC=1 game-performance %command%.
Tried out NVPRESENT_ENABLE_SMOOTH_MOTION=1 and it works for me too and seems to have little to no FPS impact.
Using VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 also removes the grass flickering but lowers FPS by about 20% for me.
Current whole launch options: NVPRESENT_ENABLE_SMOOTH_MOTION=1 %command%
I am using:
kernel: 7.1.2-2-cachyos
nvidia : 610.43.02-1
proton: proton-cachyos-slr 1:11.0.20260602-3
OS: CachyOS x86_64
CPU: 11th Gen Intel(R) Core(TM) i5-11400 (12) @ 4.40 GHz
GPU: NVIDIA GeForce RTX 3060 Ti Lite Hash Rate [Discrete]
Further testing is required as the problem seems to appear and disappear on its own sometimes, but it seems promising.
VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%It really helped me after quite a lot of suffering.I have been using this solution for over a month now—even before version 1.7 was released.
Can confirm on my side after a few days of using this, this seems to work 100% of the time, hadn't seen flickering once with this.
Nvidia 610 drivers, GE proton 11-1 (worked on an older proton version too)
Tried out NVPRESENT_ENABLE_SMOOTH_MOTION=1 and it works for me too and seems to have little to no FPS impact.
Using VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 also removes the grass flickering but lowers FPS by about 20% for me.
Current whole launch options: NVPRESENT_ENABLE_SMOOTH_MOTION=1 %command%
I am using: kernel: 7.1.2-2-cachyos nvidia : 610.43.02-1 proton: proton-cachyos-slr 1:11.0.20260602-3 OS: CachyOS x86_64 CPU: 11th Gen Intel(R) Core(TM) i5-11400 (12) @ 4.40 GHz GPU: NVIDIA GeForce RTX 3060 Ti Lite Hash Rate [Discrete]
Further testing is required as the problem seems to appear and disappear on its own sometimes, but it seems promising.
VKD3D_SWAPCHAIN_LATENCY_FRAMES=1
It is lagging because the swapchain (a collection of shots, roughly speaking) uses only 1 image instead of the default 2 or 3. Thus, the graphics API sits idle for much longer waiting for the frame to clear, performing less useful work. Therefore, a drop in performance is unavoidable, but this solution should resolve the grass flickering issue, for example, by eliminating desynchronization between frames
NVPRESENT_ENABLE_SMOOTH_MOTION=1for some reason stops the grass flickering as well. Funny thing is I have a Nvidia 3080, but the parameter is meant for 50xx series. Didn't notice any performance impactCurrent whole launch options
PROTON_ENABLE_WAYLAND=1 NVPRESENT_ENABLE_SMOOTH_MOTION=1 DXVK_ASYNC=1 game-performance %command%.
This works for me after hours of trying all different things. However I just used:
NVPRESENT_ENABLE_SMOOTH_MOTION=1 %command%
Using the entire thing causes the game not to launch.
You are the actual MVP
ge-proton10-32x1 2026-06ge-proton10-34x1 2026-04proton experimentalx3 2026-04PROTON_ENABLE_WAYLAND=1x3 2026-07DXVK_ASYNC=1x2 2026-07VKD3D_SWAPCHAIN_LATENCY_FRAMES=1x5 2026-07VKD3D_SWAPCHAIN_LATENCY_FRAMES=1`x2 2026-07VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chainsx10 2026-07VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains"x1 2026-06VKD3D_CONFIG=no_upload_hvvx1 2026-05VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains**"x7 2026-04PROTON_DLSS_UPGRADE=1x1 2026-04PROTON_NO_WM_DECORATION=1x1 2026-04PROTON_NVIDIA_LIBS_NO_32BIT=1x1 2026-04VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains`x1 2026-04VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dumpx5 2025-12VKD3D_SHADER_OVERRIDE=/home/{your_user}/arma_shader_dump/recompiledx3 2025-12VKD3D_SHADER_OVERRIDEx3 2025-07NVPRESENT_ENABLE_SMOOTH_MOTION=1 %command%x3 2026-07VKD3D_SWAPCHAIN_LATENCY_FRAMES=1 VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%x3 2026-07VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command%x1 2026-05VKD3D_CONFIG=no_upload_hvv VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command% -malloc=system -high -nolauncher -noSplashx1 2026-05VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains PROTON_ENABLE_WAYLAND=1 PROTON_DLSS_UPGRADE=1 PROTON_NVIDIA_LIBS_NO_32BIT=1 PROTON_NO_WM_DECORATION=1 %command%x1 2026-04VKD3D_DISABLE_EXTENSIONS=VK_NV_raw_access_chains %command% -forceUpdatex1 2026-04VKD3D_SHADER_DUMP_PATH=/home/{your_user}/arma_shader_dump %command%x5 2025-12VKD3D_SHADER_OVERRIDE=/home/{your_user}/arma_shader_dump/recompiled %command%x3 2025-12PROTON_LOG=1 PYROVEIL=1 PYROVEIL_CONFIG=/home/loren/Downloads/pyroveil/hacks/arma-reforger/pyroveil.json %command%x2 2025-07
In Arma Reforger rocks and foliage will completely glitch out when around 100% GPU usage. Does not happen on every instance of the game, I'd say it shows up about every 1 in 2, maybe 2 in 3 launches. The only thing that stops it is limiting the framerate, but that fails once the GPU usage increases to 100% during heavy gameplay moments.
https://youtu.be/RdhsNIctri8?si=8Zz4HWHwiVfpqL3Y
This is a video of it happening. The subtitles can be ignored, I wrongly attributed it to framerate rather than GPU usage.
Software information
Arma Reforger, happens on all settings configurations and game versions.
System information
Log files
steam-1874880.log