Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3ff77231 authored by Jiwen 'Steve' Cai's avatar Jiwen 'Steve' Cai
Browse files

Use gralloc1 usage in AHardwareBuffer_describe

GraphicBuffer->getUsage() reports gralloc0 usage bits, convert it to
gralloc1 usage first then to AHardwareBuffer bits.

Bug: 35114769
Test: AImageReaderCts now passes with CPU_READ_OFTEN case.
Change-Id: Id461d9f9e98ccc1db8c4b4da79c61b9aedb417bf
parent 34ca5f2a
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@
#include <ui/GraphicBuffer.h>
#include <system/graphics.h>
#include <hardware/gralloc1.h>
#include <grallocusage/GrallocUsageConversion.h>

#include <private/android/AHardwareBufferHelpers.h>

@@ -100,8 +101,12 @@ void AHardwareBuffer_describe(const AHardwareBuffer* buffer,
    outDesc->width = gbuffer->getWidth();
    outDesc->height = gbuffer->getHeight();
    outDesc->layers = gbuffer->getLayerCount();

    uint64_t producerUsage = 0;
    uint64_t consumerUsage = 0;
    android_convertGralloc0To1Usage(gbuffer->getUsage(), &producerUsage, &consumerUsage);
    AHardwareBuffer_convertFromGrallocUsageBits(&outDesc->usage0, &outDesc->usage1,
            gbuffer->getUsage(), gbuffer->getUsage());
            producerUsage, consumerUsage);
    outDesc->format = AHardwareBuffer_convertFromPixelFormat(
            static_cast<uint32_t>(gbuffer->getPixelFormat()));
}