summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Callanan <spyffe@google.com>2018-11-14 22:11:24 +0000
committerSean Callanan <spyffe@google.com>2018-11-14 22:11:24 +0000
commit0424756e358fd1e660fd0142a451127fc75933ec (patch)
treeaaad4abd64e2d9a651a575c853e043043ac500af
parent57d535691169a0917de3b6b9d5c042b7f786438f (diff)
downloaddisplay-0424756e358fd1e660fd0142a451127fc75933ec.tar.gz
Revert "Revert "Gralloc: Disable AHardwareBuffer""
This reverts commit 57d535691169a0917de3b6b9d5c042b7f786438f. Reason for revert: Unblock Night Sight Bug: 118982104 Change-Id: I693fa1b24bcaf28105508df37f87ab717339fcfe
-rw-r--r--gralloc/gr_adreno_info.cpp9
-rw-r--r--gralloc/gr_adreno_info.h1
-rw-r--r--gralloc/gr_utils.cpp5
-rw-r--r--gralloc/gralloc_priv.h1
4 files changed, 16 insertions, 0 deletions
diff --git a/gralloc/gr_adreno_info.cpp b/gralloc/gr_adreno_info.cpp
index 051f965e..895c6589 100644
--- a/gralloc/gr_adreno_info.cpp
+++ b/gralloc/gr_adreno_info.cpp
@@ -87,6 +87,11 @@ AdrenoMemInfo::AdrenoMemInfo() {
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() {
@@ -264,6 +269,10 @@ uint32_t AdrenoMemInfo::AdrenoGetAlignedGpuBufferSize(void *metadata_blob) {
}
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 eec7da49..88d09d59 100644
--- a/gralloc/gr_adreno_info.h
+++ b/gralloc/gr_adreno_info.h
@@ -187,6 +187,7 @@ class AdrenoMemInfo {
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 4e12e01d..bc15166b 100644
--- a/gralloc/gr_utils.cpp
+++ b/gralloc/gr_utils.cpp
@@ -226,6 +226,11 @@ unsigned int GetSize(const BufferInfo &info, unsigned int alignedw, unsigned int
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 be53d8bb..2cc236af 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")