mirror of
				https://git.suyu.dev/suyu/suyu
				synced 2025-11-03 16:39:01 -06:00 
			
		
		
		
	Vulkan: Implement Alpha coverage
This commit is contained in:
		@@ -93,6 +93,8 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d,
 | 
			
		||||
    provoking_vertex_last.Assign(regs.provoking_vertex == Maxwell::ProvokingVertex::Last ? 1 : 0);
 | 
			
		||||
    conservative_raster_enable.Assign(regs.conservative_raster_enable != 0 ? 1 : 0);
 | 
			
		||||
    smooth_lines.Assign(regs.line_anti_alias_enable != 0 ? 1 : 0);
 | 
			
		||||
    alpha_to_coverage_enabled.Assign(regs.anti_alias_alpha_control.alpha_to_coverage != 0 ? 1 : 0);
 | 
			
		||||
    alpha_to_one_enabled.Assign(regs.anti_alias_alpha_control.alpha_to_one != 0 ? 1 : 0);
 | 
			
		||||
 | 
			
		||||
    for (size_t i = 0; i < regs.rt.size(); ++i) {
 | 
			
		||||
        color_formats[i] = static_cast<u8>(regs.rt[i].format);
 | 
			
		||||
 
 | 
			
		||||
@@ -195,6 +195,8 @@ struct FixedPipelineState {
 | 
			
		||||
        BitField<12, 1, u32> provoking_vertex_last;
 | 
			
		||||
        BitField<13, 1, u32> conservative_raster_enable;
 | 
			
		||||
        BitField<14, 1, u32> smooth_lines;
 | 
			
		||||
        BitField<15, 1, u32> alpha_to_coverage_enabled;
 | 
			
		||||
        BitField<16, 1, u32> alpha_to_one_enabled;
 | 
			
		||||
    };
 | 
			
		||||
    std::array<u8, Maxwell::NumRenderTargets> color_formats;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -714,8 +714,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
 | 
			
		||||
        .sampleShadingEnable = VK_FALSE,
 | 
			
		||||
        .minSampleShading = 0.0f,
 | 
			
		||||
        .pSampleMask = nullptr,
 | 
			
		||||
        .alphaToCoverageEnable = VK_FALSE,
 | 
			
		||||
        .alphaToOneEnable = VK_FALSE,
 | 
			
		||||
        .alphaToCoverageEnable = key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
 | 
			
		||||
        .alphaToOneEnable = key.state.alpha_to_one_enabled != 0 ? VK_TRUE : VK_FALSE,
 | 
			
		||||
    };
 | 
			
		||||
    const VkPipelineDepthStencilStateCreateInfo depth_stencil_ci{
 | 
			
		||||
        .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user