diff options
author | Iago Toral Quiroga <[email protected]> | 2015-02-03 12:34:29 +0100 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2015-04-06 08:07:42 +0200 |
commit | 47597f8f5cfe950093110d2b777923ef85c5d24f (patch) | |
tree | 1752552d774dbb569f2b861bd31a1e0b8b4c6f15 /src/mesa | |
parent | 8b0b81339b9c3806981ee2ec7c08501bbd8bb7a3 (diff) |
i965: Make sure we always mark array surfaces as such
Even if they only have one slice, otherwise textureSize() won't
produce correct results for the depth value.
Fixes 10 dEQP tests in this category:
dEQP-GLES3.functional.shaders.texture_functions.texturesize.sampler2darray*
Reviewed-by: Mark Janes <mark.a.janes at intel.com>
Diffstat (limited to 'src/mesa')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 4 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/gen8_surface_state.c | 4 |
2 files changed, 6 insertions, 2 deletions
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 7d78515543c..d9361d3d659 100644 --- a/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen7_wm_surface_state.c @@ -24,6 +24,7 @@ #include "main/blend.h" #include "main/samplerobj.h" #include "main/texformat.h" +#include "main/teximage.h" #include "program/prog_parameter.h" #include "intel_mipmap_tree.h" @@ -301,7 +302,8 @@ gen7_update_texture_surface(struct gl_context *ctx, if (mt->align_w == 8) surf[0] |= GEN7_SURFACE_HALIGN_8; - if (mt->logical_depth0 > 1 && tObj->Target != GL_TEXTURE_3D) + if (_mesa_is_array_texture(tObj->Target) || + tObj->Target == GL_TEXTURE_CUBE_MAP) surf[0] |= GEN7_SURFACE_IS_ARRAY; /* if this is a view with restricted NumLayers, then diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c index 7f82f537b56..0007c95f30f 100644 --- a/src/mesa/drivers/dri/i965/gen8_surface_state.c +++ b/src/mesa/drivers/dri/i965/gen8_surface_state.c @@ -25,6 +25,7 @@ #include "main/mtypes.h" #include "main/samplerobj.h" #include "main/texformat.h" +#include "main/teximage.h" #include "program/prog_parameter.h" #include "intel_mipmap_tree.h" @@ -208,7 +209,8 @@ gen8_update_texture_surface(struct gl_context *ctx, surf[0] |= BRW_SURFACE_CUBEFACE_ENABLES; } - if (mt->logical_depth0 > 1 && tObj->Target != GL_TEXTURE_3D) + if (_mesa_is_array_texture(tObj->Target) || + tObj->Target == GL_TEXTURE_CUBE_MAP) surf[0] |= GEN8_SURFACE_IS_ARRAY; surf[1] = SET_FIELD(mocs_wb, GEN8_SURFACE_MOCS) | mt->qpitch >> 2; |