OSDN Git Service

llvmpipe: use single swizzled tile
authorKeith Whitwell <keithw@vmware.com>
Fri, 16 Jul 2010 13:40:30 +0000 (14:40 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Fri, 16 Jul 2010 16:24:21 +0000 (17:24 +0100)
commit2f6d47a7c8d6e69e5154de44115aab9ba35a41d2
tree8919f6686b6f7db8aa3d3305084076d8884afb15
parentb7fff13d58b57870807bae2f43fa2854b551b267
llvmpipe: use single swizzled tile

Use a single swizzled tile per colorbuf (and per thread) to avoid
accumulating large amounts of cached swizzled data.

Now that the SSE3 code has been merged to master, the performance delta
of this change is minimal, the main benefit is reduced memory usage
due to no longer keeping swizzled copies of render targets.

It's clear from the performance of the in-place version of this code
that there is still quite a bit of time being spent swizzling &
unswizzling, but it's not clear exactly how to reduce that.
src/gallium/drivers/llvmpipe/lp_memory.c
src/gallium/drivers/llvmpipe/lp_memory.h
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/llvmpipe/lp_rast_priv.h
src/gallium/drivers/llvmpipe/lp_setup.c
src/gallium/drivers/llvmpipe/lp_texture.c
src/gallium/drivers/llvmpipe/lp_texture.h