bumptech / bumptech/glide

Need workaround for Android U issue where single-channel, hardware gainmaps are dropped when rendering using skiagl

Open
#5,362 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
35k
Forks
6.2k
Avg merge
1d 11h
Merged PRs (30d)
8

Description

There is an AOSP bug in the original Android U release in https://android.googlesource.com/platform/frameworks/base/+/master/libs/hwui/HardwareBitmapUploader.cpp where single-channel bitmaps are initialized with the wrong GL enum (`GL_R8` instead of `GL_RGBA`, introduced in https://cs.android.com/android/_/android/platform/frameworks/base/+/a008aa9c85bc136daefc4e056d88008cc4f55781:libs/hwui/HardwareBitmapUploader.cpp;dlc=4207fcf360998d0c6717f430c00aab13e5de80b9), causing the process of uploading the bitmap to hardware to fail.

As such, Ultra HDR images can fail to decode on Android U on devices where hwui is configured to use skiagl. This is not an issue on devices where hwui is configured to use skiavk.

A workaround could be to decode a single-channel, hardware 1x1 bitmap, see if it fails, and if it does, to copy the gainmap to a three-channel bitmap before uploading to hardware.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.