summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuan Song <huans@google.com>2021-05-03 18:10:08 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2021-05-03 18:10:08 +0000
commit1674b2b8daaf83bdfa7859800ecaeba9a9535f41 (patch)
treec461b5e58ec94a81e3c06e290d7fed175d46e7bc
parent12073407c3f3003f2823e150153981c8d1ee4dd3 (diff)
parentfaab2f91aafd0504faaa056368245394f087a5d2 (diff)
downloadvulkan-cereal-1674b2b8daaf83bdfa7859800ecaeba9a9535f41.tar.gz
Add new rc command for multi display am: 33f99373d8 am: faab2f91aa
Original change: https://android-review.googlesource.com/c/device/generic/vulkan-cereal/+/1692654 Change-Id: I3a20976954063a71c06160aa1fbf1b8b4168cddf
-rw-r--r--protocols/renderControl/renderControl.in2
-rw-r--r--stream-servers/FrameBuffer.cpp4
-rw-r--r--stream-servers/FrameBuffer.h3
-rw-r--r--stream-servers/RenderControl.cpp10
4 files changed, 17 insertions, 2 deletions
diff --git a/protocols/renderControl/renderControl.in b/protocols/renderControl/renderControl.in
index 47c41c66..031dd0e3 100644
--- a/protocols/renderControl/renderControl.in
+++ b/protocols/renderControl/renderControl.in
@@ -60,4 +60,4 @@ GL_ENTRY(void, rcComposeAsync, uint32_t bufferSize, void *buffer);
GL_ENTRY(void, rcDestroySyncKHRAsync, uint64_t sync);
GL_ENTRY(GLint, rcComposeWithoutPost, uint32_t bufferSize, void *buffer);
GL_ENTRY(void, rcComposeAsyncWithoutPost, uint32_t bufferSize, void *buffer);
-
+GL_ENTRY(int, rcCreateDisplayById, uint32_t displayId);
diff --git a/stream-servers/FrameBuffer.cpp b/stream-servers/FrameBuffer.cpp
index 00d4c03f..41f8ea3a 100644
--- a/stream-servers/FrameBuffer.cpp
+++ b/stream-servers/FrameBuffer.cpp
@@ -3184,6 +3184,10 @@ int FrameBuffer::createDisplay(uint32_t *displayId) {
return emugl::get_emugl_multi_display_operations().createDisplay(displayId);
}
+int FrameBuffer::createDisplay(uint32_t displayId) {
+ return emugl::get_emugl_multi_display_operations().createDisplay(&displayId);
+}
+
int FrameBuffer::destroyDisplay(uint32_t displayId) {
return emugl::get_emugl_multi_display_operations().destroyDisplay(displayId);
}
diff --git a/stream-servers/FrameBuffer.h b/stream-servers/FrameBuffer.h
index 08f4e4dc..88a7bcf1 100644
--- a/stream-servers/FrameBuffer.h
+++ b/stream-servers/FrameBuffer.h
@@ -542,7 +542,8 @@ class FrameBuffer {
void registerProcessSequenceNumberForPuid(uint64_t puid);
uint32_t* getProcessSequenceNumberPtr(uint64_t puid);
- int createDisplay(uint32_t* displayId);
+ int createDisplay(uint32_t *displayId);
+ int createDisplay(uint32_t displayId);
int destroyDisplay(uint32_t displayId);
int setDisplayColorBuffer(uint32_t displayId, uint32_t colorBuffer);
int getDisplayColorBuffer(uint32_t displayId, uint32_t* colorBuffer);
diff --git a/stream-servers/RenderControl.cpp b/stream-servers/RenderControl.cpp
index 8c6e2af2..3ef5cc3f 100644
--- a/stream-servers/RenderControl.cpp
+++ b/stream-servers/RenderControl.cpp
@@ -1274,6 +1274,15 @@ static int rcCreateDisplay(uint32_t* displayId) {
return fb->createDisplay(displayId);
}
+static int rcCreateDisplayById(uint32_t displayId) {
+ FrameBuffer *fb = FrameBuffer::getFB();
+ if (!fb) {
+ return -1;
+ }
+
+ return fb->createDisplay(displayId);
+}
+
static int rcDestroyDisplay(uint32_t displayId) {
FrameBuffer *fb = FrameBuffer::getFB();
if (!fb) {
@@ -1557,4 +1566,5 @@ void initRenderControlContext(renderControl_decoder_context_t *dec)
dec->rcDestroySyncKHRAsync = rcDestroySyncKHRAsync;
dec->rcComposeWithoutPost = rcComposeWithoutPost;
dec->rcComposeAsyncWithoutPost = rcComposeAsyncWithoutPost;
+ dec->rcCreateDisplayById = rcCreateDisplayById;
}