r600g: add initial cube map array support (v2)
authorDave Airlie <airlied@gmail.com>
Sat, 3 Nov 2012 10:53:33 +0000 (20:53 +1000)
committerDave Airlie <airlied@redhat.com>
Fri, 9 Nov 2012 20:20:46 +0000 (06:20 +1000)
commiteb44c36df842af010269eda1be77c4aea8ebe736
tree33fa9c3c55a6e29f6d05c464fad5bc69b5d34278
parente9cf40142d43e8a757cf6485329882c7e1c3a1d3
r600g: add initial cube map array support (v2)

This contains the evergreen support.

Support is possible on rv670 upwards and the code in here
should work, but it doesn't and I haven't debugged it to
figure out why.

Beyond just adding support for the cube map array sampling,
r600 resinfo isn't conformant with the GL specification,
which states the number of layers should be returned for
the textureSize, so we have to track in an external
constant buffer the layers for each sampler if we need
them in the shader.

v2: only update the sampler constants if the sampler views have changed,
as suggested by Marek.

Reviewed-by: Marek Olšák <maraeo@gmail.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/drivers/r600/evergreen_state.c
src/gallium/drivers/r600/r600_blit.c
src/gallium/drivers/r600/r600_pipe.c
src/gallium/drivers/r600/r600_pipe.h
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/r600/r600_shader.h
src/gallium/drivers/r600/r600_state.c
src/gallium/drivers/r600/r600_state_common.c
src/gallium/drivers/r600/r600_texture.c