[vulkan] Added flag to detect last mode from provokingVertex

This commit is contained in:
CamilleLaVey 2026-02-17 00:59:10 -04:00 committed by lizzie
parent 6b8115f27a
commit e3e880e879
2 changed files with 7 additions and 1 deletions

View file

@ -795,7 +795,8 @@ void GraphicsPipeline::MakePipeline(VkRenderPass render_pass) {
const bool preserve_provoking_vertex_for_xfb =
!key.state.xfb_enabled || device.IsTransformFeedbackProvokingVertexPreserved();
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{
.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT,

View file

@ -700,6 +700,11 @@ public:
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.
bool IsExtShaderAtomicInt64Supported() const {
return extensions.shader_atomic_int64;