radeonsi: fix resource_copy_region with ETC formats (e.g. for Stoney)
Only Stoney, Vega10, Raven, and Raven2 support ETC.
Fixed tests:
dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16i.texture2d_to_texture2d
dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.r11_eac_rgba16ui.texture2d_to_texture2d
dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16i.texture2d_to_texture2d
dEQP-GLES31.functional.copy_image.mixed.viewclass_64_bits_mixed.signed_r11_eac_rgba16ui.texture2d_to_texture2d
Fixes: cf1e562fdd
- radeonsi: remove compressed and subsampled gfx copy from resource_copy_region
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6431
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16491>
This commit is contained in:
parent
0a056f84ed
commit
ad50daa982
|
@ -155,38 +155,6 @@ CreateContext/VAAPICreateContext.CreateContext/1630,Crash
|
||||||
CreateContext/VAAPICreateContext.CreateContext/1800,Crash
|
CreateContext/VAAPICreateContext.CreateContext/1800,Crash
|
||||||
CreateContext/VAAPICreateContext.CreateContext/2990,Crash
|
CreateContext/VAAPICreateContext.CreateContext/2990,Crash
|
||||||
CreateContext/VAAPICreateContext.CreateContext/3160,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.0@gl-1.0-user-clip-all-planes,Fail
|
||||||
spec@!opengl 1.1@texwrap formats bordercolor-swizzled,Fail
|
spec@!opengl 1.1@texwrap formats bordercolor-swizzled,Fail
|
||||||
|
|
|
@ -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);
|
si_use_compute_copy_for_float_formats(sctx, dst, dst_level);
|
||||||
|
|
||||||
if (si_can_use_compute_blit(sctx, dst->format, dst->nr_samples, true,
|
/* The compute copy is mandatory for compressed and subsampled formats because the gfx copy
|
||||||
vi_dcc_enabled(sdst, dst_level)) &&
|
* doesn't support them. In all other cases, call si_can_use_compute_blit.
|
||||||
si_can_use_compute_blit(sctx, src->format, src->nr_samples, false,
|
*
|
||||||
vi_dcc_enabled(ssrc, src_level))) {
|
* 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,
|
si_compute_copy_image(sctx, dst, dst_level, src, src_level, dstx, dsty, dstz,
|
||||||
src_box, false, SI_OP_SYNC_BEFORE_AFTER);
|
src_box, false, SI_OP_SYNC_BEFORE_AFTER);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue