[Mesa-dev] [PATCH 00/14] GetTexImage and CopyTexSubImage fixes and improvements
Brian Paul
brian.e.paul at gmail.com
Wed Jan 2 12:31:31 PST 2013
On Thu, Dec 20, 2012 at 10:56 AM, Marek Olšák <maraeo at gmail.com> wrote:
> This series contains some fixes for rarely used OpenGL features. What's more interesting here is that it uses 2 features we could use in gallium more often: 3D blits and 3D texture tranfers. The interfaces have been in place already.
>
> The 3D blit can be done with pipe->blit by setting pipe_blit_info.dst.box.depth and src.box.depth to a value > 1. It can copy multiple texture layers/slices with a single blit call. It's implemented by the u_blitter module, which is what most drivers use, though at the moment there's no support for flipping and scaling in the Z direction.
>
> Concerning the 3D transfers, we've had pipe_transfer.layer_stride, box.z and box.depth for some time, so we can just start using them. The drivers which don't implement the 3D transfers have a reason to do so now. This series doesn't break the drivers which don't implement them, because I'm using the 3D transfers to fix things which have always been broken.
>
> In particular, decompress_with_blit uses a 3D blit to decompressed a whole 2D array texture to a temporary texture and a 3D transfer to map all of it. Also, the CopyTexSubImage fallback needs a 3D transfer to be able to map a 1D array texture.
Looks good to me.
Reviewed-by: Brian Paul <brianp at vmware.com>
More information about the mesa-dev
mailing list