From 41ed671e17213441f9a521faea2364ea55b38557 Mon Sep 17 00:00:00 2001 From: John Reck Date: Thu, 15 Feb 2024 18:26:00 -0500 Subject: Fix bufferFormat if we're falling back to 8888 Bug: 323896307 Test: atest android.graphics.cts.GainmapTest on sdk_gphone64_x86_64 Change-Id: Icb2f69239d4e8fbfc20922587e4e9e5f5d453460 --- libs/hwui/HardwareBitmapUploader.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'libs/hwui/HardwareBitmapUploader.cpp') diff --git a/libs/hwui/HardwareBitmapUploader.cpp b/libs/hwui/HardwareBitmapUploader.cpp index 71f7926930fc..27ea15075682 100644 --- a/libs/hwui/HardwareBitmapUploader.cpp +++ b/libs/hwui/HardwareBitmapUploader.cpp @@ -378,10 +378,17 @@ static FormatInfo determineFormat(const SkBitmap& skBitmap, bool usingGL) { break; case kAlpha_8_SkColorType: formatInfo.isSupported = HardwareBitmapUploader::hasAlpha8Support(); - formatInfo.bufferFormat = AHARDWAREBUFFER_FORMAT_R8_UNORM; - formatInfo.format = GL_RED; - formatInfo.type = GL_UNSIGNED_BYTE; - formatInfo.vkFormat = VK_FORMAT_R8_UNORM; + if (formatInfo.isSupported) { + formatInfo.bufferFormat = AHARDWAREBUFFER_FORMAT_R8_UNORM; + formatInfo.format = GL_RED; + formatInfo.type = GL_UNSIGNED_BYTE; + formatInfo.vkFormat = VK_FORMAT_R8_UNORM; + } else { + formatInfo.type = GL_UNSIGNED_BYTE; + formatInfo.bufferFormat = AHARDWAREBUFFER_FORMAT_R8G8B8A8_UNORM; + formatInfo.vkFormat = VK_FORMAT_R8G8B8A8_UNORM; + formatInfo.format = GL_RGBA; + } break; default: ALOGW("unable to create hardware bitmap of colortype: %d", skBitmap.info().colorType()); -- cgit v1.2.3-59-g8ed1b