st/mesa: implement blit-based ReadPixels
authorMarek Olšák <maraeo@gmail.com>
Thu, 14 Mar 2013 15:36:22 +0000 (16:36 +0100)
committerMarek Olšák <maraeo@gmail.com>
Sat, 23 Mar 2013 12:17:05 +0000 (13:17 +0100)
commit25e3094058977648a6f552d59b728a9ea814b7c2
treee11333aaf37ec037a3657002e0ae30f2af8f65ca
parentd702c67ba51f55c04be670c0ac618b687f7d2127
st/mesa: implement blit-based ReadPixels

Initial version contributed by: Martin Andersson <g02maran@gmail.com>

This is only used if the memcpy path cannot be used and if no transfer ops
are needed. It's pretty similar to our TexImage and GetTexImage
implementations.

The motivation behind this is to be able to use ReadPixels every frame and
still have at least 20 fps (or 60 fps with a powerful GPU and CPU)
instead of 0.5 fps.

Reviewed-by: Brian Paul <brianp@vmware.com>
Tested-by: Brian Paul <brianp@vmware.com>
src/mesa/state_tracker/st_cb_readpixels.c
src/mesa/state_tracker/st_cb_texture.c
src/mesa/state_tracker/st_cb_texture.h