zink: add support for VK_EXT_4444_formats

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8240>
This commit is contained in:
Hoe Hao Cheng
2020-12-27 01:43:52 +08:00
committed by Marge Bot
parent 0f5726c503
commit 5a1518e86b
3 changed files with 11 additions and 0 deletions

View File

@@ -113,6 +113,9 @@ EXTENSIONS = [
properties=True,
features=True,
guard=True),
Extension("VK_EXT_4444_formats",
alias="format_4444",
features=True),
]
# constructor: Versions(device_version(major, minor, patch), struct_version(major, minor))

View File

@@ -93,6 +93,8 @@ static const VkFormat formats[PIPE_FORMAT_COUNT] = {
// other color formats
[PIPE_FORMAT_A4B4G4R4_UNORM] = VK_FORMAT_R4G4B4A4_UNORM_PACK16,
[PIPE_FORMAT_A4R4G4B4_UNORM] = VK_FORMAT_B4G4R4A4_UNORM_PACK16,
[PIPE_FORMAT_B4G4R4A4_UNORM] = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT,
[PIPE_FORMAT_R4G4B4A4_UNORM] = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT,
[PIPE_FORMAT_B5G6R5_UNORM] = VK_FORMAT_R5G6B5_UNORM_PACK16,
[PIPE_FORMAT_R5G6B5_UNORM] = VK_FORMAT_B5G6R5_UNORM_PACK16,

View File

@@ -804,6 +804,12 @@ zink_get_format(struct zink_screen *screen, enum pipe_format format)
return VK_FORMAT_D32_SFLOAT_S8_UINT;
}
if ((ret == VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT &&
!screen->info.format_4444_feats.formatA4B4G4R4) ||
(ret == VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT &&
!screen->info.format_4444_feats.formatA4R4G4B4))
return VK_FORMAT_UNDEFINED;
return ret;
}