diff options
Diffstat (limited to 'libs/hwui/renderthread/VulkanManager.cpp')
-rw-r--r-- | libs/hwui/renderthread/VulkanManager.cpp | 8 |
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, |