diff options
| author | 2021-07-15 16:52:51 +0200 | |
|---|---|---|
| committer | 2021-07-15 16:52:51 +0200 | |
| commit | 96703b82bc37ad923bcc76741ded7b0942bcc02d (patch) | |
| tree | 41f1d1174e263baf5116f2c737617fcc0405e93b /src | |
| parent | Merge pull request #6525 from ameerj/nvdec-fixes (diff) | |
| parent | vk_rasterizer: Only clear valid color attachments (diff) | |
| download | yuzu-96703b82bc37ad923bcc76741ded7b0942bcc02d.tar.gz yuzu-96703b82bc37ad923bcc76741ded7b0942bcc02d.tar.xz yuzu-96703b82bc37ad923bcc76741ded7b0942bcc02d.zip | |
Merge pull request #6635 from ameerj/intel-vk-sm3dw
vk_rasterizer: Only clear valid color attachments
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index e378a5679..a8ffbe6ba 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -357,11 +357,13 @@ void RasterizerVulkan::Clear() { | |||
| 357 | .height = std::min(clear_rect.rect.extent.height, render_area.height), | 357 | .height = std::min(clear_rect.rect.extent.height, render_area.height), |
| 358 | }; | 358 | }; |
| 359 | 359 | ||
| 360 | if (use_color) { | 360 | const u32 color_attachment = regs.clear_buffers.RT; |
| 361 | const auto attachment_aspect_mask = framebuffer->ImageRanges()[color_attachment].aspectMask; | ||
| 362 | const bool is_color_rt = (attachment_aspect_mask & VK_IMAGE_ASPECT_COLOR_BIT) != 0; | ||
| 363 | if (use_color && is_color_rt) { | ||
| 361 | VkClearValue clear_value; | 364 | VkClearValue clear_value; |
| 362 | std::memcpy(clear_value.color.float32, regs.clear_color, sizeof(regs.clear_color)); | 365 | std::memcpy(clear_value.color.float32, regs.clear_color, sizeof(regs.clear_color)); |
| 363 | 366 | ||
| 364 | const u32 color_attachment = regs.clear_buffers.RT; | ||
| 365 | scheduler.Record([color_attachment, clear_value, clear_rect](vk::CommandBuffer cmdbuf) { | 367 | scheduler.Record([color_attachment, clear_value, clear_rect](vk::CommandBuffer cmdbuf) { |
| 366 | const VkClearAttachment attachment{ | 368 | const VkClearAttachment attachment{ |
| 367 | .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, | 369 | .aspectMask = VK_IMAGE_ASPECT_COLOR_BIT, |