Signed-off-by: Chris Forbes <chr...@ijw.co.nz> --- src/mesa/drivers/dri/i965/brw_tex_layout.c | 4 ++++ src/mesa/drivers/dri/i965/brw_wm_sampler_state.c | 3 ++- src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 1 + src/mesa/drivers/dri/i965/gen7_sampler_state.c | 3 ++- src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 3 ++- 5 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_tex_layout.c b/src/mesa/drivers/dri/i965/brw_tex_layout.c index 1a2bedb..1ba3c5b 100644 --- a/src/mesa/drivers/dri/i965/brw_tex_layout.c +++ b/src/mesa/drivers/dri/i965/brw_tex_layout.c @@ -70,6 +70,10 @@ void 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 diff --git a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c index fb9cb83..69669b3 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_sampler_state.c @@ -248,7 +248,8 @@ static void brw_update_sampler_state(struct brw_context *brw, /* 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)) { diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c index a7866d5..5c4db83 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c @@ -65,6 +65,7 @@ translate_tex_target(GLenum target) return BRW_SURFACE_3D; case GL_TEXTURE_CUBE_MAP: + case GL_TEXTURE_CUBE_MAP_ARRAY: return BRW_SURFACE_CUBE; default: diff --git a/src/mesa/drivers/dri/i965/gen7_sampler_state.c b/src/mesa/drivers/dri/i965/gen7_sampler_state.c index ea634a9..c2a695d 100644 --- a/src/mesa/drivers/dri/i965/gen7_sampler_state.c +++ b/src/mesa/drivers/dri/i965/gen7_sampler_state.c @@ -111,7 +111,8 @@ gen7_update_sampler_state(struct brw_context *brw, int unit, int ss_index, /* 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)) { diff --git a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c index 466a038..25d8ffb 100644 --- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c @@ -328,7 +328,8 @@ gen7_update_texture_surface(struct gl_context *ctx, 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; -- 1.8.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev