Safe Haskell | None |
---|---|
Language | Haskell2010 |
Name
VK_NV_scissor_exclusive - device extension
VK_NV_scissor_exclusive
- Name String
VK_NV_scissor_exclusive
- Extension Type
- Device extension
- Registered Extension Number
- 206
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2018-07-31
- IP Status
- No known IP claims.
- Interactions and External Dependencies
- None
- Contributors
- Pat Brown, NVIDIA
- Jeff Bolz, NVIDIA
- Piers Daniell, NVIDIA
- Daniel Koch, NVIDIA
Description
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.
New Commands
New Structures
New Enum Constants
NV_SCISSOR_EXCLUSIVE_SPEC_VERSION
Extending
DynamicState
:Extending
StructureType
:
Issues
1) For the scissor test, the viewport state must be created with a matching number of scissor and viewport rectangles. Should we have the same requirement for exclusive scissors?
RESOLVED: For exclusive scissors, we relax this requirement and allow an exclusive scissor rectangle count that is either zero or equal to the number of viewport rectangles. If you pass in an exclusive scissor count of zero, the exclusive scissor test is treated as disabled.
Version History
Revision 1, 2018-07-31 (Pat Brown)
- Internal revisions
See Also
PhysicalDeviceExclusiveScissorFeaturesNV
,
PipelineViewportExclusiveScissorStateCreateInfoNV
,
cmdSetExclusiveScissorNV
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.
Synopsis
- cmdSetExclusiveScissorNV :: forall io. MonadIO io => CommandBuffer -> ("firstExclusiveScissor" ::: Word32) -> ("exclusiveScissors" ::: Vector Rect2D) -> io ()
- data PhysicalDeviceExclusiveScissorFeaturesNV = PhysicalDeviceExclusiveScissorFeaturesNV {}
- data PipelineViewportExclusiveScissorStateCreateInfoNV = PipelineViewportExclusiveScissorStateCreateInfoNV {}
- type NV_SCISSOR_EXCLUSIVE_SPEC_VERSION = 1
- pattern NV_SCISSOR_EXCLUSIVE_SPEC_VERSION :: forall a. Integral a => a
- type NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME = "VK_NV_scissor_exclusive"
- pattern NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
cmdSetExclusiveScissorNV Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("firstExclusiveScissor" ::: Word32) |
|
-> ("exclusiveScissors" ::: Vector Rect2D) |
|
-> io () |
vkCmdSetExclusiveScissorNV - Set the dynamic exclusive scissor rectangles on a command buffer
Description
The scissor rectangles taken from element i of pExclusiveScissors
replace the current state for the scissor index firstExclusiveScissor
+ i, for i in [0, exclusiveScissorCount
).
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The exclusive scissor feature must be enabled
- The
sum of
firstExclusiveScissor
andexclusiveScissorCount
must be between1
andPhysicalDeviceLimits
::maxViewports
, inclusive - If the
multiple viewports
feature is not enabled,
firstExclusiveScissor
must be0
- If the
multiple viewports
feature is not enabled,
exclusiveScissorCount
must be1
- The
x
andy
members ofoffset
in each member ofpExclusiveScissors
must be greater than or equal to0
- 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 validCommandBuffer
handle
-
pExclusiveScissors
must be a valid pointer to an array ofexclusiveScissorCount
Rect2D
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations -
exclusiveScissorCount
must be greater than0
Host Synchronization
- Host access to
commandBuffer
must be externally synchronized
- Host access to the
CommandPool
thatcommandBuffer
was allocated from must be externally synchronized
Command Properties
'
Command Buffer Levels | Render Pass Scope | Supported Queue Types | Pipeline Type |
---|---|---|---|
Primary Secondary | Both | Graphics |
See Also
data PhysicalDeviceExclusiveScissorFeaturesNV Source #
VkPhysicalDeviceExclusiveScissorFeaturesNV - Structure describing exclusive scissor features that can be supported by an implementation
Members
The members of the PhysicalDeviceExclusiveScissorFeaturesNV
structure
describe the following features:
Description
See Exclusive Scissor Test for more information.
If the PhysicalDeviceExclusiveScissorFeaturesNV
structure is included
in the pNext
chain of
PhysicalDeviceFeatures2
,
it is filled with values indicating whether the feature is supported.
PhysicalDeviceExclusiveScissorFeaturesNV
can also be included in the
pNext
chain of DeviceCreateInfo
to enable the
feature.
Valid Usage (Implicit)
See Also
Instances
data PipelineViewportExclusiveScissorStateCreateInfoNV Source #
VkPipelineViewportExclusiveScissorStateCreateInfoNV - Structure specifying parameters controlling exclusive scissor testing
Description
If the
DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV
dynamic state is enabled for a pipeline, the pExclusiveScissors
member
is ignored.
When this structure is included in the pNext
chain of
GraphicsPipelineCreateInfo
, it defines
parameters of the exclusive scissor test. If this structure is not
included in the pNext
chain, it is equivalent to specifying this
structure with a exclusiveScissorCount
of 0
.
Valid Usage
-
If the
multiple viewports
feature is not enabled,
exclusiveScissorCount
must be0
or1
-
exclusiveScissorCount
must be less than or equal toPhysicalDeviceLimits
::maxViewports
-
exclusiveScissorCount
must be0
or greater than or equal to theviewportCount
member ofPipelineViewportStateCreateInfo
Valid Usage (Implicit)
See Also
PipelineViewportExclusiveScissorStateCreateInfoNV | |
|
Instances
type NV_SCISSOR_EXCLUSIVE_SPEC_VERSION = 1 Source #
pattern NV_SCISSOR_EXCLUSIVE_SPEC_VERSION :: forall a. Integral a => a Source #
type NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME = "VK_NV_scissor_exclusive" Source #
pattern NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #