Merge pull request #9127 from vonchenplus/vulkan_clear

video_core: Catch vulkan clear op not all channel need clear
This commit is contained in:
bunnei 2022-10-27 19:19:40 -07:00 committed by GitHub
commit 84d15c7f47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 13 additions and 8 deletions

View File

@ -305,14 +305,19 @@ void RasterizerVulkan::Clear() {
} }
} }
scheduler.Record([color_attachment, clear_value, clear_rect](vk::CommandBuffer cmdbuf) { if (regs.clear_surface.R && regs.clear_surface.G && regs.clear_surface.B &&
const VkClearAttachment attachment{ regs.clear_surface.A) {
.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, scheduler.Record([color_attachment, clear_value, clear_rect](vk::CommandBuffer cmdbuf) {
.colorAttachment = color_attachment, const VkClearAttachment attachment{
.clearValue = clear_value, .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT,
}; .colorAttachment = color_attachment,
cmdbuf.ClearAttachments(attachment, clear_rect); .clearValue = clear_value,
}); };
cmdbuf.ClearAttachments(attachment, clear_rect);
});
} else {
UNIMPLEMENTED_MSG("Unimplemented Clear only the specified channel");
}
} }
if (!use_depth && !use_stencil) { if (!use_depth && !use_stencil) {