Handle AHB R8 format conversions

Reviewed-by: Aaron Ruby <aruby@blackberry.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27246>
This commit is contained in:
Jason Macnak
2024-02-06 14:39:45 -08:00
committed by Marge Bot
parent fe4a621c7b
commit bfac7ab65e
2 changed files with 8 additions and 0 deletions
@@ -65,6 +65,9 @@ VkResult getAndroidHardwareBufferPropertiesANDROID(
const auto format = grallocHelper->getFormat(buffer);
if (ahbFormatProps) {
switch (format) {
case AHARDWAREBUFFER_FORMAT_R8_UNORM:
ahbFormatProps->format = VK_FORMAT_R8_UNORM;
break;
case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM:
ahbFormatProps->format = VK_FORMAT_R8G8B8A8_UNORM;
break;
@@ -57,6 +57,8 @@ namespace vk {
// VK_FORMAT_G8_B8R8_2PLANE_420_UNORM.
static inline VkFormat vk_format_from_android(unsigned android_format) {
switch (android_format) {
case AHARDWAREBUFFER_FORMAT_R8_UNORM:
return VK_FORMAT_R8_UNORM;
case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM:
return VK_FORMAT_R8G8B8A8_UNORM;
case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM:
@@ -89,6 +91,8 @@ static inline VkFormat vk_format_from_android(unsigned android_format) {
static inline unsigned android_format_from_vk(VkFormat vk_format) {
switch (vk_format) {
case VK_FORMAT_R8_UNORM:
return AHARDWAREBUFFER_FORMAT_R8_UNORM;
case VK_FORMAT_R8G8B8A8_UNORM:
return AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM;
case VK_FORMAT_R8G8B8_UNORM:
@@ -111,6 +115,7 @@ static inline unsigned android_format_from_vk(VkFormat vk_format) {
static inline bool android_format_is_yuv(unsigned android_format) {
switch (android_format) {
case AHARDWAREBUFFER_FORMAT_BLOB:
case AHARDWAREBUFFER_FORMAT_R8_UNORM:
case AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM:
case AHARDWAREBUFFER_FORMAT_R8G8B8X8_UNORM:
case AHARDWAREBUFFER_FORMAT_R8G8B8_UNORM: