Revert "panfrost: Z24 variants should be sampled as R32UI"
authorBoris Brezillon <boris.brezillon@collabora.com>
Sat, 7 Mar 2020 14:40:15 +0000 (15:40 +0100)
committerBoris Brezillon <boris.brezillon@collabora.com>
Tue, 10 Mar 2020 07:42:05 +0000 (08:42 +0100)
Commit 0406ea485649 ("panfrost: Z24 variants should be sampled as
R32UI") causes a regression when depth textures are sampled.

It's still not clear how MALI_Z32 can work for for Z32 and Z24{S,X}8,
but let's leave that question for later.

Reported-by: Icecream95 <ixn@keemail.me>
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4101>

.gitlab-ci/deqp-panfrost-t860-fails.txt
src/panfrost/encoder/pan_format.c

index 090bce77b94510edf44968b44dfbecc3cfacc0e3..bbda91428fa9d08eb3bc9825f3ef196f9ba4c417 100644 (file)
@@ -130,7 +130,6 @@ dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_depth_stencil
 dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_msaa_stencil
 dEQP-GLES3.functional.fbo.invalidate.sub.unbind_blit_stencil
 dEQP-GLES3.functional.fbo.invalidate.sub.unbind_read_depth
-dEQP-GLES3.functional.fbo.invalidate.sub.unbind_read_depth_stencil
 dEQP-GLES3.functional.fbo.invalidate.sub.unbind_read_stencil
 dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_color
 dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_depth
@@ -141,7 +140,6 @@ dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_msaa_stencil
 dEQP-GLES3.functional.fbo.invalidate.whole.unbind_blit_stencil
 dEQP-GLES3.functional.fbo.invalidate.whole.unbind_read_color
 dEQP-GLES3.functional.fbo.invalidate.whole.unbind_read_color_stencil
-dEQP-GLES3.functional.fbo.invalidate.whole.unbind_read_stencil
 dEQP-GLES3.functional.fbo.msaa.2_samples.depth24_stencil8
 dEQP-GLES3.functional.fbo.msaa.2_samples.depth32f_stencil8
 dEQP-GLES3.functional.fbo.msaa.2_samples.depth_component16
@@ -1051,25 +1049,19 @@ dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2darray
 dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturegradoffset.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2darrayshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturegrad.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texturelod.sampler2dshadow_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler2dshadow_bias_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureoffset.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler2dshadow_fragment
-dEQP-GLES3.functional.shaders.texture_functions.textureprojgradoffset.sampler2dshadow_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureprojgrad.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_fragment
-dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureprojlod.sampler2dshadow_vertex
-dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_bias_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler2dshadow_vertex
 dEQP-GLES3.functional.shaders.texture_functions.textureproj.sampler2dshadow_bias_fragment
@@ -1078,8 +1070,6 @@ dEQP-GLES3.functional.shaders.texture_functions.textureproj.sampler2dshadow_vert
 dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2darrayshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2dshadow_bias_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2dshadow_fragment
-dEQP-GLES3.functional.shaders.texture_functions.texture.sampler2dshadow_vertex
-dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_bias_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_fragment
 dEQP-GLES3.functional.shaders.texture_functions.texture.samplercubeshadow_vertex
 dEQP-GLES3.functional.state_query.integers.max_samples_getfloat
@@ -1107,8 +1097,6 @@ dEQP-GLES3.functional.texture.format.sized.cube.depth_component24_pot
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.greater_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d_array.linear.greater_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d_array.linear.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear.less_or_equal_depth_component16
@@ -1118,74 +1106,58 @@ dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.greater_or_eq
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.less_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.greater_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d_array.linear_mipmap_nearest.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.less_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d_array.nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest.less_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.less_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.greater_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d_array.nearest_mipmap_nearest.less_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d.linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear.less_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d.linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.greater_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.less_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.greater_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.linear_mipmap_nearest.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest.greater_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d.nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest.less_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d.nearest.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_linear.greater_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_linear.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_linear.less_depth24_stencil8
@@ -1198,7 +1170,6 @@ dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.less_depth_component16
-dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.2d.nearest_mipmap_nearest.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear.greater_depth_component16
@@ -1206,45 +1177,35 @@ dEQP-GLES3.functional.texture.shadow.cube.linear.greater_or_equal_depth24_stenci
 dEQP-GLES3.functional.texture.shadow.cube.linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear.less_depth_component16
-dEQP-GLES3.functional.texture.shadow.cube.linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear.less_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.less_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.greater_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.linear_mipmap_nearest.less_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.cube.nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest.less_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.cube.nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.greater_depth_component16
-dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.greater_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_linear.less_or_equal_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.greater_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.greater_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_depth24_stencil8
-dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.greater_or_equal_depth_component16
-dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.less_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.less_depth_component16
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_depth24_stencil8
 dEQP-GLES3.functional.texture.shadow.cube.nearest_mipmap_nearest.less_or_equal_depth_component16
@@ -1258,15 +1219,12 @@ dEQP-GLES3.functional.texture.specification.teximage2d_depth_pbo.depth_component
 dEQP-GLES3.functional.texture.specification.teximage2d_depth_pbo.depth_component24
 dEQP-GLES3.functional.texture.specification.teximage3d_depth.depth24_stencil8_2d_array
 dEQP-GLES3.functional.texture.specification.teximage3d_depth.depth_component16_2d_array
-dEQP-GLES3.functional.texture.specification.teximage3d_depth.depth_component24_2d_array
 dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth24_stencil8_2d_array
 dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component16_2d_array
-dEQP-GLES3.functional.texture.specification.teximage3d_depth_pbo.depth_component24_2d_array
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth24_stencil8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth24_stencil8_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth32f_stencil8_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component16_2d
-dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component16_cube
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component24_2d
 dEQP-GLES3.functional.texture.specification.texstorage2d.format.depth_component24_cube
 dEQP-GLES3.functional.texture.specification.texstorage3d.format.depth24_stencil8_2d_array
index 205f722dd7167ef6fcb1bc31eb11b02bf63aafb4..1b8cb4faef6f0a71e434f4f0b7fa9208c0a1e84f 100644 (file)
@@ -116,17 +116,9 @@ panfrost_find_format(const struct util_format_description *desc)
                 return MALI_RGB10_A2I;
 
         case PIPE_FORMAT_Z32_UNORM:
-                return MALI_Z32_UNORM;
-
         case PIPE_FORMAT_Z24X8_UNORM:
         case PIPE_FORMAT_Z24_UNORM_S8_UINT:
-                /* Midgard has no dedicated samplers for Z24S8 and Z24X8
-                 * formats, and the GPU expects the depth to be encoded in an
-                 * IEEE 32-bit float. Turn all Z24_UNORM variants into R32UI
-                 * and let the shader do the conversion using bfe+fmul
-                 * instructions.
-                 */
-                return MALI_R32UI;
+                return MALI_Z32_UNORM;
 
         case PIPE_FORMAT_Z32_FLOAT_S8X24_UINT:
                 /* Z32F = R32F to the hardware */