Other Extension Metadata
- Last Modified Date
-
2022-03-10
- IP Status
-
No known IP claims.
- Interactions and External Dependencies
-
-
This extension provides API support for
GL_EXT_fragment_shader_barycentric
-
- Contributors
-
-
Stu Smith, AMD
-
Tobias Hector, AMD
-
Graeme Leese, Broadcom
-
Jan-Harald Fredriksen, Arm
-
Slawek Grajewski, Intel
-
Pat Brown, NVIDIA
-
Hans-Kristian Arntzen, Valve
-
Contributors to the VK_NV_fragment_shader_barycentric specification
-
Description
This extension is based on the VK_NV_fragment_shader_barycentric
extension, and adds support for the following SPIR-V extension in Vulkan:
The extension provides access to three additional fragment shader variable decorations in SPIR-V:
-
PerVertexKHR, which indicates that a fragment shader input will not have interpolated values, but instead must be accessed with an extra array index that identifies one of the vertices of the primitive producing the fragment -
BaryCoordKHR, which indicates that the variable is a three-component floating-point vector holding barycentric weights for the fragment produced using perspective interpolation -
BaryCoordNoPerspKHR, which indicates that the variable is a three-component floating-point vector holding barycentric weights for the fragment produced using linear interpolation
When using GLSL source-based shader languages, the following variables from
GL_EXT_fragment_shader_barycentric map to these SPIR-V built-in
decorations:
-
in vec3 gl_BaryCoordEXT;→BaryCoordKHR -
in vec3 gl_BaryCoordNoPerspEXT;→BaryCoordNoPerspKHR
GLSL variables declared using the pervertexEXT GLSL qualifier are
expected to be decorated with PerVertexKHR in SPIR-V.
New Enum Constants
-
VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME -
VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION -
Extending VkStructureType:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR -
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR
-
Issues
1) What are the interactions with MSAA and how are BaryCoordKHR and
BaryCoordNoPerspKHR interpolated?
RESOLVED: The inputs decorated with BaryCoordKHR or
BaryCoordNoPerspKHR may also be decorated with the Centroid or
Sample qualifiers to specify interpolation, like any other fragment
shader input.
If the shaderSampleRateInterpolationFunctions feature is enabled, the
extended instructions InterpolateAtCentroid, InterpolateAtOffset, and
InterpolateAtSample from the GLSL.std.450 may also be used with inputs
decorated with BaryCoordKHR or BaryCoordNoPerspKHR.
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.