summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/gen8_surface_state.c
diff options
context:
space:
mode:
authorIago Toral Quiroga <itoral@igalia.com>2015-02-03 12:34:29 +0100
committerIago Toral Quiroga <itoral@igalia.com>2015-04-06 08:07:42 +0200
commit47597f8f5cfe950093110d2b777923ef85c5d24f (patch)
tree1752552d774dbb569f2b861bd31a1e0b8b4c6f15 /src/mesa/drivers/dri/i965/gen8_surface_state.c
parent8b0b81339b9c3806981ee2ec7c08501bbd8bb7a3 (diff)
downloadexternal_mesa3d-47597f8f5cfe950093110d2b777923ef85c5d24f.zip
external_mesa3d-47597f8f5cfe950093110d2b777923ef85c5d24f.tar.gz
external_mesa3d-47597f8f5cfe950093110d2b777923ef85c5d24f.tar.bz2
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/drivers/dri/i965/gen8_surface_state.c')
-rw-r--r--src/mesa/drivers/dri/i965/gen8_surface_state.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/mesa/drivers/dri/i965/gen8_surface_state.c b/src/mesa/drivers/dri/i965/gen8_surface_state.c
index 7f82f53..0007c95 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;