diff options
author | Sean Callanan <spyffe@google.com> | 2018-11-14 22:11:24 +0000 |
---|---|---|
committer | Sean Callanan <spyffe@google.com> | 2018-11-14 22:11:24 +0000 |
commit | 0424756e358fd1e660fd0142a451127fc75933ec (patch) | |
tree | aaad4abd64e2d9a651a575c853e043043ac500af | |
parent | 57d535691169a0917de3b6b9d5c042b7f786438f (diff) | |
download | display-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.cpp | 9 | ||||
-rw-r--r-- | gralloc/gr_adreno_info.h | 1 | ||||
-rw-r--r-- | gralloc/gr_utils.cpp | 5 | ||||
-rw-r--r-- | gralloc/gralloc_priv.h | 1 |
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") |