renderer_opengl: split up blit screen resources into antialias and window adapt passes

This commit is contained in:
Liam 2024-01-15 15:08:21 -05:00
parent dd2918efd8
commit d4de04584f
13 changed files with 332 additions and 232 deletions

View file

@ -92,7 +92,9 @@ void WindowAdaptPass::Draw(Scheduler& scheduler, size_t image_index, VkImageView
const VkFramebuffer host_framebuffer{*dst->framebuffer};
const VkRenderPass renderpass{*render_pass};
const VkPipeline graphics_pipeline{*pipeline};
const VkPipelineLayout graphics_pipeline_layout{*pipeline_layout};
const VkDescriptorSet descriptor_set{descriptor_sets[image_index]};
const VkBuffer vertex_buffer{*buffer};
const VkExtent2D render_area{
.width = dst->width,
.height = dst->height,
@ -134,8 +136,8 @@ void WindowAdaptPass::Draw(Scheduler& scheduler, size_t image_index, VkImageView
cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline);
cmdbuf.SetViewport(0, viewport);
cmdbuf.SetScissor(0, scissor);
cmdbuf.BindVertexBuffer(0, *buffer, offsetof(BufferData, vertices));
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, *pipeline_layout, 0,
cmdbuf.BindVertexBuffer(0, vertex_buffer, offsetof(BufferData, vertices));
cmdbuf.BindDescriptorSets(VK_PIPELINE_BIND_POINT_GRAPHICS, graphics_pipeline_layout, 0,
descriptor_set, {});
cmdbuf.Draw(4, 1, 0, 0);
cmdbuf.EndRenderPass();

View file

@ -222,6 +222,9 @@ void Vulkan::RendererVulkan::RenderScreenshot(const Tegra::FramebufferConfig& fr
.image = std::move(staging_image),
.image_view = std::move(dst_view),
.framebuffer = std::move(screenshot_fb),
.cmdbuf{},
.render_ready{},
.present_done{},
};
}();