Skip to content

gallium: Support ARB_buffer_storage in all non-layered drivers.

After a great deal of spec lawyering in #dri-devel, I am convinced this is probably okay for the same reasons as v3d and freedreno. The batch reordering and flush deferral optimizations are seemingly still ok. The requirement that writes are visible "immediately" in the spec actually means "in the subsequent [OpenGL] command" for the CPU -> GPU direction, which avoids pitfalls where PERSISTENT|COHERENT could be used as a "doorbell". With that understanding, the extension doesn't actually require anything special for tilers other than coherency at GPU submit boundaries, which is true for any driver that does not use a sync ioctl.

This gets us support in all drivers, though virgl/svga don't actually report the CAP if the host doesn't support it. But the host really should support it.

I do not have the means to test the drivers here, soliciting review and testing.

Merge request reports