Skip to content

v3d: Implement GL_ARB_texture_barrier

What does this MR do and why?

This exposes GL_ARB_texture_barrier on v3d that is a simple implementation, mainly submitting a flush that guarantees that all textures written have been synced. During the enablement, we identified that the flush was not needed because the driver was flushing jobs more than needed. So we relaxed the job flush because of usage of written textures, so the number of flushes is reduced to the really needed and now glTextureBarrier() has a real effect on passing the tests.

I would like to note that piglit tests like spec@arb_texture_barrier@arb_texture_barrier-blending-in-shader are failing on RPi4, but not on RPI5. This is happening because tests are using 8 render targets and RPi4 HW only supports 4RT, but RPI5 already supports 8RT. I locally modified the tests to validate that it works with 4RT, and they are passing on RPi4.

Maybe it is worthy adding the piglit config to test with 4 Render Targets so v3d and freedreno can test this extension properly.

Edited by José María Casanova Crespo

Merge request reports