From 6b38a7916ad8a453ff828dea48709b3b86675789 Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Tue, 15 Dec 2020 06:19:48 +0100
Subject: [PATCH] (Vulkan) Simplify code

---
 gfx/drivers/vulkan.c | 90 +++++++++++++++++++++++---------------------
 1 file changed, 48 insertions(+), 42 deletions(-)

diff --git a/gfx/drivers/vulkan.c b/gfx/drivers/vulkan.c
index 73ce2230bb..4cf761bcb6 100644
--- a/gfx/drivers/vulkan.c
+++ b/gfx/drivers/vulkan.c
@@ -2080,52 +2080,58 @@ static bool vulkan_frame(void *data, const void *frame,
     */
    vulkan_filter_chain_end_frame((vulkan_filter_chain_t*)vk->filter_chain, vk->cmd);
 
-   if (
-         backbuffer->image != VK_NULL_HANDLE &&
-         vk->context->has_acquired_swapchain &&
-         (vk->readback.pending || vk->readback.streamed))
+   if ( 
+         backbuffer->image != VK_NULL_HANDLE
+         && vk->context->has_acquired_swapchain
+      )
    {
-      /* We cannot safely read back from an image which
-       * has already been presented as we need to
-       * maintain the PRESENT_SRC_KHR layout.
-       *
-       * If we're reading back, perform the readback before presenting.
-       */
-      VULKAN_IMAGE_LAYOUT_TRANSITION(
-            vk->cmd, backbuffer->image,
-            VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-            VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-            VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-            VK_ACCESS_TRANSFER_READ_BIT,
-            VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-            VK_PIPELINE_STAGE_TRANSFER_BIT);
+      if (vk->readback.pending || vk->readback.streamed)
+      {
+         /* We cannot safely read back from an image which
+          * has already been presented as we need to
+          * maintain the PRESENT_SRC_KHR layout.
+          *
+          * If we're reading back, 
+          * perform the readback before presenting.
+          */
+         VULKAN_IMAGE_LAYOUT_TRANSITION(
+               vk->cmd,
+               backbuffer->image,
+               VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+               VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+               VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+               VK_ACCESS_TRANSFER_READ_BIT,
+               VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+               VK_PIPELINE_STAGE_TRANSFER_BIT);
 
-      vulkan_readback(vk);
+         vulkan_readback(vk);
 
-      /* Prepare for presentation after transfers are complete. */
-      VULKAN_IMAGE_LAYOUT_TRANSITION(vk->cmd,
-            backbuffer->image,
-            VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
-            VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
-            0,
-            VK_ACCESS_MEMORY_READ_BIT,
-            VK_PIPELINE_STAGE_TRANSFER_BIT,
-            VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
+         /* Prepare for presentation after transfers are complete. */
+         VULKAN_IMAGE_LAYOUT_TRANSITION(
+               vk->cmd,
+               backbuffer->image,
+               VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL,
+               VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
+               0,
+               VK_ACCESS_MEMORY_READ_BIT,
+               VK_PIPELINE_STAGE_TRANSFER_BIT,
+               VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
 
-      vk->readback.pending = false;
-   }
-   else if (backbuffer->image != VK_NULL_HANDLE &&
-         vk->context->has_acquired_swapchain)
-   {
-      /* Prepare backbuffer for presentation. */
-      VULKAN_IMAGE_LAYOUT_TRANSITION(vk->cmd,
-            backbuffer->image,
-            VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
-            VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
-            VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
-            0,
-            VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
-            VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
+         vk->readback.pending = false;
+      }
+      else
+      {
+         /* Prepare backbuffer for presentation. */
+         VULKAN_IMAGE_LAYOUT_TRANSITION(
+               vk->cmd,
+               backbuffer->image,
+               VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL,
+               VK_IMAGE_LAYOUT_PRESENT_SRC_KHR,
+               VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT,
+               0,
+               VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,
+               VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT);
+      }
    }
 
    if (waits_for_semaphores &&