Recently, I highlighted an issue in multiple Unity games where the graphics were distorted on Linux with using an NVIDIA GPU and I offered some workarounds. I now have an update on the issue to share from both Unity and NVIDIA.

Firstly, on the Unity side at least some of it was a confirmed bug in Unity's handling of OpenGL. The bug report that was opened as a result of my chats with Unity, has noted that it's now solved in Unity 2019 and the fix should also be landing in Unity 2018.3.2f1.

However, until developers using the Unity game engine upgrade it's still going to be a problem. While there are workarounds (like forcing Vulkan or a specific OpenGL version), they might not always work or end up causing other issues. To help with this, NVIDIA told me today they will be including a new environment variable in future driver releases. It's not in a driver yet (to be clear), but in future you will be able to set this environment variable "__GL_IgnoreInvalidateFramebuffer=1" to have the NVIDIA driver completely ignore the bad calls from Unity.

NVIDIA said they don't want to make specific application profiles, however if the community is willing to create them they could ship them with their driver to give a better experience out of the box. To make them, you can do so in the NVIDIA control panel and it looks simple enough to do. However, here's an example that you would find in your "/home/username/.nv/nvidia-application-profiles-rc" file to give you an idea:

{ "profiles" : [ { "name" : "IgnoreInvalidateFramebuffer", "settings" : [ "IgnoreInvalidateFramebuffer", 1 ] } ], "rules" : [ { "pattern": "Nine Nines.x86", "profile" : "IgnoreInvalidateFramebuffer" }, { "pattern": "Nine Nines.x86_64", "profile" : "IgnoreInvalidateFramebuffer" } ] }

To talk more about it with NVIDIA, you can do so in this post on the NVIDIA forum.

Good to see both NVIDIA and Unity work towards solutions!