Skip to content

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

@falhassen

Description

@falhassen

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions