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