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
This commit is contained in:
Leon Scroggins III 2021-11-30 14:17:28 -05:00
parent e157ee878f
commit 7ccb8a4d98
2 changed files with 12 additions and 2 deletions

View File

@ -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 {

View File

@ -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);
}