summaryrefslogtreecommitdiffstats
path: root/libgrallocusage
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2017-03-29 12:06:36 -0700
committerEino-Ville Talvala <etalvala@google.com>2017-03-29 12:08:55 -0700
commit944e5e0c5276e9149180c316a7d30ad7ef44a284 (patch)
tree02bda6966bbb1d4b279b5a28a663c2ccb5c0448d /libgrallocusage
parentdf937b8255d86d97c97fd8d9ca7ea5352e2d8975 (diff)
downloadsystem_core-944e5e0c5276e9149180c316a7d30ad7ef44a284.tar.gz
system_core-944e5e0c5276e9149180c316a7d30ad7ef44a284.tar.bz2
system_core-944e5e0c5276e9149180c316a7d30ad7ef44a284.zip
Include vendor gralloc0 flags in gralloc1 conversion.
Map GRALLOC_USAGE_PRIVATE_* fields into bits 28-31 of both producer and consumer usage for gralloc1. Test: Camera output works as normal, CTS not regressed Bug: 35215313 Change-Id: I0736e0f513b193373b822830dbb0efe3f4263770
Diffstat (limited to 'libgrallocusage')
-rw-r--r--libgrallocusage/GrallocUsageConversion.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libgrallocusage/GrallocUsageConversion.cpp b/libgrallocusage/GrallocUsageConversion.cpp
index 8164beb80..10e728d52 100644
--- a/libgrallocusage/GrallocUsageConversion.cpp
+++ b/libgrallocusage/GrallocUsageConversion.cpp
@@ -30,13 +30,17 @@ void android_convertGralloc0To1Usage(int32_t usage, uint64_t* producerUsage,
/* ProducerUsage::CPU_WRITE_OFTEN | */
ProducerUsage::GPU_RENDER_TARGET | ProducerUsage::PROTECTED |
ProducerUsage::CAMERA | ProducerUsage::VIDEO_DECODER |
- ProducerUsage::SENSOR_DIRECT_DATA;
+ ProducerUsage::SENSOR_DIRECT_DATA |
+ /* Private flags may be consumer or producer */
+ GRALLOC_USAGE_PRIVATE_MASK;
constexpr uint64_t CONSUMER_MASK = ConsumerUsage::CPU_READ |
/* ConsumerUsage::CPU_READ_OFTEN | */
ConsumerUsage::GPU_TEXTURE | ConsumerUsage::HWCOMPOSER |
ConsumerUsage::CLIENT_TARGET | ConsumerUsage::CURSOR |
ConsumerUsage::VIDEO_ENCODER | ConsumerUsage::CAMERA |
- ConsumerUsage::RENDERSCRIPT | ConsumerUsage::GPU_DATA_BUFFER;
+ ConsumerUsage::RENDERSCRIPT | ConsumerUsage::GPU_DATA_BUFFER |
+ /* Private flags may be consumer or producer */
+ GRALLOC_USAGE_PRIVATE_MASK;
*producerUsage = static_cast<uint64_t>(usage) & PRODUCER_MASK;
*consumerUsage = static_cast<uint64_t>(usage) & CONSUMER_MASK;
if ((static_cast<uint32_t>(usage) & GRALLOC_USAGE_SW_READ_OFTEN) == GRALLOC_USAGE_SW_READ_OFTEN) {