mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-24 21:10:24 +01:00
ac/surface: Add ac_modifier_supports_video
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36192>
This commit is contained in:
parent
cd71f212b0
commit
e435ea78e8
2 changed files with 26 additions and 0 deletions
|
|
@ -148,6 +148,31 @@ bool ac_modifier_supports_dcc_image_stores(enum amd_gfx_level gfx_level, uint64_
|
|||
|
||||
}
|
||||
|
||||
bool ac_modifier_supports_video(const struct radeon_info *info, uint64_t modifier)
|
||||
{
|
||||
if (ac_modifier_has_dcc(modifier)) {
|
||||
/* DCC not supported */
|
||||
if (info->gfx_level < GFX12)
|
||||
return false;
|
||||
|
||||
if (info->drm_minor < 63 &&
|
||||
AMD_FMT_MOD_GET(DCC_MAX_COMPRESSED_BLOCK, modifier) == AMD_FMT_MOD_DCC_BLOCK_256B)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (modifier != DRM_FORMAT_MOD_LINEAR) {
|
||||
/* Linear only for UVD/VCE and VCN 1.0 */
|
||||
if (info->vcn_ip_version < VCN_2_0_0)
|
||||
return false;
|
||||
|
||||
/* Only "S" swizzle modes supported */
|
||||
if (info->vcn_ip_version < VCN_2_2_0 &&
|
||||
AMD_FMT_MOD_GET(TILE, modifier) != AMD_FMT_MOD_TILE_GFX9_64K_S)
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool ac_surface_supports_dcc_image_stores(enum amd_gfx_level gfx_level,
|
||||
const struct radeon_surf *surf)
|
||||
|
|
|
|||
|
|
@ -481,6 +481,7 @@ bool ac_get_supported_modifiers(const struct radeon_info *info,
|
|||
bool ac_modifier_has_dcc(uint64_t modifier);
|
||||
bool ac_modifier_has_dcc_retile(uint64_t modifier);
|
||||
bool ac_modifier_supports_dcc_image_stores(enum amd_gfx_level gfx_level, uint64_t modifier);
|
||||
bool ac_modifier_supports_video(const struct radeon_info *info, uint64_t modifier);
|
||||
void ac_modifier_max_extent(const struct radeon_info *info,
|
||||
uint64_t modifier, uint32_t *width, uint32_t *height);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue