vc4: respect z-offset in tiled blits
authorErik Faye-Lund <erik.faye-lund@collabora.com>
Tue, 6 Sep 2022 09:03:58 +0000 (11:03 +0200)
committerMarge Bot <emma+marge@anholt.net>
Wed, 7 Sep 2022 07:50:44 +0000 (07:50 +0000)
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Tested-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18427>

src/broadcom/ci/broadcom-rpi3-fails.txt
src/gallium/drivers/vc4/vc4_blit.c

index 545fa32..0a22d95 100644 (file)
@@ -1213,6 +1213,3 @@ spec@ext_texture_compression_s3tc@compressedteximage gl_compressed_srgb_alpha_s3
 spec@ext_texture_compression_s3tc@compressedteximage gl_compressed_srgb_alpha_s3tc_dxt5_ext,Fail
 spec@ext_texture_compression_s3tc@compressedteximage gl_compressed_srgb_s3tc_dxt1_ext,Fail
 spec@ext_texture_compression_s3tc@compressedteximage gl_compressed_rgba_s3tc_dxt3_ext,Fail
-
-# see https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18427
-spec@ext_texture_compression_s3tc@getteximage-targets cube s3tc,Fail
index e63ef61..558bbb7 100644 (file)
 
 static struct pipe_surface *
 vc4_get_blit_surface(struct pipe_context *pctx,
-                     struct pipe_resource *prsc, unsigned level)
+                     struct pipe_resource *prsc, unsigned level,
+                     unsigned layer)
 {
         struct pipe_surface tmpl;
 
         memset(&tmpl, 0, sizeof(tmpl));
         tmpl.format = prsc->format;
         tmpl.u.tex.level = level;
-        tmpl.u.tex.first_layer = 0;
-        tmpl.u.tex.last_layer = 0;
+        tmpl.u.tex.first_layer = tmpl.u.tex.last_layer = layer;
 
         return pctx->create_surface(pctx, prsc, &tmpl);
 }
@@ -123,9 +123,11 @@ vc4_tile_blit(struct pipe_context *pctx, const struct pipe_blit_info *info)
         }
 
         struct pipe_surface *dst_surf =
-                vc4_get_blit_surface(pctx, info->dst.resource, info->dst.level);
+                vc4_get_blit_surface(pctx, info->dst.resource, info->dst.level,
+                                           info->dst.box.z);
         struct pipe_surface *src_surf =
-                vc4_get_blit_surface(pctx, info->src.resource, info->src.level);
+                vc4_get_blit_surface(pctx, info->src.resource, info->src.level,
+                                           info->src.box.z);
 
         vc4_flush_jobs_reading_resource(vc4, info->src.resource);