diff options
author | 2024-02-15 18:26:00 -0500 | |
---|---|---|
committer | 2024-02-15 19:31:28 -0500 | |
commit | 41ed671e17213441f9a521faea2364ea55b38557 (patch) | |
tree | b1478352c979252cd22540364bf256af5c362c98 /libs/hwui/HardwareBitmapUploader.cpp | |
parent | bc608a8758030602f4dbeed2a62714c1e64ca4a0 (diff) |
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
Diffstat (limited to 'libs/hwui/HardwareBitmapUploader.cpp')
-rw-r--r-- | libs/hwui/HardwareBitmapUploader.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
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()); |