summaryrefslogtreecommitdiff
path: root/libs/hwui/HardwareBitmapUploader.cpp
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2024-02-15 18:26:00 -0500
committer John Reck <jreck@google.com> 2024-02-15 19:31:28 -0500
commit41ed671e17213441f9a521faea2364ea55b38557 (patch)
treeb1478352c979252cd22540364bf256af5c362c98 /libs/hwui/HardwareBitmapUploader.cpp
parentbc608a8758030602f4dbeed2a62714c1e64ca4a0 (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.cpp15
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());