mesa/src/intel
Marcin Ślusarz 21ffacff8c intel/compiler: remove branch weight heuristic
As a result of this patch, compiler chooses SIMD32 shaders more
frequently.

Current logic is designed to avoid regressions from enabling SIMD32 at
all cost, even though the cases where regression can happen are probably
for smaller draw calls (far away from the camera and though smaller).

In Intel perf CI this patch improves FPS in:
- gfxbench5 alu2:      21.92% (gen9), 23.7%  (gen11)
- synmark OglShMapVsm:  3.26% (gen9),  4.52% (gen11)
- gfxbench5 car chase:  1.34% (gen9),  1.32% (gen11)
No observed regressions there.

In my testing, it also improves FPS in:
- The Talos Principle:   2.9% (gen9)

The other 16 games I tested had very minor changes in performance
(2/3 positive, but not significant enough to list here).

Note: this patch harms synmark OglDrvState (which is not in Intel perf
CI) by ~2.9%, but this benchmark renders multiple scenes from other
workloads (including OglShMapVsm, which is helped in standalone mode)
in tiny rectangles. Rendering so small drastically changes branching
statistics, which favors smaller SIMD modes. I assume this matters
only in micro-benchmarks, as in real workloads more expensive (with
more uniform branching behavior) draw calls dominate.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Acked-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7137>
2020-11-03 10:49:04 +00:00
..
blorp blorp: allow blits with floating point source layers 2020-10-22 15:46:51 +00:00
common intel/mi_builder: Support gen11 command-streamer based register offsets 2020-10-27 16:11:12 -07:00
compiler intel/compiler: remove branch weight heuristic 2020-11-03 10:49:04 +00:00
dev intel: remove dead code 2020-11-02 19:58:56 +00:00
genxml intel: remove dead code 2020-11-02 19:58:56 +00:00
isl genxml: drop gen10 2020-10-20 07:56:40 +00:00
perf intel: remove dead code 2020-11-02 19:58:56 +00:00
tools intel/tools: fix invalid type in argument to printf 2020-10-29 12:49:36 +00:00
vulkan anv: always annotate memory returned from anv_gem_mmap 2020-11-02 19:52:11 +00:00
Android.blorp.mk intel: android: remove libdrm_intel requirement 2017-03-30 19:07:23 +01:00
Android.common.mk intel: split driver/device UUID generators 2020-10-07 11:11:23 +03:00
Android.compiler.mk android: fix build issues with brw_nir_trig_workarounds.c 2017-10-04 07:39:05 +03:00
Android.dev.mk intel: add identifier for debug purposes 2020-05-20 15:58:22 +00:00
Android.genxml.mk genxml: drop gen10 2020-10-20 07:56:40 +00:00
Android.isl.mk intel/isl: Don't generate Gen10-specific functions 2020-10-15 09:29:54 -07:00
Android.mk i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Android.perf.mk i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Android.vulkan.mk anv: Don't generate Gen10-specific functions 2020-10-15 09:29:54 -07:00
Makefile.perf.am i965: extract performance query metrics 2019-04-17 14:10:42 +01:00
Makefile.sources genxml: drop gen10 2020-10-20 07:56:40 +00:00
meson.build meson: only build imgui when needed 2019-11-25 07:51:56 +00:00