Safe Haskell | None |
---|---|
Language | Haskell2010 |
Name
VK_EXT_discard_rectangles - device extension
VK_EXT_discard_rectangles
- Name String
VK_EXT_discard_rectangles
- Extension Type
- Device extension
- Registered Extension Number
- 100
- Revision
- 1
- Extension and Version Dependencies
- Requires Vulkan 1.0
- Requires
VK_KHR_get_physical_device_properties2
- Contact
Other Extension Metadata
- Last Modified Date
- 2016-12-22
- Interactions and External Dependencies
- Interacts with
VK_KHR_device_group
- Interacts with Vulkan 1.1
- Interacts with
- Contributors
- Daniel Koch, NVIDIA
- Jeff Bolz, NVIDIA
Description
This extension provides additional orthogonally aligned “discard rectangles” specified in framebuffer-space coordinates that restrict rasterization of all points, lines and triangles.
From zero to an implementation-dependent limit (specified by
maxDiscardRectangles
) number of discard rectangles can be operational
at once. When one or more discard rectangles are active, rasterized
fragments can either survive if the fragment is within any of the
operational discard rectangles (DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT
mode) or be rejected if the fragment is within any of the operational
discard rectangles (DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT
mode).
These discard rectangles operate orthogonally to the existing scissor test functionality. The discard rectangles can be different for each physical device in a device group by specifying the device mask and setting discard rectangle dynamic state.
New Commands
New Structures
New Enums
New Bitmasks
New Enum Constants
EXT_DISCARD_RECTANGLES_SPEC_VERSION
Extending
DynamicState
:Extending
StructureType
:
Version History
Revision 1, 2016-12-22 (Piers Daniell)
- Internal revisions
See Also
DiscardRectangleModeEXT
,
PhysicalDeviceDiscardRectanglePropertiesEXT
,
PipelineDiscardRectangleStateCreateFlagsEXT
,
PipelineDiscardRectangleStateCreateInfoEXT
,
cmdSetDiscardRectangleEXT
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
- cmdSetDiscardRectangleEXT :: forall io. MonadIO io => CommandBuffer -> ("firstDiscardRectangle" ::: Word32) -> ("discardRectangles" ::: Vector Rect2D) -> io ()
- data PhysicalDeviceDiscardRectanglePropertiesEXT = PhysicalDeviceDiscardRectanglePropertiesEXT {}
- data PipelineDiscardRectangleStateCreateInfoEXT = PipelineDiscardRectangleStateCreateInfoEXT {}
- newtype PipelineDiscardRectangleStateCreateFlagsEXT = PipelineDiscardRectangleStateCreateFlagsEXT Flags
- newtype DiscardRectangleModeEXT where
- type EXT_DISCARD_RECTANGLES_SPEC_VERSION = 1
- pattern EXT_DISCARD_RECTANGLES_SPEC_VERSION :: forall a. Integral a => a
- type EXT_DISCARD_RECTANGLES_EXTENSION_NAME = "VK_EXT_discard_rectangles"
- pattern EXT_DISCARD_RECTANGLES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a
Documentation
cmdSetDiscardRectangleEXT Source #
:: forall io. MonadIO io | |
=> CommandBuffer |
|
-> ("firstDiscardRectangle" ::: Word32) |
|
-> ("discardRectangles" ::: Vector Rect2D) |
|
-> io () |
vkCmdSetDiscardRectangleEXT - Set discard rectangles dynamically
Description
The discard rectangle taken from element i of pDiscardRectangles
replace the current state for the discard rectangle at index
firstDiscardRectangle
+ i, for i in [0, discardRectangleCount
).
This command sets the state for a given draw when the graphics pipeline
is created with
DYNAMIC_STATE_DISCARD_RECTANGLE_EXT
set in
PipelineDynamicStateCreateInfo
::pDynamicStates
.
Valid Usage
- The
sum of
firstDiscardRectangle
anddiscardRectangleCount
must be less than or equal toPhysicalDeviceDiscardRectanglePropertiesEXT
::maxDiscardRectangles
- The
x
andy
member ofoffset
in eachRect2D
element ofpDiscardRectangles
must be greater than or equal to0
- Evaluation of
(
offset.x
+extent.width
) in eachRect2D
element ofpDiscardRectangles
must not cause a signed integer addition overflow - Evaluation of
(
offset.y
+extent.height
) in eachRect2D
element ofpDiscardRectangles
must not cause a signed integer addition overflow
Valid Usage (Implicit)
-
commandBuffer
must be a validCommandBuffer
handle
-
pDiscardRectangles
must be a valid pointer to an array ofdiscardRectangleCount
Rect2D
structures -
commandBuffer
must be in the recording state - The
CommandPool
thatcommandBuffer
was allocated from must support graphics operations -
discardRectangleCount
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 PhysicalDeviceDiscardRectanglePropertiesEXT Source #
VkPhysicalDeviceDiscardRectanglePropertiesEXT - Structure describing discard rectangle limits that can be supported by an implementation
Members
The members of the PhysicalDeviceDiscardRectanglePropertiesEXT
structure describe the following implementation-dependent limits:
Description
If the PhysicalDeviceDiscardRectanglePropertiesEXT
structure is
included in the pNext
chain of
PhysicalDeviceProperties2
,
it is filled with the implementation-dependent limits.
Valid Usage (Implicit)
See Also
Instances
data PipelineDiscardRectangleStateCreateInfoEXT Source #
VkPipelineDiscardRectangleStateCreateInfoEXT - Structure specifying discard rectangle
Description
If the
DYNAMIC_STATE_DISCARD_RECTANGLE_EXT
dynamic state is enabled for a pipeline, the pDiscardRectangles
member
is ignored.
When this structure is included in the pNext
chain of
GraphicsPipelineCreateInfo
, it defines
parameters of the discard rectangle test. If this structure is not
included in the pNext
chain, it is equivalent to specifying this
structure with a discardRectangleCount
of 0
.
Valid Usage (Implicit)
See Also
DiscardRectangleModeEXT
,
PipelineDiscardRectangleStateCreateFlagsEXT
,
Rect2D
,
StructureType
PipelineDiscardRectangleStateCreateInfoEXT | |
|
Instances
newtype PipelineDiscardRectangleStateCreateFlagsEXT Source #
VkPipelineDiscardRectangleStateCreateFlagsEXT - Reserved for future use
Description
PipelineDiscardRectangleStateCreateFlagsEXT
is a bitmask type for
setting a mask, but is currently reserved for future use.
See Also
Instances
newtype DiscardRectangleModeEXT Source #
VkDiscardRectangleModeEXT - Specify the discard rectangle mode
See Also
pattern DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT :: DiscardRectangleModeEXT |
|
pattern DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT :: DiscardRectangleModeEXT |
|
Instances
type EXT_DISCARD_RECTANGLES_SPEC_VERSION = 1 Source #
pattern EXT_DISCARD_RECTANGLES_SPEC_VERSION :: forall a. Integral a => a Source #
type EXT_DISCARD_RECTANGLES_EXTENSION_NAME = "VK_EXT_discard_rectangles" Source #
pattern EXT_DISCARD_RECTANGLES_EXTENSION_NAME :: forall a. (Eq a, IsString a) => a Source #