diff --git a/include/QF/Vulkan/qf_vid.h b/include/QF/Vulkan/qf_vid.h index ced3132e3..7360bbdab 100644 --- a/include/QF/Vulkan/qf_vid.h +++ b/include/QF/Vulkan/qf_vid.h @@ -80,6 +80,10 @@ void Vulkan_Init_Common (struct vulkan_ctx_s *ctx); void Vulkan_Shutdown_Common (struct vulkan_ctx_s *ctx); void Vulkan_CreateStagingBuffers (struct vulkan_ctx_s *ctx); +struct qfv_output_s; +void Vulkan_ConfigOutput (struct vulkan_ctx_s *ctx, + struct qfv_output_s *output); + VkPipeline Vulkan_CreateComputePipeline (struct vulkan_ctx_s *ctx, const char *name); VkPipeline Vulkan_CreateGraphicsPipeline (struct vulkan_ctx_s *ctx, diff --git a/libs/video/renderer/vulkan/vulkan_main.c b/libs/video/renderer/vulkan/vulkan_main.c index f3d5084fa..06880ef02 100644 --- a/libs/video/renderer/vulkan/vulkan_main.c +++ b/libs/video/renderer/vulkan/vulkan_main.c @@ -177,16 +177,7 @@ void Vulkan_Main_CreateRenderPasses (vulkan_ctx_t *ctx) { __auto_type rp = QFV_RenderPass_New (ctx, "deferred", main_draw); - rp->output = (qfv_output_t) { - .extent = ctx->swapchain->extent, - .frames = ctx->swapchain->numImages, - }; - if (vulkan_frame_width > 0) { - rp->output.extent.width = vulkan_frame_width; - } - if (vulkan_frame_height > 0) { - rp->output.extent.height = vulkan_frame_height; - } + Vulkan_ConfigOutput (ctx, &rp->output); QFV_RenderPass_CreateAttachments (rp); QFV_RenderPass_CreateRenderPass (rp); QFV_RenderPass_CreateFramebuffer (rp); diff --git a/libs/video/renderer/vulkan/vulkan_vid_common.c b/libs/video/renderer/vulkan/vulkan_vid_common.c index acffbe622..965b7f1ae 100644 --- a/libs/video/renderer/vulkan/vulkan_vid_common.c +++ b/libs/video/renderer/vulkan/vulkan_vid_common.c @@ -280,3 +280,18 @@ Vulkan_BeginEntityLabel (vulkan_ctx_t *ctx, VkCommandBuffer cmd, entity_t ent) va (ctx->va_ctx, "ent %03x.%05x [%g, %g, %g]", entgen, entind, VectorExpand (pos)), color); } + +void +Vulkan_ConfigOutput (vulkan_ctx_t *ctx, qfv_output_t *output) +{ + *output = (qfv_output_t) { + .extent = ctx->swapchain->extent, + .frames = ctx->swapchain->numImages, + }; + if (vulkan_frame_width > 0) { + output->extent.width = vulkan_frame_width; + } + if (vulkan_frame_height > 0) { + output->extent.height = vulkan_frame_height; + } +}