Contact
-
Piers Daniell pdaniell-nv
Other Extension Metadata
- Last Modified Date
-
2022-09-02
- IP Status
-
No known IP claims.
- Contributors
-
-
Daniel Story, Nintendo
-
Jamie Madill, Google
-
Jan-Harald Fredriksen, Arm
-
Faith Ekstrand, Collabora
-
Mike Blumenkrantz, Valve
-
Ricardo Garcia, Igalia
-
Samuel Pitoiset, Valve
-
Shahbaz Youssefi, Google
-
Stu Smith, AMD
-
Tapani Pälli, Intel
-
Description
This extension adds almost all of the remaining pipeline state as dynamic state to help applications further reduce the number of monolithic pipelines they need to create and bind.
New Commands
If VK_NV_clip_space_w_scaling is supported:
If VK_NV_coverage_reduction_mode is supported:
If VK_NV_fragment_coverage_to_color is supported:
If VK_NV_framebuffer_mixed_samples is supported:
If VK_NV_representative_fragment_test is supported:
If VK_NV_shading_rate_image is supported:
If VK_NV_viewport_swizzle is supported:
New Enum Constants
-
VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME
-
VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT
-
VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT
-
VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT
-
VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT
-
VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT
-
VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT
-
VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT
-
VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT
-
VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT
-
VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT
-
VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT
-
VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT
-
VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT
-
VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT
-
VK_DYNAMIC_STATE_POLYGON_MODE_EXT
-
VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT
-
VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT
-
VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT
-
VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT
-
VK_DYNAMIC_STATE_SAMPLE_MASK_EXT
-
VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT
-
-
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT
-
If VK_NV_clip_space_w_scaling is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV
-
If VK_NV_coverage_reduction_mode is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV
-
If VK_NV_fragment_coverage_to_color is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV
-
VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV
-
If VK_NV_framebuffer_mixed_samples is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV
-
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV
-
VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV
-
If VK_NV_representative_fragment_test is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV
-
If VK_NV_shading_rate_image is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV
-
If VK_NV_viewport_swizzle is supported:
-
Extending VkDynamicState:
-
VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV
-
Issues
1) What about the VkPipelineMultisampleStateCreateInfo state
sampleShadingEnable
and minSampleShading
?
- UNRESOLVED
-
-
sampleShadingEnable
andminSampleShading
are required when compiling the fragment shader, and it is not meaningful to set them dynamically since they always need to match the fragment shader state, so this hardware state may as well just come from the pipeline with the fragment shader.
-
Version History
-
Revision 2, 2022-07-18 (Piers Daniell)
-
Added rasterizationSamples
-
-
Revision 1, 2022-05-18 (Piers Daniell)
-
Internal revisions
-
See Also
VkColorBlendAdvancedEXT, VkColorBlendEquationEXT, VkPhysicalDeviceExtendedDynamicState3FeaturesEXT, VkPhysicalDeviceExtendedDynamicState3PropertiesEXT, vkCmdSetAlphaToCoverageEnableEXT, vkCmdSetAlphaToOneEnableEXT, vkCmdSetColorBlendAdvancedEXT, vkCmdSetColorBlendEnableEXT, vkCmdSetColorBlendEquationEXT, vkCmdSetColorWriteMaskEXT, vkCmdSetConservativeRasterizationModeEXT, vkCmdSetDepthClampEnableEXT, vkCmdSetDepthClipEnableEXT, vkCmdSetDepthClipNegativeOneToOneEXT, vkCmdSetExtraPrimitiveOverestimationSizeEXT, vkCmdSetLineRasterizationModeEXT, vkCmdSetLineStippleEnableEXT, vkCmdSetLogicOpEnableEXT, vkCmdSetPolygonModeEXT, vkCmdSetProvokingVertexModeEXT, vkCmdSetRasterizationSamplesEXT, vkCmdSetRasterizationStreamEXT, vkCmdSetSampleLocationsEnableEXT, vkCmdSetSampleMaskEXT, vkCmdSetTessellationDomainOriginEXT
Document Notes
For more information, see the Vulkan Specification
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.