uniform->i[2] = u_minify(tex->texture->depth0,
tex->u.tex.first_level);
- if (is_array)
- uniform->i[dim] = tex->texture->array_size;
+ if (is_array) {
+ unsigned size = tex->texture->array_size;
+
+ /* Internally, we store the number of 2D images (faces * array
+ * size). Externally, we report the array size in terms of
+ * complete cubes. So divide by the # of faces per cube.
+ */
+ if (tex->target == PIPE_TEXTURE_CUBE_ARRAY)
+ size /= 6;
+
+ uniform->i[dim] = size;
+ }
}
static void panfrost_upload_image_size_sysval(struct panfrost_batch *batch,
spec@arb_texture_buffer_object@formats (fs- arb),Crash
spec@arb_texture_buffer_object@formats (vs- arb),Crash
spec@arb_texture_buffer_object@render-no-bo,Crash
-spec@arb_texture_cube_map_array@texturesize@fs-texturesize-isamplercubearray,Fail
-spec@arb_texture_cube_map_array@texturesize@fs-texturesize-samplercubearray,Fail
-spec@arb_texture_cube_map_array@texturesize@fs-texturesize-samplercubearrayshadow,Fail
-spec@arb_texture_cube_map_array@texturesize@fs-texturesize-usamplercubearray,Fail
-spec@arb_texture_cube_map_array@texturesize@vs-texturesize-isamplercubearray,Fail
-spec@arb_texture_cube_map_array@texturesize@vs-texturesize-samplercubearray,Fail
-spec@arb_texture_cube_map_array@texturesize@vs-texturesize-samplercubearrayshadow,Fail
-spec@arb_texture_cube_map_array@texturesize@vs-texturesize-usamplercubearray,Fail
spec@arb_texture_float@arb_texture_float-texture-float-formats,Fail
spec@arb_texture_float@fbo-alphatest-formats,Crash
spec@arb_texture_float@fbo-blending-formats,Crash