[iris][icl][bisected] gpu hangs on piglit
Issues began with mesa=21ffacff:
Author: Marcin Ślusarz <marcin.slusarz@intel.com>
Date: Wed Oct 14 16:32:55 2020 +0200
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>
Reprod note: I'd recommend running piglit at least a few times to reproduce the hang. It won't happen every time you run the test suite.
Output from gpu hang checker:
Found GPU Hang: [11033.632254] i915 0000:00:02.0: shader_runner[2588332] context reset due to GPU hang
Hanging process: /tmp/build_root/m64/lib/piglit/bin/shader_runner /tmp/build_root/m64/lib/piglit/tests/spec/arb_shader_storage_buffer_object/execution/ssbo-atomicCompSwap-int.shader_test -auto -fbo
Error: could not determine module from process name: i915 0000:00:02.0: shader_runner
Found GPU Hang: [11033.645220] i915 0000:00:02.0: GPU HANG: ecode 11:1:85dffffb, in shader_runner [2588332]
Hanging process: /tmp/build_root/m64/lib/piglit/bin/shader_runner /tmp/build_root/m64/lib/piglit/tests/spec/arb_shader_storage_buffer_object/execution/ssbo-atomicCompSwap-int.shader_test -auto -fbo Error: could not determine module from process name: i915 0000:00:02.0: GPU HANG: ecode 11:1:85dffffb, in shader_runner