summaryrefslogtreecommitdiff
path: root/libs/ui/GraphicBufferMapper.cpp
diff options
context:
space:
mode:
author Marissa Wall <marissaw@google.com> 2018-12-29 14:27:11 -0800
committer Marissa Wall <marissaw@google.com> 2019-01-14 14:08:53 -0800
commit925bf7fe6681fe2981522cd9de54ceb2565bc7f4 (patch)
tree0e2a1a63241c4a2c2ddb425080cedbcef6a937f6 /libs/ui/GraphicBufferMapper.cpp
parentd380e2c463f461cba82536043c1b2cd573f678ef (diff)
gralloc: add allocator and mapper 3.0 support to SF
Add support for IAllocator and IMapper 3.0 support to SurfaceFlinger. Bug: 120493579 Test: manual Change-Id: I8b7311cfa6b58502b334460d65eb66715ef429e8
Diffstat (limited to 'libs/ui/GraphicBufferMapper.cpp')
-rw-r--r--libs/ui/GraphicBufferMapper.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/libs/ui/GraphicBufferMapper.cpp b/libs/ui/GraphicBufferMapper.cpp
index d7bf4d558c..b04932938c 100644
--- a/libs/ui/GraphicBufferMapper.cpp
+++ b/libs/ui/GraphicBufferMapper.cpp
@@ -34,6 +34,7 @@
#include <ui/Gralloc.h>
#include <ui/Gralloc2.h>
+#include <ui/Gralloc3.h>
#include <ui/GraphicBuffer.h>
#include <system/graphics.h>
@@ -45,9 +46,19 @@ ANDROID_SINGLETON_STATIC_INSTANCE( GraphicBufferMapper )
void GraphicBufferMapper::preloadHal() {
Gralloc2Mapper::preload();
+ Gralloc3Mapper::preload();
}
-GraphicBufferMapper::GraphicBufferMapper() : mMapper(std::make_unique<const Gralloc2Mapper>()) {}
+GraphicBufferMapper::GraphicBufferMapper() {
+ mMapper = std::make_unique<const Gralloc3Mapper>();
+ if (!mMapper->isSupported()) {
+ mMapper = std::make_unique<const Gralloc2Mapper>();
+ }
+
+ if (!mMapper->isSupported()) {
+ LOG_ALWAYS_FATAL("gralloc-mapper is missing");
+ }
+}
status_t GraphicBufferMapper::importBuffer(buffer_handle_t rawHandle,
uint32_t width, uint32_t height, uint32_t layerCount,