Intel Lands A Hefty Tiger Lake Graphics Optimization
For Tiger Lake (and theoretically Rocket Lake as well), a new and significant optimization landed today in Mesa 20.3-devel. The optimization applies for Intel Gen12 graphics except for discrete/DG1 graphics.
The patch is for enabling additional L1/HDC caching on Tiger Lake that results in "higher performance across the board, including 9-11% on a few titles."
This additional caching for Tiger Lake is a big win with an Unreal Engine 4 Vulkan demo running ~11.8% faster, Witcher 3 run via DXVK running about 4% faster, and various other titles running at a minimum a percent or two faster but many games -- both native and run via DXVK -- yielding measurable improvements.
The patch by longtime Intel open-source developer Ken Graunke explains, "We now use MOCS 48 (HDC:L1 + L3 + LLC) for render targets, textures, and pull constant buffers. We leave storage buffers & images, as well as stateless messages, using the previous MOCS 2 value. We can't use HDC:L1 with atomics, and we don't know a priori whether storage buffers will be used with atomics or not. Similarly, the Vulkan buffer device address feature allows atomics to be performed on buffers via stateless messages, and we only can control MOCS at the base address level, so we can't do much there. This is closer to what the Windows Vulkan and OpenGL drivers do, though it isn't quite the same - they also disable LLC in some cases, but we observed this to have noticable performance regressions when we tried (though a couple titles benefited). We may try experiment with that in the future."
Can't wait to fire up the newest Mesa 20.3-devel on the Dell XPS 9310 for even better graphics performance. Gen12/Xe is very promising and a bright spot over the CPU performance headaches currently being sorted out. Mesa 20.3 as a stable release should be out in early December.