[Mesa-dev] [PATCH 0/9] st/mesa: accelerate texture uploads from PBOs

Nicolai Hähnle nhaehnle at gmail.com
Mon Jan 18 14:22:36 PST 2016


Hi everybody,

this series is based on Fredrik Höglund's older patch to accelerate
texture image uploads from PBOs. In parallel to this, I have also extended
a bunch of piglit tests to exercise the PBO upload path a bit more, and
at least on radeonsi the tests are looking good.

Compared to Fredrik's work, I've fixed a bunch of bugs and hopefully not
introduced too many new ones. I've come to peace with the RGBA_ONLY business
after exploring some alternatives. The reason why the source format selection
is modified a bit anyway is that drivers might support a slightly different
set of formats for buffer textures vs. normal buffers (radeonsi does...), and
it would be a shame to miss an acceleration opportunity because of that.

The bigger changes are support for layered uploads and compressed textures.
The latter is not so important for benchmarking, but it might reduce stutter
in games that load textures on-demand and it certainly helps loading times.

The remaining PBO-related biggie is download (both glGetTexImage and
glReadPixels). I believe it makes sense to do that separately once
ARB_shader_image_load_store is implemented. Please review!

Cheers,
Nicolai
--
 src/gallium/docs/source/screen.rst           |   11 +
 .../drivers/freedreno/freedreno_screen.c     |    3 +
 src/gallium/drivers/i915/i915_screen.c       |    2 +
 src/gallium/drivers/ilo/ilo_screen.c         |    3 +
 src/gallium/drivers/llvmpipe/lp_screen.c     |    2 +
 .../drivers/nouveau/nv30/nv30_screen.c       |    3 +
 .../drivers/nouveau/nv50/nv50_screen.c       |    3 +
 .../drivers/nouveau/nvc0/nvc0_screen.c       |    3 +
 src/gallium/drivers/r300/r300_screen.c       |    2 +
 src/gallium/drivers/r600/r600_pipe.c         |    4 +
 src/gallium/drivers/radeon/r600_texture.c    |   26 +-
 src/gallium/drivers/radeonsi/si_pipe.c       |    4 +
 src/gallium/drivers/softpipe/sp_screen.c     |    3 +
 src/gallium/drivers/svga/svga_screen.c       |    2 +
 src/gallium/drivers/vc4/vc4_screen.c         |    2 +
 src/gallium/drivers/virgl/virgl_screen.c     |    3 +
 src/gallium/include/pipe/p_defines.h         |    2 +
 src/mesa/state_tracker/st_cb_texture.c       | 1152 +++++++++++++++-
 src/mesa/state_tracker/st_cb_texture.h       |    5 +
 src/mesa/state_tracker/st_context.c          |    2 +
 src/mesa/state_tracker/st_context.h          |   11 +
 21 files changed, 1225 insertions(+), 23 deletions(-)



More information about the mesa-dev mailing list