Class NVFragmentShadingRateEnums
- java.lang.Object
-
- org.lwjgl.vulkan.NVFragmentShadingRateEnums
-
public class NVFragmentShadingRateEnums extends java.lang.ObjectThis extension builds on the fragment shading rate functionality provided by the VK_KHR_fragment_shading_rate extension, adding support for “supersample” fragment shading rates that trigger multiple fragment shader invocations per pixel as well as a “no invocations” shading rate that discards any portions of a primitive that would use that shading rate.VK_NV_fragment_shading_rate_enums
- Name String
VK_NV_fragment_shading_rate_enums- Extension Type
- Device extension
- Registered Extension Number
- 327
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_fragment_shading_rate
- Contact
- Pat Brown nvpbrown
Other Extension Metadata
- Last Modified Date
- 2020-09-02
- Contributors
- Pat Brown, NVIDIA
- Jeff Bolz, NVIDIA
-
-
Field Summary
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidnvkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, long combinerOps)Unsafe version of:CmdSetFragmentShadingRateEnumNVstatic voidvkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, int[] combinerOps)Array version of:CmdSetFragmentShadingRateEnumNVstatic voidvkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, java.nio.IntBuffer combinerOps)Set pipeline fragment shading rate dynamically for a command buffer using enums.
-
-
-
Field Detail
-
VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION
The extension specification version.
-
VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME
The extension name.
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV
-
VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV, VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV
VkFragmentShadingRateTypeNV - Enumeration with fragment shading rate typesDescription
FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NVspecifies that a graphics pipeline should obtain its pipeline fragment shading rate and shading rate combiner state from theVkPipelineFragmentShadingRateStateCreateInfoKHRstructure and that any state specified by theVkPipelineFragmentShadingRateEnumStateCreateInfoNVstructure should be ignored.FRAGMENT_SHADING_RATE_TYPE_ENUMS_NVspecifies that a graphics pipeline should obtain its pipeline fragment shading rate and shading rate combiner state from theVkPipelineFragmentShadingRateEnumStateCreateInfoNVstructure and that any state specified by theVkPipelineFragmentShadingRateStateCreateInfoKHRstructure should be ignored.
See Also
-
VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV, VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV
VkFragmentShadingRateNV - Enumeration with fragment shading ratesDescription
FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NVspecifies a fragment size of 1x1 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NVspecifies a fragment size of 1x2 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NVspecifies a fragment size of 2x1 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NVspecifies a fragment size of 2x2 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NVspecifies a fragment size of 2x4 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NVspecifies a fragment size of 4x2 pixels.FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NVspecifies a fragment size of 4x4 pixels.FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NVspecifies a fragment size of 1x1 pixels, with two fragment shader invocations per fragment.FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NVspecifies a fragment size of 1x1 pixels, with four fragment shader invocations per fragment.FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NVspecifies a fragment size of 1x1 pixels, with eight fragment shader invocations per fragment.FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NVspecifies a fragment size of 1x1 pixels, with sixteen fragment shader invocations per fragment.FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NVspecifies that any portions of a primitive that use that shading rate should be discarded without invoking any fragment shader.
To use the shading rates
FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, andFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NVas a pipeline, primitive, or attachment shading rate, thesupersampleFragmentShadingRatesfeature must be enabled. To use the shading rateFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NVas a pipeline, primitive, or attachment shading rate, thenoInvocationFragmentShadingRatesfeature must be enabled.See Also
VkPipelineFragmentShadingRateEnumStateCreateInfoNV,CmdSetFragmentShadingRateEnumNV
-
-
Method Detail
-
nvkCmdSetFragmentShadingRateEnumNV
public static void nvkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, long combinerOps)Unsafe version of:CmdSetFragmentShadingRateEnumNV
-
vkCmdSetFragmentShadingRateEnumNV
public static void vkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, java.nio.IntBuffer combinerOps)Set pipeline fragment shading rate dynamically for a command buffer using enums.C Specification
To dynamically set the pipeline fragment shading rate and combiner operation, call:
void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);Description
This command sets the pipeline fragment shading rate and combiner operation for subsequent drawing commands when the graphics pipeline is created with
DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHRset inVkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by theVkPipelineFragmentShadingRateEnumStateCreateInfoNVvalues used to create the currently active pipeline.Note
This command allows specifying additional shading rates beyond those supported by
CmdSetFragmentShadingRateKHR. For more information, refer to theVK_NV_fragment_shading_rate_enumsappendix.Valid Usage
- If
pipelineFragmentShadingRateis not enabled,shadingRatemust beFRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV - If
supersampleFragmentShadingRatesis not enabled,shadingRatemust not beFRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV,FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, orFRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV - If
noInvocationFragmentShadingRatesis not enabled,shadingRatemust not beFRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV fragmentShadingRateEnumsmust be enabled- One of
pipelineFragmentShadingRate,primitiveFragmentShadingRate, orattachmentFragmentShadingRatemust be enabled - If the
primitiveFragmentShadingRatefeature is not enabled,combinerOps[0] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the
attachmentFragmentShadingRatefeature is not enabled,combinerOps[1] must beFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR - If the
fragmentSizeNonTrivialCombinerOpslimit is not supported, elements ofcombinerOpsmust be eitherFRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHRorFRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandleshadingRatemust be a validVkFragmentShadingRateNVvalue- Any given element of
combinerOpsmust be a validVkFragmentShadingRateCombinerOpKHRvalue commandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations
Host Synchronization
- Host access to
commandBuffermust be externally synchronized - Host access to the
VkCommandPoolthatcommandBufferwas allocated from must be externally synchronized
Command Properties
Command Buffer Levels Render Pass Scope Supported Queue Types Primary Secondary Both Graphics - Parameters:
commandBuffer- the command buffer into which the command will be recorded.shadingRate- specifies aVkFragmentShadingRateNVenum indicating the pipeline fragment shading rate for subsequent drawing commands.combinerOps- specifies aVkFragmentShadingRateCombinerOpKHRdetermining how the pipeline, primitive, and attachment shading rates are combined for fragments generated by subsequent drawing commands.
- If
-
vkCmdSetFragmentShadingRateEnumNV
public static void vkCmdSetFragmentShadingRateEnumNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int shadingRate, int[] combinerOps)Array version of:CmdSetFragmentShadingRateEnumNV
-
-