summaryrefslogtreecommitdiff
path: root/gralloc4/src/core/mali_gralloc_bufferallocation.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gralloc4/src/core/mali_gralloc_bufferallocation.cpp')
-rw-r--r--gralloc4/src/core/mali_gralloc_bufferallocation.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/gralloc4/src/core/mali_gralloc_bufferallocation.cpp b/gralloc4/src/core/mali_gralloc_bufferallocation.cpp
index 12e4494..3718816 100644
--- a/gralloc4/src/core/mali_gralloc_bufferallocation.cpp
+++ b/gralloc4/src/core/mali_gralloc_bufferallocation.cpp
@@ -977,6 +977,16 @@ static int prepare_descriptor_exynos_formats(
return 0;
}
+static bool validate_usage(const uint64_t usage) {
+ if (usage & GRALLOC_USAGE_FRONT_BUFFER) {
+ /* TODO(b/218383959): Enable front buffer rendering */
+ MALI_GRALLOC_LOGW("Front buffer rendering is disabled.");
+ return false;
+ }
+
+ return true;
+}
+
int mali_gralloc_derive_format_and_size(buffer_descriptor_t * const bufDescriptor)
{
alloc_type_t alloc_type{};
@@ -985,6 +995,11 @@ int mali_gralloc_derive_format_and_size(buffer_descriptor_t * const bufDescripto
int alloc_height = bufDescriptor->height;
uint64_t usage = bufDescriptor->producer_usage | bufDescriptor->consumer_usage;
+ if (!validate_usage(usage)) {
+ MALI_GRALLOC_LOGE("Usage flag validation failed.");
+ return -EINVAL;
+ }
+
/*
* Select optimal internal pixel format based upon
* usage and requested format.