From: Eric Anholt Date: Tue, 19 May 2020 23:21:20 +0000 (-0700) Subject: freedreno/a5xx: Set MIN_LAYERSZ on 3D textures like we do on a6xx. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6a154aea0d3375aa8469f28bb8a85e5ee79eef4a;p=mesa.git freedreno/a5xx: Set MIN_LAYERSZ on 3D textures like we do on a6xx. These fields (TILE_ALL and MIN_LAYERSZ) seem to be the same on a5xx as a6xx, having looked at some UBWC vs non-UBWC texturator cases. Setting MIN_LAYERSZ does fix the 3D fail we see in the CTS. Part-of: --- diff --git a/.gitlab-ci/deqp-freedreno-a530-fails.txt b/.gitlab-ci/deqp-freedreno-a530-fails.txt index 20f6cc1d851..56c8cd7284c 100644 --- a/.gitlab-ci/deqp-freedreno-a530-fails.txt +++ b/.gitlab-ci/deqp-freedreno-a530-fails.txt @@ -9,7 +9,6 @@ dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_luminance dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgb dEQP-GLES2.functional.texture.specification.basic_copytexsubimage2d.2d_rgba dEQP-GLES3.functional.fbo.blit.rect.nearest_consistency_mag_reverse_dst_y -dEQP-GLES3.functional.texture.specification.texstorage3d.size.3d_57x63x11_2_levels dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.lowp_float dEQP-GLES3.functional.transform_feedback.array.interleaved.lines.mediump_int dEQP-GLES3.functional.transform_feedback.array.interleaved.points.highp_mat3x2 diff --git a/src/freedreno/registers/a5xx.xml b/src/freedreno/registers/a5xx.xml index 945e09e5b36..dc809cfb716 100644 --- a/src/freedreno/registers/a5xx.xml +++ b/src/freedreno/registers/a5xx.xml @@ -2902,7 +2902,20 @@ different border-color states per texture.. Looks something like: + + + + diff --git a/src/gallium/drivers/freedreno/a5xx/fd5_texture.c b/src/gallium/drivers/freedreno/a5xx/fd5_texture.c index fdfb2c7d943..ca7bafb0c7a 100644 --- a/src/gallium/drivers/freedreno/a5xx/fd5_texture.c +++ b/src/gallium/drivers/freedreno/a5xx/fd5_texture.c @@ -306,6 +306,8 @@ fd5_sampler_view_create(struct pipe_context *pctx, struct pipe_resource *prsc, break; case PIPE_TEXTURE_3D: so->texconst3 = + A5XX_TEX_CONST_3_MIN_LAYERSZ( + fd_resource_slice(rsc, prsc->last_level)->size0) | A5XX_TEX_CONST_3_ARRAY_PITCH(slice->size0); so->texconst5 = A5XX_TEX_CONST_5_DEPTH(u_minify(prsc->depth0, lvl));