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

Nicolai Hähnle-Montoro nhaehnle at gmail.com
Mon Jan 18 14:28:54 PST 2016


Arghh... the various debugging printf()s are still in the patches that
I sent out, those are obviously not supposed to be there.

The cleaned up version is at
http://cgit.freedesktop.org/~nh/mesa/log/?h=pbo-upload

On Mon, Jan 18, 2016 at 5:22 PM, Nicolai Hähnle <nhaehnle at gmail.com> wrote:
> 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(-)
>



-- 
Lerne, wie die Welt wirklich ist,
aber vergiss niemals, wie sie sein sollte.


More information about the mesa-dev mailing list