protonscr

Arma Reforger Heavy Foliage Artifacting

vkd3dopen
HansKristian-Work/vkd3d-proton#2031 · opened 2024-06-27 by kit-the-cat-skelanimal-plush · updated 2026-07-27 · 76 comments · github
Kkit-the-cat-skelanimal-plush 2024-06-27 github

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

  • GPU: Nvidia RTX 3060 Ti
  • Driver: Nvidia proprietary driver 545, also happens on previous driver versions.
  • Wine version: Steam Proton Experimental bleeding edge, but happens on any Proton version that will launch the game.
  • VKD3D-Proton version: 2.13, previous versions as well.

Log files

steam-1874880.log

HHansKristian-Work maintainer 2024-07-01 github

@runar-work reproduced it.

Rrunar-work 2024-07-02 github

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.

Kkit-the-cat-skelanimal-plush 2024-07-02 github

Thanks, will try.

Kkit-the-cat-skelanimal-plush 2024-07-02 github

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 :/

Rrunar-work 2024-07-03 github

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.

Kkit-the-cat-skelanimal-plush 2024-07-03 github

Thanks a ton for the help!

Rrunar-work 2024-07-05 github

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

Kkit-the-cat-skelanimal-plush 2024-07-06 github

How would I go about trying the edited version? Sorry I'm not very good with this kind of stuff :P

Rrunar-work 2024-07-06 github

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.

Aadolfintel 2024-07-07 github

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.

https://github.com/HansKristian-Work/vkd3d-proton/assets/16307689/45ed65ee-40ee-4114-94d2-8976b433a140

Kkit-the-cat-skelanimal-plush 2024-07-07 github

@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.

Aadolfintel 2024-07-08 github

@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.

Rrunar-work 2024-07-09 github

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.

Eesullivan-nvidia 2024-07-09 github

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.

Kkit-the-cat-skelanimal-plush 2024-08-09 github

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?

Rrunar-work 2024-08-09 github

Weird. I can still reproduce the glitch easily with

Kkit-the-cat-skelanimal-plush 2024-08-09 github

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.

AAkkaNation 2025-01-28 github

Same issue here, Bazzite OS, nvidia RTX 2080.
It seems totally random, but the idea that it is because of load seems plausible.

EEntytaiment25 2025-02-06 github

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.

Rromeobalta 2025-03-27 github

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.

RRainOrigami 2025-04-01 github

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.

Rromeobalta 2025-04-03 github

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 running cd ~ && pwd in the terminal.

  1. Create a folder called arma_shader_dump in /home/{your_user}
  2. Create a folder called recompiled in /home/{your_user}/arma_shader_dump
  3. 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%

  1. Launch the game, enter Training, wait a bit for all the shaders to be dumped, then exit the game.
  2. Open a terminal, then cd to /home/{your_user}/arma_shader_dump
  3. Run spirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semantics
  4. Run glslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"
  5. 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-cross and glslangValidator installed 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 $hash and $VKD3D_SHADER_OVERRIDE/$hash.spv exists, 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.

AAkkaNation 2025-04-06 github

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 running cd ~ && pwd in the terminal.

  1. Create a folder called arma_shader_dump in /home/{your_user}
  2. Create a folder called recompiled in /home/{your_user}/arma_shader_dump
  3. 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%

  1. Launch the game, enter Training, wait a bit for all the shaders to be dumped, then exit the game.
  2. Open a terminal, then cd to /home/{your_user}/arma_shader_dump
  3. Run spirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semantics
  4. Run glslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"
  5. 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-cross and glslangValidator installed 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?

Llbgracioso 2025-05-01 github

@romeobalta could you answer @JDZant ? I'm really curious about it.

Kkensad-ops 2025-05-11 github

@romeobalta my SPIRV-Cross give me an error SPIRV-Cross threw an exception: Cannot resolve expression type. any idea how to fix this ?

Ssrounce 2025-05-25 github

@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.

HHansKristian-Work maintainer 2025-05-26 github

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

Wwiggy9999 2025-06-17 github

@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?

