summaryrefslogtreecommitdiff
path: root/cros_gralloc
diff options
context:
space:
mode:
authorYiwei Zhang <zzyiwei@chromium.org>2021-07-07 21:54:10 +0000
committerCommit Bot <commit-bot@chromium.org>2021-07-13 00:32:51 +0000
commitb03d02136ad74b4ad21031ff8d92f461e12cfe28 (patch)
treec5696441629f04fb94fe72e1a4b5b4a77f729a17 /cros_gralloc
parent03af6f6b13ba78ff583cfb3cd8d9cf43f2a10e35 (diff)
downloadminigbm-b03d02136ad74b4ad21031ff8d92f461e12cfe28.tar.gz
minigbm: resolve front rendering usage for gralloc3+
TEST=no regression in ARCVM low latency stylus demo Change-Id: I8b7983664779d05fc1463edc1ef813de2bcc6540 Reported-by: Roman Stratiienko <r.stratiienko@gmail.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/minigbm/+/3012235 Tested-by: Yiwei Zhang <zzyiwei@chromium.org> Reviewed-by: Jason Macnak <natsu@google.com> Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org> Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com> Commit-Queue: Yiwei Zhang <zzyiwei@chromium.org>
Diffstat (limited to 'cros_gralloc')
-rw-r--r--cros_gralloc/cros_gralloc_types.h5
-rw-r--r--cros_gralloc/gralloc0/gralloc0.cc5
-rw-r--r--cros_gralloc/gralloc3/CrosGralloc3Utils.cc7
-rw-r--r--cros_gralloc/gralloc4/CrosGralloc4Utils.cc7
4 files changed, 19 insertions, 5 deletions
diff --git a/cros_gralloc/cros_gralloc_types.h b/cros_gralloc/cros_gralloc_types.h
index 22f58e2..7c51778 100644
--- a/cros_gralloc/cros_gralloc_types.h
+++ b/cros_gralloc/cros_gralloc_types.h
@@ -9,6 +9,11 @@
#include <string>
+// Reserve the GRALLOC_USAGE_PRIVATE_0 bit from hardware/gralloc.h for buffers
+// used for front rendering. minigbm backend later decides to use
+// BO_USE_FRONT_RENDERING or BO_USE_LINEAR upon buffer allocaton.
+#define BUFFER_USAGE_FRONT_RENDERING (1U << 28)
+
struct cros_gralloc_buffer_descriptor {
uint32_t width;
uint32_t height;
diff --git a/cros_gralloc/gralloc0/gralloc0.cc b/cros_gralloc/gralloc0/gralloc0.cc
index 8570150..b322bee 100644
--- a/cros_gralloc/gralloc0/gralloc0.cc
+++ b/cros_gralloc/gralloc0/gralloc0.cc
@@ -71,11 +71,6 @@ enum {
// to support allocating with AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER.
#define BUFFER_USAGE_GPU_DATA_BUFFER (1 << 24)
-// Reserve the GRALLOC_USAGE_PRIVATE_0 bit for buffers used for front rendering.
-// minigbm backend later decides to use BO_USE_FRONT_RENDERING or BO_USE_LINEAR
-// upon buffer allocaton.
-#define BUFFER_USAGE_FRONT_RENDERING GRALLOC_USAGE_PRIVATE_0
-
static uint64_t gralloc0_convert_usage(int usage)
{
uint64_t use_flags = BO_USE_NONE;
diff --git a/cros_gralloc/gralloc3/CrosGralloc3Utils.cc b/cros_gralloc/gralloc3/CrosGralloc3Utils.cc
index f0ac207..d15c431 100644
--- a/cros_gralloc/gralloc3/CrosGralloc3Utils.cc
+++ b/cros_gralloc/gralloc3/CrosGralloc3Utils.cc
@@ -161,6 +161,10 @@ std::string getUsageString(hidl_bitfield<BufferUsage> bufferUsage) {
usage &= ~static_cast<Underlying>(BufferUsage::GPU_DATA_BUFFER);
usages.push_back("BufferUsage::GPU_DATA_BUFFER");
}
+ if (usage & BUFFER_USAGE_FRONT_RENDERING) {
+ usage &= ~static_cast<Underlying>(BUFFER_USAGE_FRONT_RENDERING);
+ usages.push_back("BUFFER_USAGE_FRONT_RENDERING");
+ }
if (usage) {
usages.push_back(android::base::StringPrintf("UnknownUsageBits-%" PRIu64, usage));
@@ -308,6 +312,9 @@ int convertToBufferUsage(uint64_t grallocUsage, uint64_t* outBufferUsage) {
if (grallocUsage & BufferUsage::GPU_DATA_BUFFER) {
bufferUsage |= BO_USE_GPU_DATA_BUFFER;
}
+ if (grallocUsage & BUFFER_USAGE_FRONT_RENDERING) {
+ bufferUsage |= BO_USE_FRONT_RENDERING;
+ }
*outBufferUsage = bufferUsage;
return 0;
diff --git a/cros_gralloc/gralloc4/CrosGralloc4Utils.cc b/cros_gralloc/gralloc4/CrosGralloc4Utils.cc
index 55c0855..e2940cc 100644
--- a/cros_gralloc/gralloc4/CrosGralloc4Utils.cc
+++ b/cros_gralloc/gralloc4/CrosGralloc4Utils.cc
@@ -165,6 +165,10 @@ std::string getUsageString(hidl_bitfield<BufferUsage> bufferUsage) {
usage &= ~static_cast<Underlying>(BufferUsage::GPU_DATA_BUFFER);
usages.push_back("BufferUsage::GPU_DATA_BUFFER");
}
+ if (usage & BUFFER_USAGE_FRONT_RENDERING) {
+ usage &= ~static_cast<Underlying>(BUFFER_USAGE_FRONT_RENDERING);
+ usages.push_back("BUFFER_USAGE_FRONT_RENDERING");
+ }
if (usage) {
usages.push_back(android::base::StringPrintf("UnknownUsageBits-%" PRIu64, usage));
@@ -312,6 +316,9 @@ int convertToBufferUsage(uint64_t grallocUsage, uint64_t* outBufferUsage) {
if (grallocUsage & BufferUsage::GPU_DATA_BUFFER) {
bufferUsage |= BO_USE_GPU_DATA_BUFFER;
}
+ if (grallocUsage & BUFFER_USAGE_FRONT_RENDERING) {
+ bufferUsage |= BO_USE_FRONT_RENDERING;
+ }
*outBufferUsage = bufferUsage;
return 0;