v3d: Drop the use of the semaphores.
authorEric Anholt <eric@anholt.net>
Thu, 26 Jul 2018 23:48:30 +0000 (16:48 -0700)
committerEric Anholt <eric@anholt.net>
Fri, 27 Jul 2018 19:56:36 +0000 (12:56 -0700)
The kernel's scheduler doesn't rely on our emitting them, and in fact we'd
get in trouble if the kernel decided to schedule too many bins in a row
before getting around to scheduling the corresponding render.

src/gallium/drivers/v3d/v3dx_job.c
src/gallium/drivers/v3d/v3dx_rcl.c

index 036a39e..d87dcea 100644 (file)
@@ -37,7 +37,6 @@ void v3dX(bcl_epilogue)(struct v3d_context *v3d, struct v3d_job *job)
 #if V3D_VERSION >= 41
                                                 cl_packet_length(TRANSFORM_FEEDBACK_SPECS) +
 #endif
-                                                cl_packet_length(INCREMENT_SEMAPHORE) +
                                                 cl_packet_length(FLUSH_ALL_STATE));
 
                 if (job->oq_enabled) {
@@ -61,12 +60,6 @@ void v3dX(bcl_epilogue)(struct v3d_context *v3d, struct v3d_job *job)
                 }
 #endif /* V3D_VERSION >= 41 */
 
-                /* Increment the semaphore indicating that binning is done and
-                 * unblocking the render thread.  Note that this doesn't act
-                 * until the FLUSH completes.
-                 */
-                cl_emit(&job->bcl, INCREMENT_SEMAPHORE, incr);
-
                 /* The FLUSH_ALL emits any unwritten state changes in each
                  * tile.  We can use this to reset any state that needs to be
                  * present at the start of the next tile, as we do with
index d795591..ae7daf9 100644 (file)
@@ -760,8 +760,6 @@ v3dX(emit_rcl)(struct v3d_job *job)
 
         v3d_rcl_emit_generic_per_tile_list(job, nr_cbufs - 1);
 
-        cl_emit(&job->rcl, WAIT_ON_SEMAPHORE, sem);
-
         /* XXX: Use Morton order */
         uint32_t supertile_w_in_pixels = job->tile_width * supertile_w;
         uint32_t supertile_h_in_pixels = job->tile_height * supertile_h;