Class NVScissorExclusive
Version 2 of this extension introduces DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV and CmdSetExclusiveScissorEnableNV. Applications that use this dynamic state must ensure the implementation advertises at least specVersion 2 of this extension.
- Name String
VK_NV_scissor_exclusive- Extension Type
- Device extension
- Registered Extension Number
- 206
- Revision
- 2
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2or Version 1.1- Contact
- Pat Brown nvpbrown
Other Extension Metadata
- Last Modified Date
- 2023-01-18
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- None
- Contributors
- Pat Brown, NVIDIA
- Jeff Bolz, NVIDIA
- Piers Daniell, NVIDIA
- Daniel Koch, NVIDIA
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkDynamicState.static final intExtendsVkDynamicState.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
Modifier and TypeMethodDescriptionstatic voidnvkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissorEnables) Unsafe version of:CmdSetExclusiveScissorEnableNVstatic voidnvkCmdSetExclusiveScissorNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissors) Unsafe version of:CmdSetExclusiveScissorNVstatic voidvkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int[] pExclusiveScissorEnables) Array version of:CmdSetExclusiveScissorEnableNVstatic voidvkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, IntBuffer pExclusiveScissorEnables) Dynamically enable each exclusive scissor for a command buffer.static voidvkCmdSetExclusiveScissorNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, VkRect2D.Buffer pExclusiveScissors) Set exclusive scissor rectangles dynamically for a command buffer.
-
Field Details
-
VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION
public static final int VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV
public static final int VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NVExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NVExtendsVkStructureType.Enum values:
- See Also:
-
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV
public static final int VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NVExtendsVkDynamicState.Enum values:
- See Also:
-
VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
public static final int VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NVExtendsVkDynamicState.Enum values:
- See Also:
-
-
Method Details
-
nvkCmdSetExclusiveScissorEnableNV
public static void nvkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissorEnables) Unsafe version of:CmdSetExclusiveScissorEnableNV- Parameters:
exclusiveScissorCount- the number of exclusive scissor rectangles updated by the command.
-
vkCmdSetExclusiveScissorEnableNV
public static void vkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, IntBuffer pExclusiveScissorEnables) Dynamically enable each exclusive scissor for a command buffer.C Specification
To dynamically set whether an exclusive scissor is enabled or not, call:
void vkCmdSetExclusiveScissorEnableNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);Description
The exclusive scissor enables taken from element
iofpExclusiveScissorEnablesreplace the current state for the scissor indexfirstExclusiveScissor + i, foriin[0, exclusiveScissorCount).This command sets the exclusive scissor enable for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NVset inVkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is implied by theVkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCountvalue used to create the currently active pipeline, where allexclusiveScissorCountexclusive scissors are implicitly enabled and the remainder up toVkPhysicalDeviceLimits::maxViewportsare implicitly disabled.Valid Usage
- The
exclusiveScissorfeature must be enabled, and the implementation must support at leastspecVersion2 of theVK_NV_scissor_exclusiveextension
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepExclusiveScissorEnablesmust be a valid pointer to an array ofexclusiveScissorCountVkBool32valuescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a video coding scope
exclusiveScissorCountmust be greater than 0
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 Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics State - Parameters:
commandBuffer- the command buffer into which the command will be recorded.firstExclusiveScissor- the index of the first exclusive scissor rectangle whose state is updated by the command.pExclusiveScissorEnables- a pointer to an array ofVkBool32values defining whether the exclusive scissor is enabled.
- The
-
nvkCmdSetExclusiveScissorNV
public static void nvkCmdSetExclusiveScissorNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissors) Unsafe version of:CmdSetExclusiveScissorNV- Parameters:
exclusiveScissorCount- the number of exclusive scissor rectangles updated by the command.
-
vkCmdSetExclusiveScissorNV
public static void vkCmdSetExclusiveScissorNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, VkRect2D.Buffer pExclusiveScissors) Set exclusive scissor rectangles dynamically for a command buffer.C Specification
To dynamically set the exclusive scissor rectangles, call:
void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);Description
The scissor rectangles taken from element
iofpExclusiveScissorsreplace the current state for the scissor indexfirstExclusiveScissor + i, foriin[0, exclusiveScissorCount).This command sets the exclusive scissor rectangles for subsequent drawing commands when drawing using shader objects, or when the graphics pipeline is created with
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NVset inVkPipelineDynamicStateCreateInfo::pDynamicStates. Otherwise, this state is specified by theVkPipelineViewportExclusiveScissorStateCreateInfoNV::pExclusiveScissorsvalues used to create the currently active pipeline.Valid Usage
- The
exclusiveScissorfeature must be enabled - The sum of
firstExclusiveScissorandexclusiveScissorCountmust be between 1 andVkPhysicalDeviceLimits::maxViewports, inclusive - If the
multiViewportfeature is not enabled,firstExclusiveScissormust be 0 - If the
multiViewportfeature is not enabled,exclusiveScissorCountmust be 1 - The
xandymembers ofoffsetin each member ofpExclusiveScissorsmust be greater than or equal to 0 - Evaluation of
(offset.x + extent.width)for each member ofpExclusiveScissorsmust not cause a signed integer addition overflow - Evaluation of
(offset.y + extent.height)for each member ofpExclusiveScissorsmust not cause a signed integer addition overflow
Valid Usage (Implicit)
commandBuffermust be a validVkCommandBufferhandlepExclusiveScissorsmust be a valid pointer to an array ofexclusiveScissorCountVkRect2DstructurescommandBuffermust be in the recording state- The
VkCommandPoolthatcommandBufferwas allocated from must support graphics operations - This command must only be called outside of a video coding scope
exclusiveScissorCountmust be greater than 0
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 Video Coding Scope Supported Queue Types Command Type Primary Secondary Both Outside Graphics State See Also
- Parameters:
commandBuffer- the command buffer into which the command will be recorded.firstExclusiveScissor- the index of the first exclusive scissor rectangle whose state is updated by the command.pExclusiveScissors- a pointer to an array ofVkRect2Dstructures defining exclusive scissor rectangles.
- The
-
vkCmdSetExclusiveScissorEnableNV
public static void vkCmdSetExclusiveScissorEnableNV(org.lwjgl.vulkan.VkCommandBuffer commandBuffer, int firstExclusiveScissor, int[] pExclusiveScissorEnables) Array version of:CmdSetExclusiveScissorEnableNV
-