|
@@ -278,6 +278,20 @@ VkSemaphore VKBlitScreen::DrawToSwapchain(const Tegra::FramebufferConfig& frameb
|
|
|
return Draw(framebuffer, *framebuffers[image_index], layout, render_area, use_accelerated);
|
|
return Draw(framebuffer, *framebuffers[image_index], layout, render_area, use_accelerated);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+vk::Framebuffer VKBlitScreen::CreateFramebuffer(const VkImageView& image_view, VkExtent2D extent) {
|
|
|
|
|
+ return device.GetLogical().CreateFramebuffer(VkFramebufferCreateInfo{
|
|
|
|
|
+ .sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
|
|
|
|
|
+ .pNext = nullptr,
|
|
|
|
|
+ .flags = 0,
|
|
|
|
|
+ .renderPass = *renderpass,
|
|
|
|
|
+ .attachmentCount = 1,
|
|
|
|
|
+ .pAttachments = &image_view,
|
|
|
|
|
+ .width = extent.width,
|
|
|
|
|
+ .height = extent.height,
|
|
|
|
|
+ .layers = 1,
|
|
|
|
|
+ });
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
void VKBlitScreen::CreateStaticResources() {
|
|
void VKBlitScreen::CreateStaticResources() {
|
|
|
CreateShaders();
|
|
CreateShaders();
|
|
|
CreateSemaphores();
|
|
CreateSemaphores();
|
|
@@ -621,22 +635,9 @@ void VKBlitScreen::CreateFramebuffers() {
|
|
|
const VkExtent2D size{swapchain.GetSize()};
|
|
const VkExtent2D size{swapchain.GetSize()};
|
|
|
framebuffers.resize(image_count);
|
|
framebuffers.resize(image_count);
|
|
|
|
|
|
|
|
- VkFramebufferCreateInfo ci{
|
|
|
|
|
- .sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO,
|
|
|
|
|
- .pNext = nullptr,
|
|
|
|
|
- .flags = 0,
|
|
|
|
|
- .renderPass = *renderpass,
|
|
|
|
|
- .attachmentCount = 1,
|
|
|
|
|
- .pAttachments = nullptr,
|
|
|
|
|
- .width = size.width,
|
|
|
|
|
- .height = size.height,
|
|
|
|
|
- .layers = 1,
|
|
|
|
|
- };
|
|
|
|
|
-
|
|
|
|
|
for (std::size_t i = 0; i < image_count; ++i) {
|
|
for (std::size_t i = 0; i < image_count; ++i) {
|
|
|
const VkImageView image_view{swapchain.GetImageViewIndex(i)};
|
|
const VkImageView image_view{swapchain.GetImageViewIndex(i)};
|
|
|
- ci.pAttachments = &image_view;
|
|
|
|
|
- framebuffers[i] = device.GetLogical().CreateFramebuffer(ci);
|
|
|
|
|
|
|
+ framebuffers[i] = CreateFramebuffer(image_view, size);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|