summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Valerie Hau <vhau@google.com> 2019-01-31 14:23:43 -0800
committer Valerie Hau <vhau@google.com> 2019-02-01 09:59:38 -0800
commit250c654efecb084f5da8157eae2e210a4eddf19f (patch)
tree6859d5ee4bb2a46f6c27247caf25544379298b4a
parent4701f467ea47478ee26b7a7caf997a36bab54143 (diff)
Adding optional 3.0 lock support to GraphicBuffer
Adding optional 3.0 lock parameters to GraphicBuffer Modifying isSupported to isLoaded Bug: 123423521 Test: build, boot Change-Id: If4a92bd7916072c2cd7005ca6f332f4a90098d27
-rw-r--r--libs/ui/Gralloc2.cpp4
-rw-r--r--libs/ui/Gralloc3.cpp4
-rw-r--r--libs/ui/GraphicBuffer.cpp16
-rw-r--r--libs/ui/GraphicBufferAllocator.cpp4
-rw-r--r--libs/ui/GraphicBufferMapper.cpp4
-rw-r--r--libs/ui/include/ui/Gralloc.h4
-rw-r--r--libs/ui/include/ui/Gralloc2.h4
-rw-r--r--libs/ui/include/ui/Gralloc3.h4
-rw-r--r--libs/ui/include/ui/GraphicBuffer.h8
9 files changed, 28 insertions, 24 deletions
diff --git a/libs/ui/Gralloc2.cpp b/libs/ui/Gralloc2.cpp
index 2c4b5f32b1..92ea07cbc4 100644
--- a/libs/ui/Gralloc2.cpp
+++ b/libs/ui/Gralloc2.cpp
@@ -94,7 +94,7 @@ Gralloc2Mapper::Gralloc2Mapper() {
mMapperV2_1 = IMapper::castFrom(mMapper);
}
-bool Gralloc2Mapper::isSupported() const {
+bool Gralloc2Mapper::isLoaded() const {
return mMapper != nullptr;
}
@@ -359,7 +359,7 @@ Gralloc2Allocator::Gralloc2Allocator(const Gralloc2Mapper& mapper) : mMapper(map
}
}
-bool Gralloc2Allocator::isSupported() const {
+bool Gralloc2Allocator::isLoaded() const {
return mAllocator != nullptr;
}
diff --git a/libs/ui/Gralloc3.cpp b/libs/ui/Gralloc3.cpp
index acb6b01188..306a74b80c 100644
--- a/libs/ui/Gralloc3.cpp
+++ b/libs/ui/Gralloc3.cpp
@@ -92,7 +92,7 @@ Gralloc3Mapper::Gralloc3Mapper() {
}
}
-bool Gralloc3Mapper::isSupported() const {
+bool Gralloc3Mapper::isLoaded() const {
return mMapper != nullptr;
}
@@ -322,7 +322,7 @@ Gralloc3Allocator::Gralloc3Allocator(const Gralloc3Mapper& mapper) : mMapper(map
}
}
-bool Gralloc3Allocator::isSupported() const {
+bool Gralloc3Allocator::isLoaded() const {
return mAllocator != nullptr;
}
diff --git a/libs/ui/GraphicBuffer.cpp b/libs/ui/GraphicBuffer.cpp
index da24cf1c06..15597eb666 100644
--- a/libs/ui/GraphicBuffer.cpp
+++ b/libs/ui/GraphicBuffer.cpp
@@ -236,15 +236,15 @@ status_t GraphicBuffer::initWithHandle(const native_handle_t* inHandle, HandleWr
return NO_ERROR;
}
-status_t GraphicBuffer::lock(uint32_t inUsage, void** vaddr)
-{
+status_t GraphicBuffer::lock(uint32_t inUsage, void** vaddr, int32_t* outBytesPerPixel,
+ int32_t* outBytesPerStride) {
const Rect lockBounds(width, height);
- status_t res = lock(inUsage, lockBounds, vaddr);
+ status_t res = lock(inUsage, lockBounds, vaddr, outBytesPerPixel, outBytesPerStride);
return res;
}
-status_t GraphicBuffer::lock(uint32_t inUsage, const Rect& rect, void** vaddr)
-{
+status_t GraphicBuffer::lock(uint32_t inUsage, const Rect& rect, void** vaddr,
+ int32_t* outBytesPerPixel, int32_t* outBytesPerStride) {
if (rect.left < 0 || rect.right > width ||
rect.top < 0 || rect.bottom > height) {
ALOGE("locking pixels (%d,%d,%d,%d) outside of buffer (w=%d, h=%d)",
@@ -252,10 +252,10 @@ status_t GraphicBuffer::lock(uint32_t inUsage, const Rect& rect, void** vaddr)
width, height);
return BAD_VALUE;
}
- int32_t bytesPerPixel, bytesPerStride;
- status_t res =
- getBufferMapper().lock(handle, inUsage, rect, vaddr, &bytesPerPixel, &bytesPerStride);
+ status_t res = getBufferMapper().lock(handle, inUsage, rect, vaddr, outBytesPerPixel,
+ outBytesPerStride);
+
return res;
}
diff --git a/libs/ui/GraphicBufferAllocator.cpp b/libs/ui/GraphicBufferAllocator.cpp
index efb5798167..5a67dc4a4d 100644
--- a/libs/ui/GraphicBufferAllocator.cpp
+++ b/libs/ui/GraphicBufferAllocator.cpp
@@ -48,12 +48,12 @@ KeyedVector<buffer_handle_t,
GraphicBufferAllocator::GraphicBufferAllocator() : mMapper(GraphicBufferMapper::getInstance()) {
mAllocator = std::make_unique<const Gralloc3Allocator>(
reinterpret_cast<const Gralloc3Mapper&>(mMapper.getGrallocMapper()));
- if (!mAllocator->isSupported()) {
+ if (!mAllocator->isLoaded()) {
mAllocator = std::make_unique<const Gralloc2Allocator>(
reinterpret_cast<const Gralloc2Mapper&>(mMapper.getGrallocMapper()));
}
- if (!mAllocator->isSupported()) {
+ if (!mAllocator->isLoaded()) {
LOG_ALWAYS_FATAL("gralloc-allocator is missing");
}
}
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp
index 9e36377c3d..79c333fce4 100644
--- a/libs/ui/GraphicBufferMapper.cpp
+++ b/libs/ui/GraphicBufferMapper.cpp
@@ -51,11 +51,11 @@ void GraphicBufferMapper::preloadHal() {
GraphicBufferMapper::GraphicBufferMapper() {
mMapper = std::make_unique<const Gralloc3Mapper>();
- if (!mMapper->isSupported()) {
+ if (!mMapper->isLoaded()) {
mMapper = std::make_unique<const Gralloc2Mapper>();
}
- if (!mMapper->isSupported()) {
+ if (!mMapper->isLoaded()) {
LOG_ALWAYS_FATAL("gralloc-mapper is missing");
}
}
diff --git a/libs/ui/include/ui/Gralloc.h b/libs/ui/include/ui/Gralloc.h
index a484bce4df..1b8a930c4c 100644
--- a/libs/ui/include/ui/Gralloc.h
+++ b/libs/ui/include/ui/Gralloc.h
@@ -31,7 +31,7 @@ class GrallocMapper {
public:
virtual ~GrallocMapper();
- virtual bool isSupported() const = 0;
+ virtual bool isLoaded() const = 0;
virtual status_t createDescriptor(void* bufferDescriptorInfo,
void* outBufferDescriptor) const = 0;
@@ -74,7 +74,7 @@ class GrallocAllocator {
public:
virtual ~GrallocAllocator();
- virtual bool isSupported() const = 0;
+ virtual bool isLoaded() const = 0;
virtual std::string dumpDebugInfo() const = 0;
diff --git a/libs/ui/include/ui/Gralloc2.h b/libs/ui/include/ui/Gralloc2.h
index b23d8f77e4..4ef9b51e4f 100644
--- a/libs/ui/include/ui/Gralloc2.h
+++ b/libs/ui/include/ui/Gralloc2.h
@@ -36,7 +36,7 @@ public:
Gralloc2Mapper();
- bool isSupported() const override;
+ bool isLoaded() const override;
status_t createDescriptor(void* bufferDescriptorInfo, void* outBufferDescriptor) const override;
@@ -76,7 +76,7 @@ public:
// time.
Gralloc2Allocator(const Gralloc2Mapper& mapper);
- bool isSupported() const override;
+ bool isLoaded() const override;
std::string dumpDebugInfo() const override;
diff --git a/libs/ui/include/ui/Gralloc3.h b/libs/ui/include/ui/Gralloc3.h
index b0cbcc1300..879e96ed40 100644
--- a/libs/ui/include/ui/Gralloc3.h
+++ b/libs/ui/include/ui/Gralloc3.h
@@ -35,7 +35,7 @@ public:
Gralloc3Mapper();
- bool isSupported() const override;
+ bool isLoaded() const override;
status_t createDescriptor(void* bufferDescriptorInfo, void* outBufferDescriptor) const override;
@@ -74,7 +74,7 @@ public:
// time.
Gralloc3Allocator(const Gralloc3Mapper& mapper);
- bool isSupported() const override;
+ bool isLoaded() const override;
std::string dumpDebugInfo() const override;
diff --git a/libs/ui/include/ui/GraphicBuffer.h b/libs/ui/include/ui/GraphicBuffer.h
index b73ca2b793..18a27a01dd 100644
--- a/libs/ui/include/ui/GraphicBuffer.h
+++ b/libs/ui/include/ui/GraphicBuffer.h
@@ -169,8 +169,12 @@ public:
bool needsReallocation(uint32_t inWidth, uint32_t inHeight,
PixelFormat inFormat, uint32_t inLayerCount, uint64_t inUsage);
- status_t lock(uint32_t inUsage, void** vaddr);
- status_t lock(uint32_t inUsage, const Rect& rect, void** vaddr);
+ // For the following two lock functions, if bytesPerStride or bytesPerPixel
+ // are unknown or variable, -1 will be returned
+ status_t lock(uint32_t inUsage, void** vaddr, int32_t* outBytesPerPixel = nullptr,
+ int32_t* outBytesPerStride = nullptr);
+ status_t lock(uint32_t inUsage, const Rect& rect, void** vaddr,
+ int32_t* outBytesPerPixel = nullptr, int32_t* outBytesPerStride = nullptr);
// For HAL_PIXEL_FORMAT_YCbCr_420_888
status_t lockYCbCr(uint32_t inUsage, android_ycbcr *ycbcr);
status_t lockYCbCr(uint32_t inUsage, const Rect& rect,