Skip to content

Commit 3780b80

Browse files
committed
renderer_vulkan: Clear blank frame
Fix display of garbage images on startup on some drivers.
1 parent 5c845d4 commit 3780b80

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

src/video_core/renderer_vulkan/vk_presenter.cpp

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,28 @@ Frame* Presenter::PrepareFrameInternal(VideoCore::ImageId image_id, bool is_eop)
602602
cmdbuf.beginRendering(rendering_info);
603603
cmdbuf.draw(3, 1, 0, 0);
604604
cmdbuf.endRendering();
605+
} else {
606+
// Fix display of garbage images on startup on some drivers
607+
const std::array attachments = {vk::RenderingAttachmentInfo{
608+
.imageView = frame->image_view,
609+
.imageLayout = vk::ImageLayout::eColorAttachmentOptimal,
610+
.loadOp = vk::AttachmentLoadOp::eClear,
611+
.storeOp = vk::AttachmentStoreOp::eStore,
612+
}};
613+
614+
vk::RenderingInfo rendering_info{
615+
.renderArea =
616+
vk::Rect2D{
617+
.offset = {0, 0},
618+
.extent = {frame->width, frame->height},
619+
},
620+
.layerCount = 1,
621+
.colorAttachmentCount = attachments.size(),
622+
.pColorAttachments = attachments.data(),
623+
};
624+
625+
cmdbuf.beginRendering(rendering_info);
626+
cmdbuf.endRendering();
605627
}
606628

607629
const auto post_barrier =

0 commit comments

Comments
 (0)