<html>
    <head>
      <base href="https://bugs.freedesktop.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - vkQuake flickering geometry under Intel"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109630#c10">Comment # 10</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - vkQuake flickering geometry under Intel"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=109630">bug 109630</a>
              from <span class="vcard"><a class="email" href="mailto:danylo.piliaiev@gmail.com" title="Danylo <danylo.piliaiev@gmail.com>"> <span class="fn">Danylo</span></a>
</span></b>
        <pre>Ok, one more update:
A part of the dispatch which seems to lead to the issue is
MEDIA_INTERFACE_DESCRIPTOR_LOAD, commenting out everything unnecessary around
doesn't make flickering disappear, the moment MEDIA_INTERFACE_DESCRIPTOR_LOAD
is commented out - no flicker.

So the minimal reproduction will be commenting out the dispatch and adding this
at the start of cmd_buffer_flush_state:

   if((cmd_buffer->state.gfx.dirty & ANV_CMD_DIRTY_PIPELINE) &&
      cmd_buffer->state.compute.base.pipeline)
   {
      struct anv_pipeline *pipeline = cmd_buffer->state.compute.base.pipeline;
      genX(flush_pipeline_select_gpgpu)(cmd_buffer);
      cmd_buffer->state.pending_pipe_bits |= ANV_PIPE_CS_STALL_BIT;
      genX(cmd_buffer_apply_pipe_flushes)(cmd_buffer);
      anv_batch_emit_batch(&cmd_buffer->batch, &pipeline->batch);

      struct anv_state state =
         anv_cmd_buffer_alloc_dynamic_state(cmd_buffer,
               GENX(INTERFACE_DESCRIPTOR_DATA_length), 64);

      uint32_t size = GENX(INTERFACE_DESCRIPTOR_DATA_length) *
sizeof(uint32_t);
      anv_batch_emit(&cmd_buffer->batch,
                     GENX(MEDIA_INTERFACE_DESCRIPTOR_LOAD), mid) {
         mid.InterfaceDescriptorTotalLength        = size;
         mid.InterfaceDescriptorDataStartAddress   = 0;
      }

      // Just to be sure...
      cmd_buffer->state.gfx.dirty = ~0;
      cmd_buffer->state.gfx.vb_dirty = ~0;
      cmd_buffer->state.pending_pipe_bits = ~0;
      cmd_buffer->state.descriptors_dirty = ~0;
      cmd_buffer->state.push_constants_dirty = ~0;
   }

Which produces the same issue.</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>