mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-11-04 04:34:07 +01:00 
			
		
		
		
	Enable depth test on stencil clear path
This commit is contained in:
		
							parent
							
								
									df56ecc318
								
							
						
					
					
						commit
						1a246bf135
					
				@ -609,6 +609,8 @@ void BlitImageHelper::ClearDepthStencil(const Framebuffer* dst_framebuffer, bool
 | 
			
		||||
    const VkPipelineLayout layout = *clear_color_pipeline_layout;
 | 
			
		||||
    scheduler.RequestRenderpass(dst_framebuffer);
 | 
			
		||||
    scheduler.Record([pipeline, layout, clear_depth, dst_region](vk::CommandBuffer cmdbuf) {
 | 
			
		||||
        constexpr std::array blend_constants{0.0f, 0.0f, 0.0f, 0.0f};
 | 
			
		||||
        cmdbuf.SetBlendConstants(blend_constants.data());
 | 
			
		||||
        cmdbuf.BindPipeline(VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline);
 | 
			
		||||
        BindBlitState(cmdbuf, dst_region);
 | 
			
		||||
        cmdbuf.PushConstants(layout, VK_SHADER_STAGE_FRAGMENT_BIT, clear_depth);
 | 
			
		||||
@ -865,7 +867,7 @@ VkPipeline BlitImageHelper::FindOrEmplaceClearStencilPipeline(
 | 
			
		||||
        .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
 | 
			
		||||
        .pNext = nullptr,
 | 
			
		||||
        .flags = 0,
 | 
			
		||||
        .depthTestEnable = VK_FALSE,
 | 
			
		||||
        .depthTestEnable = key.depth_clear,
 | 
			
		||||
        .depthWriteEnable = key.depth_clear,
 | 
			
		||||
        .depthCompareOp = VK_COMPARE_OP_ALWAYS,
 | 
			
		||||
        .depthBoundsTestEnable = VK_FALSE,
 | 
			
		||||
 | 
			
		||||
@ -429,7 +429,8 @@ void RasterizerVulkan::Clear(u32 layer_count) {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (use_stencil && regs.stencil_front_mask != 0xFF && regs.stencil_front_mask != 0) {
 | 
			
		||||
    if (use_stencil && framebuffer->HasAspectStencilBit() && regs.stencil_front_mask != 0xFF &&
 | 
			
		||||
        regs.stencil_front_mask != 0) {
 | 
			
		||||
        Region2D dst_region = {
 | 
			
		||||
            Offset2D{.x = clear_rect.rect.offset.x, .y = clear_rect.rect.offset.y},
 | 
			
		||||
            Offset2D{.x = clear_rect.rect.offset.x + static_cast<s32>(clear_rect.rect.extent.width),
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user