Skip to content

v3dv: reduce binning sync points

Iago Toral requested to merge itoral/mesa:v3dv_optimize_bcl_barriers into main

So far we have been fairly conservative selecting to sync at the binning stage: we would always do a binning sync if we had any semaphores or if we had any barriers involving geometry stages. In this series we track the actual access flags of the barriers and check the resources accessed by the binning shaders to decide if a we need a binning sync point or not. This makes sense because binning shaders are a simpler version of render shaders and may not access the resources affected by the barriers. We also stop enabling binning sync whenever we have a semaphore wait and instead we check whether the wait stage of the semaphores involves a geometry stage to make that decision.

CTS seems to have tests that hit both cases (for barriers and semaphores), UE4 demos hit the barrier case and Sponza hits the semaphore case. I didn't observed a clearly visible performance impact in any of these cases though.

Merge request reports