[CTS] dEQP-VK.graphicsfuzz.while-inside-switch hangs
@hakzsam
Submitted by Samuel Pitoiset Assigned to mes..@..op.org
Link to original bug (#109782)
Description
Writing test log into TestResults.qpa dEQP Core git-65ebf85d4b32fc62201aedbef5b69d7c00298bee (0x65ebf85d) starting.. target implementation = 'Default'
Test case 'dEQP-VK.graphicsfuzz.while-inside-switch'.. shader: MESA_SHADER_VERTEX inputs: 0 outputs: 0 uniforms: 0 shared: 0 decl_var shader_in INTERP_MODE_NONE vec4 @0 (VERT_ATTRIB_GENERIC0, 0, 0) decl_var shader_out INTERP_MODE_NONE vec4 @1 (VARYING_SLOT_POS, 0, 0) decl_function main (0 params)
impl main { decl_var INTERP_MODE_NONE vec4 out@(null)-temp decl_var INTERP_MODE_NONE vec4 in@(null)-temp block block_0: /* preds: / vec1 32 ssa_0 = deref_var &@0 (shader_in vec4) vec4 32 ssa_1 = intrinsic load_deref (ssa_0) (0) / access=0 / vec1 32 ssa_2 = deref_var &@1 (shader_out vec4) intrinsic store_deref (ssa_2, ssa_1) (15, 0) / wrmask=xyzw / / access=0 / / succs: block_1 */ block block_1: }
shader: MESA_SHADER_FRAGMENT inputs: 0 outputs: 0 uniforms: 0 shared: 0 decl_var shader_in INTERP_MODE_NONE vec4 gl_FragCoord (VARYING_SLOT_POS, 0, 0) decl_var shader_out INTERP_MODE_NONE vec4 _GLF_color (FRAG_RESULT_DATA0, 0, 0) decl_function main (0 params)
impl main { decl_var INTERP_MODE_NONE vec4 out@_GLF_color-temp block block_0: /* preds: / vec1 32 ssa_0 = load_const (0x00000000 / 0.000000 /) vec1 32 ssa_1 = load_const (0x41200000 / 10.000000 /) / succs: block_1 / loop { block block_1: / preds: block_0 / vec1 32 ssa_2 = deref_var &gl_FragCoord (shader_in vec4) vec4 32 ssa_3 = intrinsic load_deref (ssa_2) (0) / access=0 / vec1 32 ssa_4 = flt32 ssa_3.x, ssa_1 / succs: block_2 block_3 / if ssa_4 { block block_2: / preds: block_1 / break / succs: block_10 / } else { block block_3: / preds: block_1 / / succs: block_4 / } block block_4: / preds: block_3 / vec1 32 ssa_5 = intrinsic vulkan_resource_index (ssa_0) (0, 0, 6) / desc-set=0 / / binding=0 / / desc_type=UBO / vec1 32 ssa_6 = intrinsic load_ubo (ssa_5, ssa_0) (4, 0) / align_mul=4 / / align_offset=0 / vec1 32 ssa_7 = f2i32 ssa_6 vec1 32 ssa_8 = ieq32 ssa_7, ssa_0 / succs: block_5 block_8 / if ssa_8 { block block_5: / preds: block_4 / / succs: block_6 / loop { block block_6: / preds: block_5 block_6 / intrinsic discard () () / succs: block_6 / } block block_7: / preds: / / succs: block_9 / } else { block block_8: / preds: block_4 / / succs: block_9 / } block block_9: / preds: block_7 block_8 / break / succs: block_10 / } block block_10: / preds: block_2 block_9 / vec1 32 ssa_9 = deref_var &_GLF_color (shader_out vec4) vec4 32 ssa_10 = load_const (0x3f800000 / 1.000000 /, 0x00000000 / 0.000000 /, 0x00000000 / 0.000000 /, 0x3f800000 / 1.000000 /) intrinsic store_deref (ssa_9, ssa_10) (15, 0) / wrmask=xyzw / / access=0 / / succs: block_11 */ block block_11: }
- The NIR compiler should be able to kill the outer loop
- The inner (infinite) loop should probably be killed as well (or the discard should be moved outside)
Version: git