summaryrefslogtreecommitdiffstats
path: root/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2021-06-12 02:52:04 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:35 +0200
commitd554778311c32e0a19ecdc13d7525b264d8443b5 (patch)
tree11329cc574aafbd2dde29e6161fb902ca67e8808 /src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
parentspirv/convert: Catch more signed operations oversights (diff)
downloadyuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar.gz
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar.bz2
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar.lz
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar.xz
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.tar.zst
yuzu-d554778311c32e0a19ecdc13d7525b264d8443b5.zip
Diffstat (limited to 'src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp')
-rw-r--r--src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
index 5c916c869..06a80c2ba 100644
--- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
@@ -567,9 +567,16 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
viewport_ci.pNext = &swizzle_ci;
}
+ const VkPipelineRasterizationProvokingVertexStateCreateInfoEXT provoking_vertex{
+ .sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,
+ .pNext = nullptr,
+ .provokingVertexMode = key.state.provoking_vertex_last != 0
+ ? VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT
+ : VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT,
+ };
const VkPipelineRasterizationStateCreateInfo rasterization_ci{
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO,
- .pNext = nullptr,
+ .pNext = device.IsExtProvokingVertexSupported() ? &provoking_vertex : nullptr,
.flags = 0,
.depthClampEnable =
static_cast<VkBool32>(key.state.depth_clamp_disabled == 0 ? VK_TRUE : VK_FALSE),
@@ -586,6 +593,7 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
.depthBiasSlopeFactor = 0.0f,
.lineWidth = 1.0f,
};
+
const VkPipelineMultisampleStateCreateInfo multisample_ci{
.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO,
.pNext = nullptr,