summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2024-04-26 15:31:37 -0400
committer John Reck <jreck@google.com> 2024-04-26 15:32:54 -0400
commit1391d8ee77c9fb4147e84be17892c7e0b95766c6 (patch)
treefb76b29f78d4d91792da71e8a2747b7f3b413f1b
parente234e53b6fd78784d691c94b8b47ef792bd19e89 (diff)
Don't call set_buffer_count for single buffer surfaces
Fixes: 296145618 Test: atest android.graphics.cts.HardwareRendererTest#lockHardwareCanvasSingleBuffer Change-Id: I1513d6f484e44cb27a7683594899f99e0d802c2b
-rw-r--r--libs/hwui/renderthread/VulkanSurface.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/libs/hwui/renderthread/VulkanSurface.cpp b/libs/hwui/renderthread/VulkanSurface.cpp
index a8e85475aff0..0f29613cad33 100644
--- a/libs/hwui/renderthread/VulkanSurface.cpp
+++ b/libs/hwui/renderthread/VulkanSurface.cpp
@@ -322,11 +322,16 @@ bool VulkanSurface::UpdateWindow(ANativeWindow* window, const WindowInfo& window
return false;
}
- err = native_window_set_buffer_count(window, windowInfo.bufferCount);
- if (err != 0) {
- ALOGE("VulkanSurface::UpdateWindow() native_window_set_buffer_count(%zu) failed: %s (%d)",
- windowInfo.bufferCount, strerror(-err), err);
- return false;
+ // If bufferCount == 1 then we're in shared buffer mode and we cannot actually call
+ // set_buffer_count, it'll just fail.
+ if (windowInfo.bufferCount > 1) {
+ err = native_window_set_buffer_count(window, windowInfo.bufferCount);
+ if (err != 0) {
+ ALOGE("VulkanSurface::UpdateWindow() native_window_set_buffer_count(%zu) failed: %s "
+ "(%d)",
+ windowInfo.bufferCount, strerror(-err), err);
+ return false;
+ }
}
err = native_window_set_usage(window, windowInfo.windowUsageFlags);