summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar liamwhite2022-12-05 12:25:46 -0500
committerGravatar GitHub2022-12-05 12:25:46 -0500
commitc7f32300b21eed44b14a6ad1f7fd5222d7445fd1 (patch)
tree42c0c6571509a919d884ed408c4bf070d98f6f70 /src
parentMerge pull request #9381 from liamwhite/uninit (diff)
parentVulkan: Implement Alpha coverage (diff)
downloadyuzu-c7f32300b21eed44b14a6ad1f7fd5222d7445fd1.tar.gz
yuzu-c7f32300b21eed44b14a6ad1f7fd5222d7445fd1.tar.xz
yuzu-c7f32300b21eed44b14a6ad1f7fd5222d7445fd1.zip
Merge pull request #9383 from FernandoS27/poke-great
Vulkan: Implement Alpha coverage
Diffstat (limited to 'src')
-rw-r--r--src/video_core/renderer_vulkan/fixed_pipeline_state.cpp2
-rw-r--r--src/video_core/renderer_vulkan/fixed_pipeline_state.h2
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp4
3 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
index f3f08b42c..5864e772b 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.cpp
@@ -93,6 +93,8 @@ void FixedPipelineState::Refresh(Tegra::Engines::Maxwell3D& maxwell3d,
93 provoking_vertex_last.Assign(regs.provoking_vertex == Maxwell::ProvokingVertex::Last ? 1 : 0); 93 provoking_vertex_last.Assign(regs.provoking_vertex == Maxwell::ProvokingVertex::Last ? 1 : 0);
94 conservative_raster_enable.Assign(regs.conservative_raster_enable != 0 ? 1 : 0); 94 conservative_raster_enable.Assign(regs.conservative_raster_enable != 0 ? 1 : 0);
95 smooth_lines.Assign(regs.line_anti_alias_enable != 0 ? 1 : 0); 95 smooth_lines.Assign(regs.line_anti_alias_enable != 0 ? 1 : 0);
96 alpha_to_coverage_enabled.Assign(regs.anti_alias_alpha_control.alpha_to_coverage != 0 ? 1 : 0);
97 alpha_to_one_enabled.Assign(regs.anti_alias_alpha_control.alpha_to_one != 0 ? 1 : 0);
96 98
97 for (size_t i = 0; i < regs.rt.size(); ++i) { 99 for (size_t i = 0; i < regs.rt.size(); ++i) {
98 color_formats[i] = static_cast<u8>(regs.rt[i].format); 100 color_formats[i] = static_cast<u8>(regs.rt[i].format);
diff --git a/src/video_core/renderer_vulkan/fixed_pipeline_state.h b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
index 1afdef329..ab79fb8f3 100644
--- a/src/video_core/renderer_vulkan/fixed_pipeline_state.h
+++ b/src/video_core/renderer_vulkan/fixed_pipeline_state.h
@@ -195,6 +195,8 @@ struct FixedPipelineState {
195 BitField<12, 1, u32> provoking_vertex_last; 195 BitField<12, 1, u32> provoking_vertex_last;
196 BitField<13, 1, u32> conservative_raster_enable; 196 BitField<13, 1, u32> conservative_raster_enable;
197 BitField<14, 1, u32> smooth_lines; 197 BitField<14, 1, u32> smooth_lines;
198 BitField<15, 1, u32> alpha_to_coverage_enabled;
199 BitField<16, 1, u32> alpha_to_one_enabled;
198 }; 200 };
199 std::array<u8, Maxwell::NumRenderTargets> color_formats; 201 std::array<u8, Maxwell::NumRenderTargets> color_formats;
200 202
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index e77a57a4a..006128638 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -714,8 +714,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
714 .sampleShadingEnable = VK_FALSE, 714 .sampleShadingEnable = VK_FALSE,
715 .minSampleShading = 0.0f, 715 .minSampleShading = 0.0f,
716 .pSampleMask = nullptr, 716 .pSampleMask = nullptr,
717 .alphaToCoverageEnable = VK_FALSE, 717 .alphaToCoverageEnable = key.state.alpha_to_coverage_enabled != 0 ? VK_TRUE : VK_FALSE,
718 .alphaToOneEnable = VK_FALSE, 718 .alphaToOneEnable = key.state.alpha_to_one_enabled != 0 ? VK_TRUE : VK_FALSE,
719 }; 719 };
720 const VkPipelineDepthStencilStateCreateInfo depth_stencil_ci{ 720 const VkPipelineDepthStencilStateCreateInfo depth_stencil_ci{
721 .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, 721 .sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO,