[Bug 94681] dEQP-GLES31.functional.ssbo.layout.random.all_shared_buffer.23 takes 25 minutes to compile

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Wed Aug 17 23:39:08 UTC 2016


--- Comment #3 from Kenneth Graunke <kenneth at whitecape.org> ---
Oh, that is pretty absurd.  Scheduling things seems pretty reasonable.

Maybe an easier trick would be to make add_barrier_deps() stop when it hits
something that's already a barrier.

If you have:

   <bunch of instructions we'll call A>
   <bunch of instructions we'll call B>

We need to make barrier_2 depend on everything in group B, and also barrier_1. 
But since barrier_1 already depends on group A, we don't need to continue.

Something like:

      while (!prev->is_head_sentinel()) {
         add_dep(prev, n, 0);
         prev = (schedule_node *)prev->prev;

         if (is_scheduling_barrier(n->inst))

Using is_scheduling_barrier approximates the right condition...we could also
perhaps just add a schedule_node::is_barrier field that we set when calling
add_barrier_deps(), and check here.

Seems easy enough and would likely solve this.

You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/intel-3d-bugs/attachments/20160817/ff3e16ab/attachment.html>

More information about the intel-3d-bugs mailing list