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;
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) &&
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
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);