summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <treehugger-gerrit@google.com> 2022-07-25 23:51:03 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-07-25 23:51:03 +0000
commit06141f436b3f9eb446c40f24c4fb45012b4f63a3 (patch)
tree19a1468b000c3c8bfaea4f429e7395a245244514
parentbd234ad1a3a3ed1de5cb0914d3f456cc414a62f4 (diff)
parent643895a5c9731b2b1ab760903a62a7bdd0ad483b (diff)
Merge "vulkan: respect consumer default dataspace upon PASS_THROUGH" am: eae8088caa am: 885d6146e9 am: 643895a5c9
Original change: https://android-review.googlesource.com/c/platform/frameworks/native/+/2162752 Change-Id: I7986009e46d9eb071b2db193caf88687cf02e6ee Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--libs/gui/Surface.cpp1
-rw-r--r--vulkan/libvulkan/swapchain.cpp14
2 files changed, 10 insertions, 5 deletions
diff --git a/libs/gui/Surface.cpp b/libs/gui/Surface.cpp
index 54b6d6a549..6b544b2b96 100644
--- a/libs/gui/Surface.cpp
+++ b/libs/gui/Surface.cpp
@@ -1943,6 +1943,7 @@ int Surface::disconnect(int api, IGraphicBufferProducer::DisconnectMode mode) {
mReqHeight = 0;
mReqUsage = 0;
mCrop.clear();
+ mDataSpace = Dataspace::UNKNOWN;
mScalingMode = NATIVE_WINDOW_SCALING_MODE_FREEZE;
mTransform = 0;
mStickyTransform = 0;
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp
index b44c60ef60..5ff9399a86 100644
--- a/vulkan/libvulkan/swapchain.cpp
+++ b/vulkan/libvulkan/swapchain.cpp
@@ -1238,11 +1238,15 @@ VkResult CreateSwapchainKHR(VkDevice device,
decodePixelFormat(native_pixel_format).c_str(), strerror(-err), err);
return VK_ERROR_SURFACE_LOST_KHR;
}
- err = native_window_set_buffers_data_space(window, native_dataspace);
- if (err != android::OK) {
- ALOGE("native_window_set_buffers_data_space(%d) failed: %s (%d)",
- native_dataspace, strerror(-err), err);
- return VK_ERROR_SURFACE_LOST_KHR;
+
+ /* Respect consumer default dataspace upon HAL_DATASPACE_ARBITRARY. */
+ if (native_dataspace != HAL_DATASPACE_ARBITRARY) {
+ err = native_window_set_buffers_data_space(window, native_dataspace);
+ if (err != android::OK) {
+ ALOGE("native_window_set_buffers_data_space(%d) failed: %s (%d)",
+ native_dataspace, strerror(-err), err);
+ return VK_ERROR_SURFACE_LOST_KHR;
+ }
}
err = native_window_set_buffers_dimensions(