summaryrefslogtreecommitdiff
path: root/libs/hwui/renderthread/VulkanManager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/hwui/renderthread/VulkanManager.cpp')
-rw-r--r--libs/hwui/renderthread/VulkanManager.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/hwui/renderthread/VulkanManager.cpp b/libs/hwui/renderthread/VulkanManager.cpp
index 35729c1b6496..ac62ff47f50a 100644
--- a/libs/hwui/renderthread/VulkanManager.cpp
+++ b/libs/hwui/renderthread/VulkanManager.cpp
@@ -494,6 +494,12 @@ void VulkanManager::swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect)
mDeviceWaitIdle(mDevice);
}
+ VulkanSurface::NativeBufferInfo* bufferInfo = surface->getCurrentBufferInfo();
+ if (!bufferInfo) {
+ // If VulkanSurface::dequeueNativeBuffer failed earlier, then swapBuffers is a no-op.
+ return;
+ }
+
VkExportSemaphoreCreateInfo exportInfo;
exportInfo.sType = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO;
exportInfo.pNext = nullptr;
@@ -510,8 +516,6 @@ void VulkanManager::swapBuffers(VulkanSurface* surface, const SkRect& dirtyRect)
GrBackendSemaphore backendSemaphore;
backendSemaphore.initVulkan(semaphore);
- VulkanSurface::NativeBufferInfo* bufferInfo = surface->getCurrentBufferInfo();
-
int fenceFd = -1;
GrSemaphoresSubmitted submitted =
bufferInfo->skSurface->flush(SkSurface::BackendSurfaceAccess::kPresent,