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>
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user