Class NVScissorExclusive

  • public class NVScissorExclusive
    extends java.lang.Object
    This extension adds support for an exclusive scissor test to Vulkan. The exclusive scissor test behaves like the scissor test, except that the exclusive scissor test fails for pixels inside the corresponding rectangle and passes for pixels outside the rectangle. If the same rectangle is used for both the scissor and exclusive scissor tests, the exclusive scissor test will pass if and only if the scissor test fails.
    Name String
    Extension Type
    Device extension
    Registered Extension Number
    Extension and Version Dependencies
    Last Modified Date
    IP Status
    No known IP claims.
    Interactions and External Dependencies
    • Pat Brown, NVIDIA
    • Jeff Bolz, NVIDIA
    • Piers Daniell, NVIDIA
    • Daniel Koch, NVIDIA
    • Method Detail

      • nvkCmdSetExclusiveScissorNV

        public static void nvkCmdSetExclusiveScissorNV​(VkCommandBuffer commandBuffer,
                                                       int firstExclusiveScissor,
                                                       int exclusiveScissorCount,
                                                       long pExclusiveScissors)
        Unsafe version of: CmdSetExclusiveScissorNV
        exclusiveScissorCount - the number of exclusive scissor rectangles updated by the command.
      • vkCmdSetExclusiveScissorNV

        public static void vkCmdSetExclusiveScissorNV​(VkCommandBuffer commandBuffer,
                                                      int firstExclusiveScissor,
                                                      VkRect2D.Buffer pExclusiveScissors)
        Set the dynamic exclusive scissor rectangles on a command buffer.
        C Specification

        If the pipeline state object is created with DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV enabled, then the exclusive scissor rectangles are set by:

         void vkCmdSetExclusiveScissorNV(
             VkCommandBuffer                             commandBuffer,
             uint32_t                                    firstExclusiveScissor,
             uint32_t                                    exclusiveScissorCount,
             const VkRect2D*                             pExclusiveScissors);

        The scissor rectangles taken from element i of pExclusiveScissors replace the current state for the scissor index firstExclusiveScissor + i, for i in [0, exclusiveScissorCount).

        Each scissor rectangle is described by a VkRect2D structure, with the offset.x and offset.y values determining the upper left corner of the scissor rectangle, and the extent.width and extent.height values determining the size in pixels.

        Valid Usage
        • The exclusive scissor feature must be enabled.
        • The bound graphics pipeline must have been created with the DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled
        • firstExclusiveScissor must be less than VkPhysicalDeviceLimits::maxViewports
        • The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive
        • If the multiple viewports feature is not enabled, firstExclusiveScissor must be 0
        • If the multiple viewports feature is not enabled, exclusiveScissorCount must be 1
        • The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0
        • Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow
        • Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow
        Valid Usage (Implicit)
        • commandBuffer must be a valid VkCommandBuffer handle
        • pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures
        • commandBuffer must be in the recording state
        • The VkCommandPool that commandBuffer was allocated from must support graphics operations
        • exclusiveScissorCount must be greater than 0
        Host Synchronization
        • Host access to commandBuffer must be externally synchronized
        • Host access to the VkCommandPool that commandBuffer was allocated from must be externally synchronized
        Command Properties
        Command Buffer LevelsRender Pass ScopeSupported Queue TypesPipeline Type
        Primary SecondaryBothGraphics
        See Also


        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 of VkRect2D structures defining exclusive scissor rectangles.