KHR_no_error Patches Posted For Mesa In Quest To Finding More Performance
Timothy Arceri, working for Valve on the open-source Mesa graphics stack primarily around Radeon hardware support, has posted early patches on his latest OpenGL extension upbringing.
Arceri's latest effort has been on the OpenGL KHR_no_error extension. This extension is about trying to increase performance and potentially decrease power usage by not generating OpenGL errors but instead allow undefined behavior to exist. Not all applications/games enable KHR_no_error though and requires testing to ensure the games/engines/apps properly make use of OpenGL (a.k.a. "error free") and don't rely upon behavior from OpenGL errors. Thankfully this isn't needed in the Vulkan space due to the validation/debug layers being separate and needing to be enabled rather than disabled.
From the OpenGL registry:
Timothy's tentative KHR_no_error patches for Mesa can be found on the mailing list. With these patches it can be enabled via the MESA_NO_ERROR environment variable but the implementation isn't yet complete. Civilization 6 on Linux is being used as a relevant test-case but so far he hasn't noticed any measurable impact.
Arceri's latest effort has been on the OpenGL KHR_no_error extension. This extension is about trying to increase performance and potentially decrease power usage by not generating OpenGL errors but instead allow undefined behavior to exist. Not all applications/games enable KHR_no_error though and requires testing to ensure the games/engines/apps properly make use of OpenGL (a.k.a. "error free") and don't rely upon behavior from OpenGL errors. Thankfully this isn't needed in the Vulkan space due to the validation/debug layers being separate and needing to be enabled rather than disabled.
From the OpenGL registry:
With this extension enabled any behavior that generates a GL error will have undefined behavior. The reason this extension exists is performance can be increased and power usage decreased. When this mode is used, a GL driver can have undefined behavior where it would have generated a GL error without this extension. This could include application termination. In general this extension should be used after you have verified all the GL errors are removed, and an application is not the kind that would check for GL errors and adjust behavior based on those errors.
Timothy's tentative KHR_no_error patches for Mesa can be found on the mailing list. With these patches it can be enabled via the MESA_NO_ERROR environment variable but the implementation isn't yet complete. Civilization 6 on Linux is being used as a relevant test-case but so far he hasn't noticed any measurable impact.
10 Comments