Mesa 22.3 introduces more code into the Intel Vulkan driver in the most recent update. This new patchwork limits the amount of CPU utilization demand in the Vulkan push descriptor code.
Further changes made to the Vulkan driver for Intel with a focus on CPU utilization
The reduction was discovered after a thorough review using VKOverhead, a micro-benchmarking tool designed by Mike Blumenkrantz when he was working on his other project at the time; the Zink and Vulkan optimizations. Additionally, Lionel Landwerlin, an Intel engineer, was coding the ANV drivers to assist with the Vulkan driver CPU overhead issue. Using the VKOverhead tool, he found an increase of thirty percent compared to the primary performance initially discovered but has yet to repeat the same results in further testing.
A note from Landerwerlin to Blumenkrantz on the GitLab merge request reads:
This change appears to make no difference in gfxbench gl_driver2 in a release build. Not quite sure why at this point. Iris / Zink+Anv FPS : 144.3 / 114.9
It previously made a change for me with a good improvement (I have written down 30%). But maybe that was in a debug build.
Or it could be an issue with my setup (primary GPU AMD with display, secondary with Intel IGPU).
However, these are the code changes made in the recent merge request:
Vkoverhead before / after :
descriptor_template_1ubo_push: 40670 / 85786 **
descriptor_template_12ubo_push: 4050 / 13820 **
descriptor_template_1combined_sampler_push, 34410 / 34043
descriptor_template_16combined_sampler_push, 2746 / 2711
descriptor_template_1sampled_image_push, 34765 / 34089
descriptor_template_16sampled_image_push, 2794 / 2649
descriptor_template_1texelbuffer_push, 108537 / 111342
descriptor_template_16texelbuffer_push, 20619 / 20166
descriptor_template_1ssbo_push, 41506 / 85976 **
descriptor_template_8ssbo_push, 6036 / 18703 **
descriptor_template_1image_push, 88932 / 89610
descriptor_template_16image_push, 20937 / 20959
descriptor_template_1imagebuffer_push, 108407 / 113240
descriptor_template_16imagebuffer_push, 32661 / 34651
The Mesa Project continues to be a collection of various APIs to assist with graphical support in an open-source environment. Since its humble beginnings in August of 1993, it has strengthened over the years to be integrated with many graphics engines across several platforms. Such implementations like OpenGL and Vulkan see support from major companies like Intel, AMD, NVIDIA, and more. It sees constant updates on a monthly average and updates the community frequently of any significant or minor changes.
Larabel states that 720 lines of new code have been completed, and over 220 codes have been deleted from the Mesa3D's Vulkan driver. Users interested in reading about the most current merge request can be read on the Mesa GitLab page.