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.
VK_NV_scissor_exclusive
- 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_properties2
- 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
Modifier and TypeFieldDescriptionstatic final int
ExtendsVkDynamicState
.static final int
ExtendsVkDynamicState
.static final String
The extension name.static final int
The extension specification version.static final int
ExtendsVkStructureType
.static final int
ExtendsVkStructureType
. -
Method Summary
Modifier and TypeMethodDescriptionstatic void
nvkCmdSetExclusiveScissorEnableNV
(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissorEnables) Unsafe version of:CmdSetExclusiveScissorEnableNV
static void
nvkCmdSetExclusiveScissorNV
(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int exclusiveScissorCount, long pExclusiveScissors) Unsafe version of:CmdSetExclusiveScissorNV
static void
vkCmdSetExclusiveScissorEnableNV
(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int[] pExclusiveScissorEnables) Array version of:CmdSetExclusiveScissorEnableNV
static void
vkCmdSetExclusiveScissorEnableNV
(VkCommandBuffer commandBuffer, int firstExclusiveScissor, IntBuffer pExclusiveScissorEnables) Dynamically enable each exclusive scissor for a command buffer.static void
vkCmdSetExclusiveScissorNV
(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(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(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
i
ofpExclusiveScissorEnables
replace the current state for the scissor indexfirstExclusiveScissor + i
, fori
in[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_NV
set inVkPipelineDynamicStateCreateInfo
::pDynamicStates
. Otherwise, this state is implied by theVkPipelineViewportExclusiveScissorStateCreateInfoNV
::exclusiveScissorCount
value used to create the currently active pipeline, where allexclusiveScissorCount
exclusive scissors are implicitly enabled and the remainder up toVkPhysicalDeviceLimits
::maxViewports
are implicitly disabled.Valid Usage
- The
exclusiveScissor
feature must be enabled, and the implementation must support at leastspecVersion
2 of theVK_NV_scissor_exclusive
extension
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handlepExclusiveScissorEnables
must be a valid pointer to an array ofexclusiveScissorCount
VkBool32
valuescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a video coding scope
exclusiveScissorCount
must be greater than 0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was 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 ofVkBool32
values defining whether the exclusive scissor is enabled.
- The
-
nvkCmdSetExclusiveScissorNV
public static void nvkCmdSetExclusiveScissorNV(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(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
i
ofpExclusiveScissors
replace the current state for the scissor indexfirstExclusiveScissor + i
, fori
in[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_NV
set inVkPipelineDynamicStateCreateInfo
::pDynamicStates
. Otherwise, this state is specified by theVkPipelineViewportExclusiveScissorStateCreateInfoNV
::pExclusiveScissors
values used to create the currently active pipeline.Valid Usage
- The
exclusiveScissor
feature must be enabled - The sum of
firstExclusiveScissor
andexclusiveScissorCount
must be between 1 andVkPhysicalDeviceLimits
::maxViewports
, inclusive - If the
multiViewport
feature is not enabled,firstExclusiveScissor
must be 0 - If the
multiViewport
feature is not enabled,exclusiveScissorCount
must be 1 - The
x
andy
members ofoffset
in each member ofpExclusiveScissors
must be greater than or equal to 0 - Evaluation of
(offset.x + extent.width)
for each member ofpExclusiveScissors
must not cause a signed integer addition overflow - Evaluation of
(offset.y + extent.height)
for each member ofpExclusiveScissors
must not cause a signed integer addition overflow
Valid Usage (Implicit)
commandBuffer
must be a validVkCommandBuffer
handlepExclusiveScissors
must be a valid pointer to an array ofexclusiveScissorCount
VkRect2D
structurescommandBuffer
must be in the recording state- The
VkCommandPool
thatcommandBuffer
was allocated from must support graphics operations - This command must only be called outside of a video coding scope
exclusiveScissorCount
must be greater than 0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized - Host access to the
VkCommandPool
thatcommandBuffer
was 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 ofVkRect2D
structures defining exclusive scissor rectangles.
- The
-
vkCmdSetExclusiveScissorEnableNV
public static void vkCmdSetExclusiveScissorEnableNV(VkCommandBuffer commandBuffer, int firstExclusiveScissor, int[] pExclusiveScissorEnables) Array version of:CmdSetExclusiveScissorEnableNV
-