diff options
author | bunnei <bunneidev@gmail.com> | 2022-11-12 11:27:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-12 11:27:06 +0100 |
commit | 08091ff3e38665181fedcc476a7b83b84159e7a4 (patch) | |
tree | 8d059005c6e74fff1ccae781068b12e58ccdc816 /src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | |
parent | Merge pull request #9224 from liamwhite/services-arent-processes (diff) | |
parent | Fix regs regression with OpenGL two-sided stencil, and re-add data invalidation reg (diff) | |
download | yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar.gz yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar.bz2 yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar.lz yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar.xz yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.tar.zst yuzu-08091ff3e38665181fedcc476a7b83b84159e7a4.zip |
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp')
-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); } |