summaryrefslogtreecommitdiffstats
path: root/src/mesa/state_tracker/st_texture.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@gmail.com>2012-11-03 20:49:35 +1000
committerDave Airlie <airlied@redhat.com>2012-11-09 10:29:13 +1000
commit8c0ccce30038f5d28e74f7f4b5b5c0bbd8ac6dbe (patch)
tree111dda12c466f28c6d840402f3fcdbf0e61c73fa /src/mesa/state_tracker/st_texture.c
parentc4427ceff7915d348a5df68ed3a81eca7c7320ad (diff)
downloadexternal_mesa3d-8c0ccce30038f5d28e74f7f4b5b5c0bbd8ac6dbe.zip
external_mesa3d-8c0ccce30038f5d28e74f7f4b5b5c0bbd8ac6dbe.tar.gz
external_mesa3d-8c0ccce30038f5d28e74f7f4b5b5c0bbd8ac6dbe.tar.bz2
st/mesa: add support for ARB_texture_cube_map_array (v2)
This adds mesa state tracker support for the new extension, along with glsl->tgsi conversion to use the new opcodes where appropriate. v2: fix assert found running textureSize tests. Reviewed-by: Brian Paul <brianp@vmware.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
Diffstat (limited to 'src/mesa/state_tracker/st_texture.c')
-rw-r--r--src/mesa/state_tracker/st_texture.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/mesa/state_tracker/st_texture.c b/src/mesa/state_tracker/st_texture.c
index d6dbf8d..5a4dcaa 100644
--- a/src/mesa/state_tracker/st_texture.c
+++ b/src/mesa/state_tracker/st_texture.c
@@ -165,6 +165,13 @@ st_gl_texture_dims_to_pipe_dims(GLenum texture,
*depthOut = 1;
*layersOut = depthIn;
break;
+ case GL_TEXTURE_CUBE_MAP_ARRAY:
+ case GL_PROXY_TEXTURE_CUBE_MAP_ARRAY:
+ *widthOut = widthIn;
+ *heightOut = heightIn;
+ *depthOut = 1;
+ *layersOut = depthIn;
+ break;
default:
assert(0 && "Unexpected texture in st_gl_texture_dims_to_pipe_dims()");
/* fall-through */
@@ -277,7 +284,8 @@ st_texture_image_data(struct st_context *st,
GLuint layers;
if (dst->target == PIPE_TEXTURE_1D_ARRAY ||
- dst->target == PIPE_TEXTURE_2D_ARRAY)
+ dst->target == PIPE_TEXTURE_2D_ARRAY ||
+ dst->target == PIPE_TEXTURE_CUBE_ARRAY)
layers = dst->array_size;
else
layers = u_minify(dst->depth0, level);