Wwiggy9999 2025-06-17 github

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

Ddataboose 2025-06-20 github

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.

LLoronsoDev 2025-06-27 github

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.

Nndavd 2025-07-05 github

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:

  • Delete game's prefix (note: that will also delete all the installed mods)
  • Launch game, set my preferred settings, do not touch anything grass related
  • Close game, you will notice that the GrassMaterialSettings are empty, so just add the edits there
  • Launch the game, no more flickering

UPDATE 2:
I didn't change any settings after that and now it went back to flickering again.

Nndavd 2025-07-05 github

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

Nndavd 2025-07-05 github

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.

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)

Ddataboose 2025-07-08 github

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.

Nndavd 2025-07-08 github

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.

Llbgracioso 2025-07-08 github
  • 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.

GGrigoriOH 2025-08-16 github

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) :)

EExZiByte 2025-11-05 github

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

DDTA666-sys 2025-11-14 github

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.

MMAD-BUG 2025-11-15 github

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.

DDTA666-sys 2025-11-16 github

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.

MMAD-BUG 2025-11-16 github

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.

AAylawoo 2025-11-25 github

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.

FFourteenRoses 2025-11-29 github

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!

Ppallctrl 2025-12-25 github

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:

  • @HansKristian-Work's method with pyroveil, but unfortunately it didn't work

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

  • @databoose's method by disabling the grass - didn't work either

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.

  • The solution from @Aylawoo

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.

My steps were those from the method mentioned by @romeobalta just without the spirv-cross and glslangValidator commands:

  1. Create a folder called arma_shader_dump in /home/{your_user}
  2. Create a folder called recompiled in /home/{your_user}/arma_shader_dump
  3. 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%

  1. Launch the game, enter Training, wait a bit for all the shaders to be dumped, then exit the game.
  2. Open a terminal, then cd to /home/{your_user}/arma_shader_dump
  3. Run spirv-cross 3a1ef71a2dbb0c0f.spv --output 3a1ef71a2dbb0c0f.comp --vulkan-semantics
  4. Run glslangValidator -V "3a1ef71a2dbb0c0f.comp" -o "recompiled/3a1ef71a2dbb0c0f.spv"
  5. 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.

  • And the solution from @FourteenRoses

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!

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:

  • OS: CachyOS
  • GPU: RTX 3060 TI
  • Intel i5 13600KF
DDTA666-sys 2025-12-29 github

None of these solutions work, I've tested them all.

DDTA666-sys 2025-12-29 github

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.

Rrothaarigerbuddha 2026-04-01 github

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.

00LGuenth 2026-04-05 github

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.

XXimenes101 2026-04-08 github

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!

Wwolframowy 2026-04-08 github

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.

00LGuenth 2026-04-08 github

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.

Kkit-the-cat-skelanimal-plush 2026-04-09 github

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.

XXimenes101 2026-04-09 github

@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.

ZziipzaaapM16A4 2026-04-12 github

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.

XXimenes101 2026-04-12 github

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)?

ZziipzaaapM16A4 2026-04-12 github

@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

ZziipzaaapM16A4 2026-04-12 github

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.

Rrothaarigerbuddha 2026-04-13 github

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%

Aavirar 2026-05-15 github

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

Eentropie 2026-05-15 github

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

DDaineko-A 2026-05-30 github

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

Wwolframowy 2026-06-03 github

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

00LGuenth 2026-06-03 github

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.

XXimenes101 2026-06-05 github

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)

Ddataboose 2026-06-06 github

If anything's to be learned by this multiple year long thread, it's that we should all buy an AMD card next time.

Aashap5 2026-06-24 github

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

Bbarlin41k 2026-06-25 github

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

Ddataboose 2026-06-26 github

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.

Bbarlin41k 2026-06-26 github

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.

Wwolframowy 2026-07-01 github

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%.

Aashap5 2026-07-02 github

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.

Ddataboose 2026-07-02 github

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)

Bbarlin41k 2026-07-02 github

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

440inones 2026-07-27 github

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%.

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

Proton versions

Launch options

Launch lines

Upstream links