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(-) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev