[Mesa-dev] [PATCH 07/11] i965: Make sure we always mark array surfaces as such

Mark Janes mark.a.janes at intel.com
Tue Mar 31 18:02:39 PDT 2015


Reviewed-by: Mark Janes <mark.a.janes at intel.com>

Eduardo Lima Mitev <elima at igalia.com> writes:

> From: Iago Toral Quiroga <itoral at igalia.com>
>
> 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*
> ---
>  src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 4 +++-
>  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 29553cd..cc587ad 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 113404c..5f5efad 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;
> -- 
> 2.1.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list