<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - [CTS] dEQP-VK.graphicsfuzz.while-inside-switch hangs"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109782">109782</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>[CTS] dEQP-VK.graphicsfuzz.while-inside-switch hangs
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Mesa
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>git
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>critical
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Drivers/Vulkan/radeon
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>samuel.pitoiset@gmail.com
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>mesa-dev@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>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:
}

1) The NIR compiler should be able to kill the outer loop
2) The inner (infinite) loop should probably be killed as well (or the discard
should be moved outside)</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>