radeonsi: make various blit functions non-static
authorMarek Olšák <marek.olsak@amd.com>
Fri, 10 Jun 2022 23:57:13 +0000 (19:57 -0400)
committerMarge Bot <emma+marge@anholt.net>
Wed, 3 Aug 2022 00:57:16 +0000 (00:57 +0000)
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17864>

src/gallium/drivers/radeonsi/si_blit.c
src/gallium/drivers/radeonsi/si_pipe.h

index 55957ea..1187377 100644 (file)
@@ -1026,7 +1026,7 @@ static bool resolve_formats_compatible(enum pipe_format src, enum pipe_format ds
    return *need_rgb_to_bgr;
 }
 
-static bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info)
+bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info)
 {
    struct si_context *sctx = (struct si_context *)ctx;
 
@@ -1043,6 +1043,10 @@ static bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct p
    struct pipe_resource *tmp, templ;
    struct pipe_blit_info blit;
 
+   /* Gfx11 doesn't have CB_RESOLVE. */
+   if (sctx->gfx_level >= GFX11)
+      return false;
+
    /* Check basic requirements for hw resolve. */
    if (!(info->src.resource->nr_samples > 1 && info->dst.resource->nr_samples <= 1 &&
          !util_format_is_pure_integer(format) && !util_format_is_depth_or_stencil(format) &&
@@ -1215,6 +1219,13 @@ static void si_blit(struct pipe_context *ctx, const struct pipe_blit_info *info)
       return;
    }
 
+   si_gfx_blit(ctx, info);
+}
+
+void si_gfx_blit(struct pipe_context *ctx, const struct pipe_blit_info *info)
+{
+   struct si_context *sctx = (struct si_context *)ctx;
+
    assert(util_blitter_is_blit_supported(sctx->blitter, info));
 
    /* The driver doesn't decompress resources automatically while
index dc87a83..05668b1 100644 (file)
@@ -1336,6 +1336,8 @@ void si_resource_copy_region(struct pipe_context *ctx, struct pipe_resource *dst
                              const struct pipe_box *src_box);
 void si_decompress_dcc(struct si_context *sctx, struct si_texture *tex);
 void si_flush_implicit_resources(struct si_context *sctx);
+bool si_msaa_resolve_blit_via_CB(struct pipe_context *ctx, const struct pipe_blit_info *info);
+void si_gfx_blit(struct pipe_context *ctx, const struct pipe_blit_info *info);
 
 /* si_nir_optim.c */
 bool si_nir_is_output_const_if_tex_is_const(nir_shader *shader, float *in, float *out, int *texunit);