diff --git a/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt b/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt index f8691526ef9..7c44c25fe2f 100644 --- a/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt +++ b/src/gallium/drivers/radeonsi/ci/radeonsi-stoney-fails.txt @@ -155,38 +155,6 @@ CreateContext/VAAPICreateContext.CreateContext/1630,Crash CreateContext/VAAPICreateContext.CreateContext/1800,Crash CreateContext/VAAPICreateContext.CreateContext/2990,Crash CreateContext/VAAPICreateContext.CreateContext/3160,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rg11_eac_rgba32i.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rg11_eac_rgba32i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rg11_eac_rgba32ui.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rg11_eac_rgba32ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32i.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.rgba8_etc2_eac_rgba32ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.signed_rg11_eac_rgba32i.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.signed_rg11_eac_rgba32i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.signed_rg11_eac_rgba32ui.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.signed_rg11_eac_rgba32ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_etc2_eac_rgba32i.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_etc2_eac_rgba32i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_etc2_eac_rgba32ui.cubemap_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_128_bits_mixed.srgb8_alpha8_etc2_eac_rgba32ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32i.cubemap_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32i.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32ui.cubemap_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rg32ui.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16i.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16ui.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rg32i.cubemap_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rg32i.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rg32ui.cubemap_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rg32ui.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16i.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16i.texture2d_to_texture2d,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16ui.texture2d_to_renderbuffer,Crash -dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16ui.texture2d_to_texture2d,Crash spec@!opengl 1.0@gl-1.0-user-clip-all-planes,Fail spec@!opengl 1.1@texwrap formats bordercolor-swizzled,Fail diff --git a/src/gallium/drivers/radeonsi/si_blit.c b/src/gallium/drivers/radeonsi/si_blit.c index cbf4e63a890..8a65ad240e2 100644 --- a/src/gallium/drivers/radeonsi/si_blit.c +++ b/src/gallium/drivers/radeonsi/si_blit.c @@ -953,10 +953,19 @@ void si_resource_copy_region(struct pipe_context *ctx, struct pipe_resource *dst si_use_compute_copy_for_float_formats(sctx, dst, dst_level); - if (si_can_use_compute_blit(sctx, dst->format, dst->nr_samples, true, - vi_dcc_enabled(sdst, dst_level)) && - si_can_use_compute_blit(sctx, src->format, src->nr_samples, false, - vi_dcc_enabled(ssrc, src_level))) { + /* The compute copy is mandatory for compressed and subsampled formats because the gfx copy + * doesn't support them. In all other cases, call si_can_use_compute_blit. + * + * The format is identical (we only need to check the src format) except compressed formats, + * which can be paired with an equivalent integer format. + */ + if (util_format_is_compressed(src->format) || + util_format_is_compressed(dst->format) || + util_format_is_subsampled_422(src->format) || + (si_can_use_compute_blit(sctx, dst->format, dst->nr_samples, true, + vi_dcc_enabled(sdst, dst_level)) && + si_can_use_compute_blit(sctx, src->format, src->nr_samples, false, + vi_dcc_enabled(ssrc, src_level)))) { si_compute_copy_image(sctx, dst, dst_level, src, src_level, dstx, dsty, dstz, src_box, false, SI_OP_SYNC_BEFORE_AFTER); return;