Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_KHR_shader_draw_parameters
Name
VK_KHR_shader_draw_parameters - device extension
VK_KHR_shader_draw_parameters
- Name String
VK_KHR_shader_draw_parameters
- Extension Type
Device extension
- Registered Extension Number
64
- Revision
1
- Ratification Status
Ratified
- Extension and Version Dependencies
None
- SPIR-V Dependencies
- Deprecation State
Promoted to Vulkan 1.1
- Contact
Other Extension Metadata
- Last Modified Date
2017-09-05
- IP Status
No known IP claims.
- Interactions and External Dependencies
This extension provides API support for GL_ARB_shader_draw_parameters
- Contributors
Daniel Koch, NVIDIA Corporation
Jeff Bolz, NVIDIA
Daniel Rakos, AMD
Jan-Harald Fredriksen, ARM
John Kessenich, Google
Stuart Smith, IMG
Description
This extension adds support for the following SPIR-V extension in Vulkan:
SPV_KHR_shader_draw_parameters
The extension provides access to three additional built-in shader variables in Vulkan:
BaseInstance, containing thefirstInstanceparameter passed to drawing commands,BaseVertex, containing thefirstVertexorvertexOffsetparameter passed to drawing commands, andDrawIndex, containing the index of the draw call currently being processed from an indirect drawing call.
When using GLSL source-based shader languages, the following variables
from GL_ARB_shader_draw_parameters can map to these SPIR-V built-in
decorations:
in int gl_BaseInstanceARB;→BaseInstance,in int gl_BaseVertexARB;→BaseVertex, andin int gl_DrawIDARB;→DrawIndex.
Promotion to Vulkan 1.1
All functionality in this extension is included in core Vulkan 1.1. However, the shaderDrawParameters feature bit was added to distinguish whether it is actually available or not.
New Enum Constants
New Built-In Variables
New SPIR-V Capabilities
Issues
1) Is this the same functionality as GL_ARB_shader_draw_parameters?
RESOLVED: It is actually a superset, as it also adds in support for arrayed drawing commands.
In GL for GL_ARB_shader_draw_parameters, gl_BaseVertexARB holds the
integer value passed to the parameter to the command that resulted in
the current shader invocation. In the case where the command has no
baseVertex parameter, the value of gl_BaseVertexARB is zero. This
means that gl_BaseVertexARB = baseVertex (for glDrawElements
commands with baseVertex) or 0. In particular there are no
glDrawArrays commands that take a baseVertex parameter.
Now in Vulkan, we have BaseVertex = vertexOffset (for indexed
drawing commands) or firstVertex (for arrayed drawing commands), and
so Vulkan’s version is really a superset of GL functionality.
Version History
Revision 1, 2016-10-05 (Daniel Koch)
Internal revisions
See Also
No cross-references are available
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.
- 2 types
- Packagevulkan-3.27
- Exports4
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_KHR_shader_draw_parameters.hs