Merge "hwc2: Fix ubwc flags for fb target"
This commit is contained in:
committed by
Gerrit - the friendly Code Review server
commit
5dc66c8133
@@ -49,13 +49,6 @@ BufferManager::BufferManager() : next_id_(0) {
|
|||||||
map_fb_mem_ = true;
|
map_fb_mem_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable UBWC for framebuffer
|
|
||||||
if ((property_get("debug.gralloc.enable_fb_ubwc", property, NULL) > 0) &&
|
|
||||||
(!strncmp(property, "1", PROPERTY_VALUE_MAX) ||
|
|
||||||
(!strncasecmp(property, "true", PROPERTY_VALUE_MAX)))) {
|
|
||||||
ubwc_for_fb_ = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
handles_map_.clear();
|
handles_map_.clear();
|
||||||
allocator_ = new Allocator();
|
allocator_ = new Allocator();
|
||||||
allocator_->Init();
|
allocator_->Init();
|
||||||
|
|||||||
@@ -118,7 +118,6 @@ class BufferManager {
|
|||||||
std::shared_ptr<Buffer> GetBufferFromHandleLocked(const private_handle_t *hnd);
|
std::shared_ptr<Buffer> GetBufferFromHandleLocked(const private_handle_t *hnd);
|
||||||
|
|
||||||
bool map_fb_mem_ = false;
|
bool map_fb_mem_ = false;
|
||||||
bool ubwc_for_fb_ = false;
|
|
||||||
Allocator *allocator_ = NULL;
|
Allocator *allocator_ = NULL;
|
||||||
std::mutex buffer_lock_;
|
std::mutex buffer_lock_;
|
||||||
std::mutex descriptor_lock_;
|
std::mutex descriptor_lock_;
|
||||||
|
|||||||
@@ -153,6 +153,9 @@ void HWCBufferAllocator::GetAlignedWidthAndHeight(int width, int height, int for
|
|||||||
if (alloc_type & GRALLOC_USAGE_HW_FB) {
|
if (alloc_type & GRALLOC_USAGE_HW_FB) {
|
||||||
consumer_usage = GRALLOC1_CONSUMER_USAGE_CLIENT_TARGET;
|
consumer_usage = GRALLOC1_CONSUMER_USAGE_CLIENT_TARGET;
|
||||||
}
|
}
|
||||||
|
if (alloc_type & GRALLOC_USAGE_PRIVATE_ALLOC_UBWC) {
|
||||||
|
producer_usage = GRALLOC_USAGE_PRIVATE_ALLOC_UBWC;
|
||||||
|
}
|
||||||
|
|
||||||
Perform_(gralloc_device_, GRALLOC_MODULE_PERFORM_GET_ATTRIBUTES, width, height, format,
|
Perform_(gralloc_device_, GRALLOC_MODULE_PERFORM_GET_ATTRIBUTES, width, height, format,
|
||||||
producer_usage, consumer_usage, aligned_width, aligned_height, &tile_enabled);
|
producer_usage, consumer_usage, aligned_width, aligned_height, &tile_enabled);
|
||||||
|
|||||||
@@ -1483,10 +1483,13 @@ int HWCDisplay::SetFrameBufferResolution(uint32_t x_pixels, uint32_t y_pixels) {
|
|||||||
int aligned_height;
|
int aligned_height;
|
||||||
uint32_t usage = GRALLOC_USAGE_HW_FB;
|
uint32_t usage = GRALLOC_USAGE_HW_FB;
|
||||||
int format = HAL_PIXEL_FORMAT_RGBA_8888;
|
int format = HAL_PIXEL_FORMAT_RGBA_8888;
|
||||||
int ubwc_enabled = 0;
|
int ubwc_disabled = 0;
|
||||||
int flags = 0;
|
int flags = 0;
|
||||||
HWCDebugHandler::Get()->GetProperty("debug.gralloc.enable_fb_ubwc", &ubwc_enabled);
|
|
||||||
if (ubwc_enabled == 1) {
|
// By default UBWC is enabled and below property is global enable/disable for all
|
||||||
|
// buffers allocated through gralloc , including framebuffer targets.
|
||||||
|
HWCDebugHandler::Get()->GetProperty("debug.gralloc.gfx_ubwc_disable", &ubwc_disabled);
|
||||||
|
if (!ubwc_disabled) {
|
||||||
usage |= GRALLOC_USAGE_PRIVATE_ALLOC_UBWC;
|
usage |= GRALLOC_USAGE_PRIVATE_ALLOC_UBWC;
|
||||||
flags |= private_handle_t::PRIV_FLAGS_UBWC_ALIGNED;
|
flags |= private_handle_t::PRIV_FLAGS_UBWC_ALIGNED;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user