mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-05-30 07:13:18 +00:00
renderer_vulkan: Clear blank frame (#2095)
* renderer_vulkan: Clear blank frame Fix display of garbage images on startup on some drivers. * Remove duplicated attachment declarations * Remove duplicated rendering_info declarations
This commit is contained in:
parent
40385e13e7
commit
9a956f5ed0
1 changed files with 21 additions and 17 deletions
|
@ -602,6 +602,23 @@ Frame* Presenter::PrepareFrameInternal(VideoCore::ImageId image_id, bool is_eop)
|
||||||
.pImageMemoryBarriers = &pre_barrier,
|
.pImageMemoryBarriers = &pre_barrier,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const std::array attachments = {vk::RenderingAttachmentInfo{
|
||||||
|
.imageView = frame->image_view,
|
||||||
|
.imageLayout = vk::ImageLayout::eColorAttachmentOptimal,
|
||||||
|
.loadOp = vk::AttachmentLoadOp::eClear,
|
||||||
|
.storeOp = vk::AttachmentStoreOp::eStore,
|
||||||
|
}};
|
||||||
|
const vk::RenderingInfo rendering_info{
|
||||||
|
.renderArea =
|
||||||
|
vk::Rect2D{
|
||||||
|
.offset = {0, 0},
|
||||||
|
.extent = {frame->width, frame->height},
|
||||||
|
},
|
||||||
|
.layerCount = 1,
|
||||||
|
.colorAttachmentCount = attachments.size(),
|
||||||
|
.pColorAttachments = attachments.data(),
|
||||||
|
};
|
||||||
|
|
||||||
if (image_id != VideoCore::NULL_IMAGE_ID) {
|
if (image_id != VideoCore::NULL_IMAGE_ID) {
|
||||||
auto& image = texture_cache.GetImage(image_id);
|
auto& image = texture_cache.GetImage(image_id);
|
||||||
image.Transit(vk::ImageLayout::eShaderReadOnlyOptimal, vk::AccessFlagBits2::eShaderRead, {},
|
image.Transit(vk::ImageLayout::eShaderReadOnlyOptimal, vk::AccessFlagBits2::eShaderRead, {},
|
||||||
|
@ -662,26 +679,13 @@ Frame* Presenter::PrepareFrameInternal(VideoCore::ImageId image_id, bool is_eop)
|
||||||
cmdbuf.pushConstants(*pp_pipeline_layout, vk::ShaderStageFlagBits::eFragment, 0,
|
cmdbuf.pushConstants(*pp_pipeline_layout, vk::ShaderStageFlagBits::eFragment, 0,
|
||||||
sizeof(PostProcessSettings), &pp_settings);
|
sizeof(PostProcessSettings), &pp_settings);
|
||||||
|
|
||||||
const std::array attachments = {vk::RenderingAttachmentInfo{
|
|
||||||
.imageView = frame->image_view,
|
|
||||||
.imageLayout = vk::ImageLayout::eColorAttachmentOptimal,
|
|
||||||
.loadOp = vk::AttachmentLoadOp::eClear,
|
|
||||||
.storeOp = vk::AttachmentStoreOp::eStore,
|
|
||||||
}};
|
|
||||||
|
|
||||||
vk::RenderingInfo rendering_info{
|
|
||||||
.renderArea =
|
|
||||||
vk::Rect2D{
|
|
||||||
.offset = {0, 0},
|
|
||||||
.extent = {frame->width, frame->height},
|
|
||||||
},
|
|
||||||
.layerCount = 1,
|
|
||||||
.colorAttachmentCount = attachments.size(),
|
|
||||||
.pColorAttachments = attachments.data(),
|
|
||||||
};
|
|
||||||
cmdbuf.beginRendering(rendering_info);
|
cmdbuf.beginRendering(rendering_info);
|
||||||
cmdbuf.draw(3, 1, 0, 0);
|
cmdbuf.draw(3, 1, 0, 0);
|
||||||
cmdbuf.endRendering();
|
cmdbuf.endRendering();
|
||||||
|
} else {
|
||||||
|
// Fix display of garbage images on startup on some drivers
|
||||||
|
cmdbuf.beginRendering(rendering_info);
|
||||||
|
cmdbuf.endRendering();
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto post_barrier =
|
const auto post_barrier =
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue