Revert "Revert "Gralloc: Disable AHardwareBuffer""
This reverts commit 57d535691169a0917de3b6b9d5c042b7f786438f.
Reason for revert: Unblock Night Sight
Bug: 118982104
Change-Id: I693fa1b24bcaf28105508df37f87ab717339fcfe
(cherry picked from commit 0424756e358fd1e660fd0142a451127fc75933ec)
diff --git a/gralloc/gr_adreno_info.cpp b/gralloc/gr_adreno_info.cpp
index acc2134..7943132 100644
--- a/gralloc/gr_adreno_info.cpp
+++ b/gralloc/gr_adreno_info.cpp
@@ -87,6 +87,11 @@
gfx_ubwc_disable_ = true;
}
+ property_get(ENABLE_AHARDWAREBUFFER_PROP, property, "0");
+ if (!(strncmp(property, "1", PROPERTY_VALUE_MAX)) ||
+ !(strncmp(property, "true", PROPERTY_VALUE_MAX))) {
+ gfx_ahardware_buffer_enable_ = true;
+ }
}
AdrenoMemInfo::~AdrenoMemInfo() {
@@ -262,6 +267,10 @@
}
bool AdrenoMemInfo::AdrenoSizeAPIAvaliable() {
+ if (!gfx_ahardware_buffer_enable_) {
+ return false;
+ }
+
return (LINK_adreno_get_metadata_blob_size && LINK_adreno_init_memory_layout &&
LINK_adreno_get_aligned_gpu_buffer_size);
}
diff --git a/gralloc/gr_adreno_info.h b/gralloc/gr_adreno_info.h
index eec7da4..88d09d5 100644
--- a/gralloc/gr_adreno_info.h
+++ b/gralloc/gr_adreno_info.h
@@ -187,6 +187,7 @@
uint32_t (*LINK_adreno_get_aligned_gpu_buffer_size)(void* metadata_blob) = NULL;
bool gfx_ubwc_disable_ = false;
+ bool gfx_ahardware_buffer_enable_ = false;
void *libadreno_utils_ = NULL;
static AdrenoMemInfo *s_instance;
diff --git a/gralloc/gr_utils.cpp b/gralloc/gr_utils.cpp
index 48d8bb5..e0c97b7 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -226,6 +226,11 @@
int height = info.height;
uint64_t usage = info.usage;
+ if ((usage & BufferUsage::GPU_MIPMAP_COMPLETE) || (usage & BufferUsage::GPU_CUBE_MAP)) {
+ ALOGE("Invalid GPU usage flags present 0x%" PRIx64, usage);
+ return 0;
+ }
+
if (IsUBwcEnabled(format, usage)) {
size = GetUBwcSize(width, height, format, alignedw, alignedh);
} else if (IsUncompressedRGBFormat(format)) {
diff --git a/gralloc/gralloc_priv.h b/gralloc/gralloc_priv.h
index be53d8b..2cc236a 100644
--- a/gralloc/gralloc_priv.h
+++ b/gralloc/gralloc_priv.h
@@ -28,6 +28,7 @@
#define GRALLOC_PROP(prop_name) GRALLOC_PROP_PREFIX prop_name
#define DISABLE_UBWC_PROP GRALLOC_PROP("disable_ubwc")
+#define ENABLE_AHARDWAREBUFFER_PROP GRALLOC_PROP("enable_ahardware_buffer")
#define ENABLE_FB_UBWC_PROP GRALLOC_PROP("enable_fb_ubwc")
#define MAP_FB_MEMORY_PROP GRALLOC_PROP("map_fb_memory")