swapchain: Fix auto-merger defect: Fix SHARED presentation modes
Part of aosp/1921342 did not end up in goog/master. This fixes that.
Test: dEQP.EGL/functional_mutable_render_buffer_basic
Bug: 209035115
Bug: 200378297
Change-Id: Id5bf9c5af8e60184f575517e3209482953535a20
diff --git a/vulkan/libvulkan/swapchain.cpp b/vulkan/libvulkan/swapchain.cpp
index e6717d7..4a6b4f1 100644
--- a/vulkan/libvulkan/swapchain.cpp
+++ b/vulkan/libvulkan/swapchain.cpp
@@ -1236,6 +1236,12 @@
return VK_ERROR_SURFACE_LOST_KHR;
}
+ // In shared mode the num_images must be one regardless of how many
+ // buffers were allocated for the buffer queue.
+ if (swapchain_image_usage & VK_SWAPCHAIN_IMAGE_USAGE_SHARED_BIT_ANDROID) {
+ num_images = 1;
+ }
+
int32_t legacy_usage = 0;
if (dispatch.GetSwapchainGrallocUsage2ANDROID) {
uint64_t consumer_usage, producer_usage;