[Mesa-dev] [PATCH] st/mesa: Don't use PIPE_USAGE_STREAM for GL_PIXEL_UNPACK_BUFFER_ARB

Fredrik Höglund fredrik at kde.org
Thu Feb 5 08:38:34 PST 2015


On Thursday 05 February 2015, Michel Dänzer wrote:
> On 05.02.2015 12:48, Ilia Mirkin wrote:
> > Is there a benchmark that demonstrates this? I'd like to test it out
> > with nouveau.
> 
> Mesa demos src/tests/streaming_rect on Kaveri (radeonsi):
> 
> Unpatched:  42 frames in  1.023 seconds = 41.056 FPS
> Patched:   615 frames in  1.000 seconds = 615.000 FPS
> 
> 
> For comparison, with Fredrik Höglund's patches for PBO unpack
> acceleration, I get 856 frames in  1.000 seconds = 856.000 FPS
> 
> BTW, Fredrik, what's the status of those patches? I get one piglit
> regression with radeonsi (driver assertion failure in
> spec/ARB_pixel_buffer_object/texsubimage pbo), other than that they seem
> to work fine.

Well there are basically two issues. The first is that R600/R700 doesn't
support swizzled formats with PIPE_BUFFER sampler views. For OpenGL
this doesn't matter, but in this code path we need support for swizzled
formats. In my implementation I've worked around this problem by adding
a pipe cap and reinterpreting the formats in such a way that each source
component ends up in the right destination component. I don't know if
it's acceptable to work around a limitation specific to one chipset family
in the state tracker, but fixing it properly in the driver would involve
quite a bit more work.

The second issue is that we don't have much piglit coverage for this. The
existing tests only test two internal formats (GL_RGB and GL_RGBA) and
only one or two format/type combinations. UNPACK_SKIP_ROWS,
UNPACK_SKIP_PIXELS and UNPACK_ALIGNMENT are not tested at all.

Fredrik



More information about the mesa-dev mailing list