diff options
author | 2022-12-05 20:04:57 +0000 | |
---|---|---|
committer | 2022-12-16 06:23:08 +0000 | |
commit | 9cfe1ed5edefd813214daf4fadacfb6ebbd1e9ba (patch) | |
tree | 12ab19f66ae739b63b88e1760efb2aa0e9f47021 /vulkan/libvulkan/swapchain.cpp | |
parent | a9e28de9a98a4c0a61fb9ce7dc5ace590ba5307b (diff) |
The ahb changes necessary for
- AHARDWAREBUFFER_FORMAT_R16_UINT
- AHARDWAREBUFFER_FORMAT_R16G16_UINT
- AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM
Bug: 233033456
Test: Build
Change-Id: Id56fd83b033c899c40648ef64bcfd65aedc5cd24
Diffstat (limited to 'vulkan/libvulkan/swapchain.cpp')
-rw-r--r-- | vulkan/libvulkan/swapchain.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp index dad361f866..e9935e5781 100644 --- a/vulkan/libvulkan/swapchain.cpp +++ b/vulkan/libvulkan/swapchain.cpp @@ -508,6 +508,10 @@ android::PixelFormat GetNativePixelFormat(VkFormat format) { case VK_FORMAT_R8_UNORM: native_format = android::PIXEL_FORMAT_R_8; break; + // TODO: Do we need to query for VK_EXT_rgba10x6_formats here? + case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16: + native_format = android::PIXEL_FORMAT_RGBA_10101010; + break; default: ALOGV("unsupported swapchain format %d", format); break; @@ -855,6 +859,22 @@ VkResult GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice pdev, } } + // TODO query VK_EXT_rgba10x6_formats support + desc.format = AHARDWAREBUFFER_FORMAT_R10G10B10A10_UNORM; + if (AHardwareBuffer_isSupported(&desc)) { + all_formats.emplace_back( + VkSurfaceFormatKHR{VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + VK_COLOR_SPACE_SRGB_NONLINEAR_KHR}); + if (colorspace_ext) { + all_formats.emplace_back( + VkSurfaceFormatKHR{VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + VK_COLOR_SPACE_PASS_THROUGH_EXT}); + all_formats.emplace_back( + VkSurfaceFormatKHR{VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, + VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT}); + } + } + // NOTE: Any new formats that are added must be coordinated across different // Android users. This includes the ANGLE team (a layered implementation of // OpenGL-ES). |