diff options
| author | 2022-07-25 23:51:03 +0000 | |
|---|---|---|
| committer | 2022-07-25 23:51:03 +0000 | |
| commit | 06141f436b3f9eb446c40f24c4fb45012b4f63a3 (patch) | |
| tree | 19a1468b000c3c8bfaea4f429e7395a245244514 | |
| parent | bd234ad1a3a3ed1de5cb0914d3f456cc414a62f4 (diff) | |
| parent | 643895a5c9731b2b1ab760903a62a7bdd0ad483b (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.cpp | 1 | ||||
| -rw-r--r-- | vulkan/libvulkan/swapchain.cpp | 14 |
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( |