]> git.tdb.fi Git - libs/gl.git/blobdiff - source/backends/vulkan/commands_backend.cpp
Check if render target is swapchain and set to_present accordingly
[libs/gl.git] / source / backends / vulkan / commands_backend.cpp
index 684f0a476b723172b5ea7bcfe190ad9c465bf7bd..1634863b49e227057ccf3ceb29435600dcb00704 100644 (file)
@@ -9,6 +9,7 @@
 #include "pipelinestate.h"
 #include "rect.h"
 #include "semaphore.h"
+#include "swapchaintexture.h"
 #include "vulkan.h"
 
 using namespace std;
@@ -68,8 +69,12 @@ void VulkanCommands::begin_render_pass(bool clear, const ClearValue *clear_value
 
        device.get_transfer_queue().dispatch_transfers(current_buffer);
 
-       // TODO Use proper value for to_present
-       VkRenderPass render_pass = device.get_pipeline_cache().get_render_pass(target->get_format(), clear, !clear_values, true);
+       bool to_present = false;
+       unsigned n_attachments = target->get_format().size();
+       for(unsigned i=0; i<n_attachments; ++i)
+               if(dynamic_cast<const SwapChainTexture *>(target->VulkanFramebuffer::get_attachment(i)))
+                       to_present = true;
+       VkRenderPass render_pass = device.get_pipeline_cache().get_render_pass(target->get_format(), clear, !clear_values, to_present);
 
        target->refresh();