Mesa (main): freedreno: Fallback to sw for copy_image with compressed
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jun 15 19:26:49 UTC 2021
Module: Mesa
Branch: main
Commit: fd23a54c71c9bbf79fe478881a66aa02b7034823
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=fd23a54c71c9bbf79fe478881a66aa02b7034823
Author: Rob Clark <robdclark at chromium.org>
Date: Tue Jun 15 07:24:54 2021 -0700
freedreno: Fallback to sw for copy_image with compressed
Signed-off-by: Rob Clark <robdclark at chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11371>
---
src/gallium/drivers/freedreno/freedreno_blitter.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/src/gallium/drivers/freedreno/freedreno_blitter.c b/src/gallium/drivers/freedreno/freedreno_blitter.c
index bc237914ab4..f9271e7fa45 100644
--- a/src/gallium/drivers/freedreno/freedreno_blitter.c
+++ b/src/gallium/drivers/freedreno/freedreno_blitter.c
@@ -341,6 +341,17 @@ fd_resource_copy_region(struct pipe_context *pctx, struct pipe_resource *dst,
{
struct fd_context *ctx = fd_context(pctx);
+ /* The blitter path handles compressed formats only if src and dst format
+ * match, in other cases just fall back to sw:
+ */
+ if ((src->format != dst->format) &&
+ (util_format_is_compressed(src->format) ||
+ util_format_is_compressed(dst->format))) {
+ perf_debug_ctx(ctx, "copy_region falls back to sw for {%"PRSC_FMT"} to {%"PRSC_FMT"}",
+ PRSC_ARGS(src), PRSC_ARGS(dst));
+ goto fallback;
+ }
+
if (ctx->blit) {
struct pipe_blit_info info;
@@ -374,6 +385,7 @@ fd_resource_copy_region(struct pipe_context *pctx, struct pipe_resource *dst,
return;
/* else fallback to pure sw: */
+fallback:
util_resource_copy_region(pctx, dst, dst_level, dstx, dsty, dstz, src,
src_level, src_box);
}
More information about the mesa-commit
mailing list