[Iris] Piglit inout tests crashes
While running some piglit tests on iris, I came across 170 crashes due to the following error:
src/compiler/glsl/ir.cpp:1810: void ir_swizzle::init_mask(const unsigned int*, unsigned int): Assertion '(count >= 1) && (count <= 4)' failed.\n"
For example, ./bin/shader_runner generated_tests/spec/glsl-4.00/execution/inout/vs-out-fs-in-S1-float@3-double.shader_test -auto -fbo
generate the following backtrace:
#0 0x00007ffff76a7355 in raise () from /usr/lib/libc.so.6
#1 0x00007ffff7690853 in abort () from /usr/lib/libc.so.6
#2 0x00007ffff7690727 in __assert_fail_base.cold () from /usr/lib/libc.so.6
#3 0x00007ffff769f936 in __assert_fail () from /usr/lib/libc.so.6
#4 0x00007ffff6643f04 in ir_swizzle::init_mask (this=<optimized out>, comp=<optimized out>, count=<optimized out>) at ../../src/compiler/glsl/ir.cpp:1821
#5 0x00007ffff6672044 in (anonymous namespace)::lower_packed_varyings_visitor::lower_rvalue (this=0x7fffffffbea0, rvalue=0x555555ca6cf0, fine_location=131, unpacked_var=0x555555cbfa80, name=0x555555ca5da0 "s1_1.d1",
gs_input_toplevel=<optimized out>, vertex_index=0) at ../../src/compiler/glsl/list.h:58
#6 0x00007ffff66721a1 in (anonymous namespace)::lower_packed_varyings_visitor::lower_rvalue (this=0x7fffffffbea0, rvalue=0x555555ca6c80, fine_location=<optimized out>, unpacked_var=0x555555cbfa80, name=0x555555cbfab0 "s1_1",
gs_input_toplevel=<optimized out>, vertex_index=0) at ../../src/compiler/glsl/lower_packed_varyings.cpp:536
#7 0x00007ffff667389e in (anonymous namespace)::lower_packed_varyings_visitor::run (shader=0x555555cc9bc0, this=0x7fffffffbea0) at ../../src/compiler/glsl/lower_packed_varyings.cpp:310
#8 lower_packed_varyings (mem_ctx=mem_ctx@entry=0x555555cc8ce0, locations_used=locations_used@entry=2, components=0x7fffffffbea0 "\340\214\314UUU", components@entry=0x7fffffffcbb0 "\004\001", mode=mode@entry=ir_var_shader_out,
gs_input_vertices=gs_input_vertices@entry=0, shader=shader@entry=0x555555cc9bc0, disable_varying_packing=<optimized out>, disable_xfb_packing=<optimized out>, xfb_enabled=<optimized out>)
at ../../src/compiler/glsl/lower_packed_varyings.cpp:907
#9 0x00007ffff665b403 in assign_varying_locations (ctx=<optimized out>, mem_ctx=<optimized out>, prog=<optimized out>, producer=<optimized out>, consumer=<optimized out>, num_tfeedback_decls=<optimized out>,
tfeedback_decls=<optimized out>, reserved_slots=<optimized out>) at ../../src/compiler/glsl/link_varyings.cpp:2931
#10 0x00007ffff665b84a in link_varyings (prog=prog@entry=0x555555ca4020, first=first@entry=0, last=last@entry=4, ctx=ctx@entry=0x7fffed4c7010, mem_ctx=mem_ctx@entry=0x555555cc8ce0) at ../../src/compiler/glsl/link_varyings.cpp:3160
#11 0x00007ffff664f262 in link_varyings_and_uniforms (mem_ctx=<optimized out>, prog=<optimized out>, ctx=<optimized out>, last=<optimized out>, first=<optimized out>) at ../../src/compiler/glsl/linker.cpp:4504
#12 link_shaders (ctx=<optimized out>, prog=0x555555ca4020) at ../../src/compiler/glsl/linker.cpp:4917
#13 0x00007ffff63a7cb2 in _mesa_glsl_link_shader (ctx=ctx@entry=0x7fffed4c7010, prog=prog@entry=0x555555ca4020) at ../../src/mesa/program/ir_to_mesa.cpp:3103
#14 0x00007ffff64a7112 in link_program (no_error=<optimized out>, shProg=<optimized out>, ctx=<optimized out>) at ../../src/mesa/main/shaderapi.c:1311
#15 link_program_error (ctx=0x7fffed4c7010, shProg=0x555555ca4020) at ../../src/mesa/main/shaderapi.c:1419
#16 0x00007ffff7e9bc12 in stub_glLinkProgram (program=3) at /home/hopetech/Playground/piglit/tests/util/piglit-dispatch-gen.c:33956
#17 0x000055555555fba2 in link_and_use_shaders () at /home/hopetech/Playground/piglit/tests/shaders/shader_runner.c:1604
#18 0x000055555556b953 in init_test (file=0x7fffffffe545 "generated_tests/spec/glsl-4.00/execution/inout/vs-out-fs-in-S1-float@3-double.shader_test") at /home/hopetech/Playground/piglit/tests/shaders/shader_runner.c:5225
#19 0x000055555556c87b in piglit_init (argc=2, argv=0x7fffffffe258) at /home/hopetech/Playground/piglit/tests/shaders/shader_runner.c:5597
#20 0x00007ffff7f06a47 in run_test (gl_fw=0x55555558ceb0, argc=2, argv=0x7fffffffe258) at /home/hopetech/Playground/piglit/tests/util/piglit-framework-gl/piglit_fbo_framework.c:50
#21 0x00007ffff7ef71f3 in piglit_gl_test_run (argc=2, argv=0x7fffffffe258, config=0x7fffffffe100) at /home/hopetech/Playground/piglit/tests/util/piglit-framework-gl.c:229
#22 0x000055555555c882 in main (argc=2, argv=0x7fffffffe258) at /home/hopetech/Playground/piglit/tests/shaders/shader_runner.c:72
How to reproduce:
./piglit run gpu -t inout results