diff options
Diffstat (limited to '')
| -rw-r--r-- | src/video_core/renderer_vulkan/blit_image.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_rasterizer.cpp | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/blit_image.cpp b/src/video_core/renderer_vulkan/blit_image.cpp index 1032c9d12..182057575 100644 --- a/src/video_core/renderer_vulkan/blit_image.cpp +++ b/src/video_core/renderer_vulkan/blit_image.cpp | |||
| @@ -609,6 +609,8 @@ void BlitImageHelper::ClearDepthStencil(const Framebuffer* dst_framebuffer, bool | |||
| 609 | const VkPipelineLayout layout = *clear_color_pipeline_layout; | 609 | const VkPipelineLayout layout = *clear_color_pipeline_layout; |
| 610 | scheduler.RequestRenderpass(dst_framebuffer); | 610 | scheduler.RequestRenderpass(dst_framebuffer); |
| 611 | scheduler.Record([pipeline, layout, clear_depth, dst_region](vk::CommandBuffer cmdbuf) { | 611 | scheduler.Record([pipeline, layout, clear_depth, dst_region](vk::CommandBuffer cmdbuf) { |
| 612 | constexpr std::array blend_constants{0.0f, 0.0f, 0.0f, 0.0f}; | ||
| 613 | cmdbuf.SetBlendConstants(blend_constants.data()); | ||
| 612 | cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); | 614 | cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline); |
| 613 | BindBlitState(cmdbuf, dst_region); | 615 | BindBlitState(cmdbuf, dst_region); |
| 614 | cmdbuf.PushConstants(layout, VK_SHADER_STAGE_FRAGMENT_BIT, clear_depth); | 616 | cmdbuf.PushConstants(layout, VK_SHADER_STAGE_FRAGMENT_BIT, clear_depth); |
| @@ -865,7 +867,7 @@ VkPipeline BlitImageHelper::FindOrEmplaceClearStencilPipeline( | |||
| 865 | .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, | 867 | .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, |
| 866 | .pNext = nullptr, | 868 | .pNext = nullptr, |
| 867 | .flags = 0, | 869 | .flags = 0, |
| 868 | .depthTestEnable = VK_FALSE, | 870 | .depthTestEnable = key.depth_clear, |
| 869 | .depthWriteEnable = key.depth_clear, | 871 | .depthWriteEnable = key.depth_clear, |
| 870 | .depthCompareOp = VK_COMPARE_OP_ALWAYS, | 872 | .depthCompareOp = VK_COMPARE_OP_ALWAYS, |
| 871 | .depthBoundsTestEnable = VK_FALSE, | 873 | .depthBoundsTestEnable = VK_FALSE, |
diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 1628d76d6..83f2b6045 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp | |||
| @@ -422,7 +422,8 @@ void RasterizerVulkan::Clear(u32 layer_count) { | |||
| 422 | return; | 422 | return; |
| 423 | } | 423 | } |
| 424 | 424 | ||
| 425 | if (use_stencil && regs.stencil_front_mask != 0xFF && regs.stencil_front_mask != 0) { | 425 | if (use_stencil && framebuffer->HasAspectStencilBit() && regs.stencil_front_mask != 0xFF && |
| 426 | regs.stencil_front_mask != 0) { | ||
| 426 | Region2D dst_region = { | 427 | Region2D dst_region = { |
| 427 | Offset2D{.x = clear_rect.rect.offset.x, .y = clear_rect.rect.offset.y}, | 428 | Offset2D{.x = clear_rect.rect.offset.x, .y = clear_rect.rect.offset.y}, |
| 428 | Offset2D{.x = clear_rect.rect.offset.x + static_cast<s32>(clear_rect.rect.extent.width), | 429 | Offset2D{.x = clear_rect.rect.offset.x + static_cast<s32>(clear_rect.rect.extent.width), |