Between following Mesa commits:
- 2018-12-13 17:49:48 9ebc00f32e: i965: Enable nir_opt_idiv_const for 32 and 64-bit integers
- 2018-12-14 17:40:27 5c454661c6: i965/gen9: Add workarounds for object preemption
There's 10-20% perf drop in Sacha Willems' Vulkan Triangle demo.
- SKL (i5) or CFL GT2 (desktop) device
- Ubuntu 18.04 w/ Unity
- drm-tip git kernel v4.20 or newer
- X server with modifier support enabled (newer than v1.20.0)
- Mesa git version
./triangle --fullscreen --benchmark --benchwarmup 3 --benchruntime 20
* No other tests were impacted either
* Regression isn't visible at all on SKL GT3e / GT4e NUCs, nor on KBL GT2 NUC, BXT or earlier GENs
* Triangle demo is run at FullHD fullscreen, with Vsync disabled i.e. NOT using mailbox mode as that seems to get Vsynched although Vsync is supposed to be disabled (see patch attached to bug 109216)
I can reproduce a 20% difference, but it's...actually a 20% improvement. My system is a Kabylake GT2 (Dell XPS 15 9650), Kernel 4.20.2-arch1-1-ARCH, xserver 1.20.3.
It looks like a2ec78883f4 is slow, and 0b44644ca68 (genxml: Consistently use a numeric "MOCS" field) is 20% faster. Needless to say, this is not expected, that patch was supposed to just change the mechanism for programming MOCS, not the actual values of MOCS used anywhere.
Fix on list:
Author: Kenneth Graunke <email@example.com>
Date: Thu Feb 14 08:55:37 2019 -0800
anv: Put MOCS in the correct location
Verified, Vulkan triangle perf on regressing 3 platforms improved back to original level. Results on other platforms and other test-cases were within daily variance.