Addressing Issues Caused by NVIDIA Driver Bugs
By Jim Kogler
Some of our users may have experienced crashes while using MAK ONE products with NVIDIA drivers released after November 2022. These crashes have been caused by a bug in the NVIDIA driver related to reference counting of bindless textures when using multiple graphics contexts. I’ll outline how we'll address this issue below, but first, some background.
A graphics context is a data structure used by a graphics processing unit (GPU) to keep track of rendering state, including the textures, shaders, and other resources needed to render a scene. In the case of VR-Vantage, each window creates its own graphics context. The bug in the NVIDIA driver has made VR-Vantage-based applications unstable when textures are made resident and non-resident in multiple contexts. This instability typically manifests as a crash when opening or closing additional windows, though crashes can happen at other times as well.
We are working closely with NVIDIA to find a solution.
We have informed NVIDIA of the problem and have worked with them to identify and isolate the cause of the issue. NVIDIA has recognized the problem with their driver and is working to fix the driver and issue a patch.
In the meantime, MAK is making two software changes to help our customers.
First, for future versions of MAK ONE applications (VR-Forces 5.1, VR-Vantage 3.1, and VR-Engage 2.1), we will move to render all windows with a single graphical context. This will eliminate the need for multi-context texture management.
Second, because changing the MAK ONE applications to use a single graphics context is complicated and not suitable for a maintenance release, MAK will release new maintenance releases of the MAK ONE applications (VR-Forces 5.0.3, VR-Vantage 3.0.3, and VR-Engage 2.0.3) that work around the NVIDIA bug by making a bindless texture resident in only one context, even if multiple contexts are present in the application. Our maintenance releases will be available in early May 2023. This workaround works because NVIDIA drivers seem to make textures resident across multiple contexts even when instructed to make them resident in a single context. Although this driver behavior does not strictly follow the OpenGL bindless texture specification, the behavior seems to be consistent across all driver versions we have tested – both before and after November 2022. However, if NVIDIA updates the driver to align with the OpenGL specification more closely in the future, this may break our workaround. As such, we will add a command line to MAK ONE applications that will allow users to undo the fix should NVIDIA update the driver to fully conform to the OpenGL specification.
We believe that this three-pronged approach – working with NVIDIA to fix the driver bug, issuing maintenance releases of MAK ONE applications, and developing a better long-term architecture – will provide our customers with a stable solution to the problem.
Please reach out to us at