Intel's Vulkan Linux Driver Enables GPL By Default While Hiding Mesh Shaders
Intel's open-source "ANV" Vulkan Linux driver within Mesa is now enabling graphics pipeline libraries (GPL) functionality by default but at the same time has demoted their Vulkan mesh shader functionality to being hidden behind an environment variable until some unexplained hangs can be sorted out.
Last month Intel enabled their graphics pipeline library support for exposing VK_EXT_graphics_pipeline_library. The VK_EXT_graphics_pipeline_library allows for the separate compilation of four distinct parts of graphics pipelines. In allowing independent parts of the graphics pipeline to be compiled into a graphics pipeline library that is then linked together at the final stage to create the executable pipeline, there is greater re-use for pipelines having the same shaders or states across multiple pipelines. This can help enhance the Linux gaming experience and Valve's Linux graphics driver developers have been working heavily on its usage by DXVK/VKD3D-Proton and the RADV driver plumbing.
With that initial code, the Intel GPL support was only enabled if Zink or DXVK were detected as the engine or if the "ANV_GPL=true" environment variable was set. It wasn't unconditionally enabled by default as there were some issues to be investigated around GPL and mesh shaders.
But now with today's Mesa 23.2-devel Git, mesh shaders have been demoted to an environment variable so in turn the GPL support was promoted.
This patch demotes the EXT_mesh_shader functionality to now needing the "ANV_MESH_SHADER=true" environment variable set. The patch explained:
But in turn opened the door with this patch to enable graphics pipeline libraries by default.
Hopefully by the time of the Mesa 23.2 stable release next quarter that the mesh shader issues can be sorted out as well as the interaction issues with GPL.
Last month Intel enabled their graphics pipeline library support for exposing VK_EXT_graphics_pipeline_library. The VK_EXT_graphics_pipeline_library allows for the separate compilation of four distinct parts of graphics pipelines. In allowing independent parts of the graphics pipeline to be compiled into a graphics pipeline library that is then linked together at the final stage to create the executable pipeline, there is greater re-use for pipelines having the same shaders or states across multiple pipelines. This can help enhance the Linux gaming experience and Valve's Linux graphics driver developers have been working heavily on its usage by DXVK/VKD3D-Proton and the RADV driver plumbing.
With that initial code, the Intel GPL support was only enabled if Zink or DXVK were detected as the engine or if the "ANV_GPL=true" environment variable was set. It wasn't unconditionally enabled by default as there were some issues to be investigated around GPL and mesh shaders.
But now with today's Mesa 23.2-devel Git, mesh shaders have been demoted to an environment variable so in turn the GPL support was promoted.
This patch demotes the EXT_mesh_shader functionality to now needing the "ANV_MESH_SHADER=true" environment variable set. The patch explained:
"We are seeing frequent hangs in other workloads when something using mesh shaders runs at the same time, so gate the feature behind an environment variable until we figure out what's going on."
But in turn opened the door with this patch to enable graphics pipeline libraries by default.
"Since we are disabling mesh, which has issues with gpl, enable gpl by default now, leaving the renamed environment variable as a way to disable it for debug purposes."
Hopefully by the time of the Mesa 23.2 stable release next quarter that the mesh shader issues can be sorted out as well as the interaction issues with GPL.
11 Comments