diff options
author | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2022-11-11 04:24:03 +0100 |
---|---|---|
committer | Kelebek1 <eeeedddccc@hotmail.co.uk> | 2022-11-11 05:04:36 +0100 |
commit | 33ea0fdfe86c8529dddffc8763155df0a748311e (patch) | |
tree | 1785cb0f0b453d2a4bd2a57bff1b8b1be608d0c7 /src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | |
parent | ir/texture_pass: Use host_info instead of querying Settings::values (#9176) (diff) | |
download | yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar.gz yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar.bz2 yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar.lz yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar.xz yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.tar.zst yuzu-33ea0fdfe86c8529dddffc8763155df0a748311e.zip |
Diffstat (limited to '')
-rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index 1aa116cea..ef75c126c 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp @@ -680,6 +680,15 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) { .lineStippleFactor = 0, .lineStipplePattern = 0, }; + VkPipelineRasterizationConservativeStateCreateInfoEXT conservative_raster{ + .sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT, + .pNext = nullptr, + .flags = 0, + .conservativeRasterizationMode = key.state.conservative_raster_enable != 0 + ? VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT + : VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, + .extraPrimitiveOverestimationSize = 0.0f, + }; VkPipelineRasterizationProvokingVertexStateCreateInfoEXT provoking_vertex{ .sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT, .pNext = nullptr, @@ -690,6 +699,9 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) { if (IsLine(input_assembly_topology) && device.IsExtLineRasterizationSupported()) { line_state.pNext = std::exchange(rasterization_ci.pNext, &line_state); } + if (device.IsExtConservativeRasterizationSupported()) { + conservative_raster.pNext = std::exchange(rasterization_ci.pNext, &conservative_raster); + } if (device.IsExtProvokingVertexSupported()) { provoking_vertex.pNext = std::exchange(rasterization_ci.pNext, &provoking_vertex); } |