radeonsi: don't fail due to DCC when using the compute blit on compute queues
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28917>
This commit is contained in:
@@ -1061,8 +1061,9 @@ bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info,
|
|||||||
util_format_is_depth_or_stencil(info->dst.resource->format) ||
|
util_format_is_depth_or_stencil(info->dst.resource->format) ||
|
||||||
util_format_is_depth_or_stencil(info->src.resource->format) ||
|
util_format_is_depth_or_stencil(info->src.resource->format) ||
|
||||||
info->dst_sample != 0 ||
|
info->dst_sample != 0 ||
|
||||||
/* Image stores support DCC since GFX10. */
|
/* Image stores support DCC since GFX10. Return only for gfx queues. DCC is disabled
|
||||||
(sctx->gfx_level < GFX10 && vi_dcc_enabled(sdst, info->dst.level)) ||
|
* for compute queues farther below. */
|
||||||
|
(sctx->gfx_level < GFX10 && sctx->has_graphics && vi_dcc_enabled(sdst, info->dst.level)) ||
|
||||||
info->alpha_blend ||
|
info->alpha_blend ||
|
||||||
info->num_window_rectangles ||
|
info->num_window_rectangles ||
|
||||||
info->scissor_enable ||
|
info->scissor_enable ||
|
||||||
@@ -1078,11 +1079,14 @@ bool si_compute_blit(struct si_context *sctx, const struct pipe_blit_info *info,
|
|||||||
*
|
*
|
||||||
* TODO: benchmark the performance on gfx11
|
* TODO: benchmark the performance on gfx11
|
||||||
*/
|
*/
|
||||||
if (sctx->gfx_level < GFX11 && !testing)
|
if (sctx->gfx_level < GFX11 && sctx->has_graphics && !testing)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
assert(info->src.box.depth >= 0);
|
assert(info->src.box.depth >= 0);
|
||||||
|
|
||||||
|
if (sctx->gfx_level < GFX10 && !sctx->has_graphics && vi_dcc_enabled(sdst, info->dst.level))
|
||||||
|
si_texture_disable_dcc(sctx, sdst);
|
||||||
|
|
||||||
/* Shader images. */
|
/* Shader images. */
|
||||||
struct pipe_image_view image[2];
|
struct pipe_image_view image[2];
|
||||||
image[0].resource = info->src.resource;
|
image[0].resource = info->src.resource;
|
||||||
|
Reference in New Issue
Block a user