From 7ccb8a4d98b28f058832a63e7dbc810a6a63a26f Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Tue, 30 Nov 2021 14:17:28 -0500 Subject: [PATCH] Plumb support for rendering A8 in Vulkan VulkanSurface: - update LOG_TAG - allow no dataspace + A8 - assign a vkPixelFormat for A8 VulkanManager: use a more descriptive LOG_TAG Bug: 193170859 Test: TODO Change-Id: If447c2c393b4f17b718083a77cdd29870fb1cc50 --- libs/hwui/renderthread/VulkanManager.cpp | 3 +++ libs/hwui/renderthread/VulkanSurface.cpp | 11 +++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp index 9e8a1e141fe10..a9ff2c60fdbe4 100644 --- a/libs/hwui/renderthread/VulkanManager.cpp +++ b/libs/hwui/renderthread/VulkanManager.cpp @@ -35,6 +35,9 @@ #include "pipeline/skia/ShaderCache.h" #include "renderstate/RenderState.h" +#undef LOG_TAG +#define LOG_TAG "VulkanManager" + namespace android { namespace uirenderer { namespace renderthread { diff --git a/libs/hwui/renderthread/VulkanSurface.cpp b/libs/hwui/renderthread/VulkanSurface.cpp index 611a4d9c8f2c5..7dd3561cb2202 100644 --- a/libs/hwui/renderthread/VulkanSurface.cpp +++ b/libs/hwui/renderthread/VulkanSurface.cpp @@ -24,6 +24,9 @@ #include "VulkanManager.h" #include "utils/Color.h" +#undef LOG_TAG +#define LOG_TAG "VulkanSurface" + namespace android { namespace uirenderer { namespace renderthread { @@ -197,8 +200,9 @@ bool VulkanSurface::InitializeWindowInfoStruct(ANativeWindow* window, ColorMode outWindowInfo->bufferFormat = ColorTypeToBufferFormat(colorType); outWindowInfo->colorspace = colorSpace; outWindowInfo->dataspace = ColorSpaceToADataSpace(colorSpace.get(), colorType); - LOG_ALWAYS_FATAL_IF(outWindowInfo->dataspace == HAL_DATASPACE_UNKNOWN, - "Unsupported colorspace"); + LOG_ALWAYS_FATAL_IF( + outWindowInfo->dataspace == HAL_DATASPACE_UNKNOWN && colorType != kAlpha_8_SkColorType, + "Unsupported colorspace"); VkFormat vkPixelFormat; switch (colorType) { @@ -211,6 +215,9 @@ bool VulkanSurface::InitializeWindowInfoStruct(ANativeWindow* window, ColorMode case kRGBA_1010102_SkColorType: vkPixelFormat = VK_FORMAT_A2B10G10R10_UNORM_PACK32; break; + case kAlpha_8_SkColorType: + vkPixelFormat = VK_FORMAT_R8_UNORM; + break; default: LOG_ALWAYS_FATAL("Unsupported colorType: %d", (int)colorType); }