Browse Source

[vulkan] Added flag to detect last mode from provokingVertex

CamilleLaVey 3 weeks ago
committed by lizzie
parent
commit
b329d8eb42
  1. 3
      src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp
  2. 5
      src/video_core/vulkan_common/vulkan_device.h

3
src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp

@ -795,7 +795,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
const bool preserve_provoking_vertex_for_xfb = const bool preserve_provoking_vertex_for_xfb =
!key.state.xfb_enabled || device.IsTransformFeedbackProvokingVertexPreserved(); !key.state.xfb_enabled || device.IsTransformFeedbackProvokingVertexPreserved();
const bool use_last_provoking_vertex = const bool use_last_provoking_vertex =
key.state.provoking_vertex_last != 0 && preserve_provoking_vertex_for_xfb;
key.state.provoking_vertex_last != 0 && preserve_provoking_vertex_for_xfb &&
device.IsProvokingVertexLastSupported();
VkPipelineRasterizationProvokingVertexStateCreateInfoEXT provoking_vertex{ VkPipelineRasterizationProvokingVertexStateCreateInfoEXT provoking_vertex{
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT, .sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,

5
src/video_core/vulkan_common/vulkan_device.h

@ -700,6 +700,11 @@ public:
return extensions.provoking_vertex; return extensions.provoking_vertex;
} }
/// Returns true if the device supports provoking-vertex LAST mode.
bool IsProvokingVertexLastSupported() const {
return features.provoking_vertex.provokingVertexLast;
}
/// Returns true if the device supports VK_KHR_shader_atomic_int64. /// Returns true if the device supports VK_KHR_shader_atomic_int64.
bool IsExtShaderAtomicInt64Supported() const { bool IsExtShaderAtomicInt64Supported() const {
return extensions.shader_atomic_int64; return extensions.shader_atomic_int64;

Loading…
Cancel
Save