brw_miptree_layout(struct intel_context *intel, struct intel_mipmap_tree *mt)
{
switch (mt->target) {
+ case GL_TEXTURE_CUBE_MAP_ARRAY:
+ brw_miptree_layout_texture_array(intel, mt);
+ break;
+
case GL_TEXTURE_CUBE_MAP:
if (intel->gen >= 5) {
/* On Ironlake, cube maps are finally represented as just a series of
/* Cube-maps on 965 and later must use the same wrap mode for all 3
* coordinate dimensions. Futher, only CUBE and CLAMP are valid.
*/
- if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
+ if (texObj->Target == GL_TEXTURE_CUBE_MAP ||
+ texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
if (ctx->Texture.CubeMapSeamless &&
(gl_sampler->MinFilter != GL_NEAREST ||
gl_sampler->MagFilter != GL_NEAREST)) {
return BRW_SURFACE_3D;
case GL_TEXTURE_CUBE_MAP:
+ case GL_TEXTURE_CUBE_MAP_ARRAY:
return BRW_SURFACE_CUBE;
default:
/* Cube-maps on 965 and later must use the same wrap mode for all 3
* coordinate dimensions. Futher, only CUBE and CLAMP are valid.
*/
- if (texObj->Target == GL_TEXTURE_CUBE_MAP) {
+ if (texObj->Target == GL_TEXTURE_CUBE_MAP ||
+ texObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
if (ctx->Texture.CubeMapSeamless &&
(gl_sampler->MinFilter != GL_NEAREST ||
gl_sampler->MagFilter != GL_NEAREST)) {
firstImage->InternalFormat,
tObj->DepthMode,
sampler->sRGBDecode);
- if (tObj->Target == GL_TEXTURE_CUBE_MAP) {
+ if (tObj->Target == GL_TEXTURE_CUBE_MAP ||
+ tObj->Target == GL_TEXTURE_CUBE_MAP_ARRAY) {
surf->ss0.cube_pos_x = 1;
surf->ss0.cube_pos_y = 1;
surf->ss0.cube_pos_z = 1;