non-deterministic failures with multiple spilled registers in ppir
There seem to be non-deterministic results with lima when ppir spills multiple registers.
For example, this always passes:
LIMA_PPIR_FORCE_SPILLING=1 LIMA_DEBUG=pp PIGLIT_SOURCE_DIR="/usr/lib64/piglit" PIGLIT_PLATFORM="gbm" /usr/lib64/piglit/bin/shader_runner /usr/lib64/piglit/tests/shaders/glsl-const-initializer-03.shader_test -auto -fbo
But this sometimes passes, sometimes fails (same with LIMA_PPIR_FORCE_SPILLING=2):
LIMA_PPIR_FORCE_SPILLING=2 LIMA_DEBUG=pp PIGLIT_SOURCE_DIR="/usr/lib64/piglit" PIGLIT_PLATFORM="gbm" /usr/lib64/piglit/bin/shader_runner /usr/lib64/piglit/tests/shaders/glsl-const-initializer-03.shader_test -auto -fbo
The command stream dumps and shaders are exactly the same in the instances where it passes and where it fails, so it is still not clear to me what causes this. Needs more investigation.
Allwinner A64, mesa master f7224014, linux 5.2 or latest drm-misc-next e4f86e43
Edited by Erico Nunes