diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index b4274c880a2..b24a7591945 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -194,7 +194,8 @@ bool ac_is_modifier_supported(const struct radeon_info *info, if(modifier == DRM_FORMAT_MOD_LINEAR) return true; - if (util_format_get_num_planes(format) > 1) + /* GFX8 may need a different modifier for each plane */ + if (info->chip_class < GFX9 && util_format_get_num_planes(format) > 1) return false; uint32_t allowed_swizzles = 0xFFFFFFFF; @@ -214,6 +215,10 @@ bool ac_is_modifier_supported(const struct radeon_info *info, return false; if (ac_modifier_has_dcc(modifier)) { + /* TODO: support multi-planar formats with DCC */ + if (util_format_get_num_planes(format) > 1) + return false; + if (!info->has_graphics) return false;