Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_EXT_fragment_density_map_offset
Name
VK_EXT_fragment_density_map_offset - device extension
VK_EXT_fragment_density_map_offset
- Name String
VK_EXT_fragment_density_map_offset
- Extension Type
Device extension
- Registered Extension Number
620
- Revision
1
- Ratification Status
Ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2 or
Vulkan Version 1.1 and VK_EXT_fragment_density_map and
- Contact
- Extension Proposal
Other Extension Metadata
- Last Modified Date
2025-02-14
- Contributors
Connor Abbott, Valve Corporation
Matthew Netsch, Qualcomm Technologies, Inc.
Jonathan Wicks, Qualcomm Technologies, Inc.
Jonathan Tinkham, Qualcomm Technologies, Inc.
Jeff Leger, Qualcomm Technologies, Inc.
Manan Katwala, Qualcomm Technologies, Inc.
Mike Blumenkrantz, Valve Corporation
Description
This extension allows an application to specify offsets to a fragment density map attachment, changing the framebuffer location where density values are applied to without having to regenerate the fragment density map.
New Commands
New Structures
Extending PhysicalDeviceFeatures2, DeviceCreateInfo:
Extending PhysicalDeviceProperties2:
Extending SubpassEndInfo, RenderingEndInfoKHR:
New Enum Constants
Extending ImageCreateFlagBits:
Extending StructureType:
Version History
Revision 1, 2025-02-14 (Connor Abbott)
Initial version
See Also
No cross-references are available
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.
- 7 types
- 2 values
- Packagevulkan-3.27
- Exports12
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_EXT_fragment_density_map_offset.hs
VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT - Structure describing fragment density map offset features that can be supported by an implementation
Members
This structure describes the following feature:
Description
If the PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT structure is
included in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT, it must add an
instance of the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Structure Chaining
See Also
VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Bool32, StructureType
Constructors
PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTfragmentDensityMapOffset :: BoolfragmentDensityMapOffsetspecifies whether the implementation supports fragment density map offsets
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetShow PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetStorable PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetFromCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetToCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetZero PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offset
VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT - Structure describing fragment density map offset properties that can be supported by an implementation
Description
If the PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT structure
is included in the pNext chain of the
PhysicalDeviceProperties2
structure passed to
getPhysicalDeviceProperties2,
it is filled in with each corresponding implementation-dependent
property.
Structure Chaining
See Also
VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Extent2D, StructureType
Constructors
PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTfragmentDensityOffsetGranularity :: Extent2DfragmentDensityOffsetGranularityis the granularity for fragment density offsets.
Instances5Show, Storable, FromCStruct, ToCStruct, Zero
Show PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetStorable PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetFromCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetToCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetZero PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offset
VkRenderPassFragmentDensityMapOffsetEndInfoEXT - Structure specifying fragment density map offset subpass end information
Description
The array elements are given per layer as defined by
Fetch Density Value,
where index = layer. Each (x,y) offset is in framebuffer pixels and
shifts the fetch of the fragment density map by that amount. Offsets can
be positive or negative.
If neither the
SubpassEndInfo::pNext
chain for the last subpass of a render pass nor the
RenderingEndInfoEXT::pNext chain of a dynamic render pass include
RenderPassFragmentDensityMapOffsetEndInfoEXT, or if
fragmentDensityOffsetCount is zero, then the offset (0,0) is used for
Fetch Density Value.
Valid Usage
If the fragmentDensityMapOffset feature is not enabled or fragment density map is not enabled in the render pass,
fragmentDensityOffsetCountmust equal0
If RenderPassFragmentDensityMapCreateInfoEXT::
fragmentDensityMapAttachmentis not ATTACHMENT_UNUSED and was not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,fragmentDensityOffsetCountmust equal0If the depth or stencil attachments for the render pass are used and were not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCountmust equal0If any used input attachments for the render pass were not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCountmust equal0If any used color attachments for the render pass were not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCountmust equal0If any used resolve attachments for the render pass were not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCountmust equal0If any used preserve attachments for the render pass were not created with IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
fragmentDensityOffsetCountmust equal0If
fragmentDensityOffsetCountis not0and multiview is enabled for the render pass,fragmentDensityOffsetCountmust equal thelayerCountthat was specified in creating the fragment density map attachment viewIf
fragmentDensityOffsetCountis not0and multiview is not enabled for the render pass,fragmentDensityOffsetCountmust equal1The
xcomponent of each element ofpFragmentDensityOffsetsmust be an integer multiple offragmentDensityOffsetGranularity.widthThe
ycomponent of each element ofpFragmentDensityOffsetsmust be an integer multiple offragmentDensityOffsetGranularity.heightEach element of
pFragmentDensityOffsetsmust be identical for every cmdEndRendering2KHR call made in a render pass
Valid Usage (Implicit)
If
fragmentDensityOffsetCountis not0,pFragmentDensityOffsetsmust be a valid pointer to an array offragmentDensityOffsetCountOffset2D structures
Structure Chaining
See Also
VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Offset2D, StructureType
Constructors
RenderPassFragmentDensityMapOffsetEndInfoEXTfragmentDensityOffsets :: Vector Offset2DpFragmentDensityOffsetsis a pointer to an array of Offset2D structs, each of which describes the offset per layer.
Instances4Show, FromCStruct, ToCStruct, Zero
Show RenderPassFragmentDensityMapOffsetEndInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetFromCStruct RenderPassFragmentDensityMapOffsetEndInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetToCStruct RenderPassFragmentDensityMapOffsetEndInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offsetZero RenderPassFragmentDensityMapOffsetEndInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map_offset
VkRenderingEndInfoKHR - Structure specifying render pass end information
Valid Usage (Implicit)
sTypemust be STRUCTURE_TYPE_RENDERING_END_INFO_KHR
pNextmust beNULLor a pointer to a valid instance of RenderPassFragmentDensityMapOffsetEndInfoEXTThe
sTypevalue of each structure in thepNextchain must be unique
See Also
VK_EXT_fragment_density_map_offset, VK_KHR_maintenance10, StructureType, cmdEndRendering2KHR, cmdEndRendering2KHR
Constructors
Instances5Extensible, Show, FromCStruct, ToCStruct, Zero
Extensible RenderingEndInfoKHRDefined in vulkan-3.27 · Vulkan.Extensions.VK_KHR_maintenance10Show (Chain es) => Show (RenderingEndInfoKHR es)Defined in vulkan-3.27 · Vulkan.Extensions.VK_KHR_maintenance10(Extendss RenderingEndInfoKHR es, PeekChain es) => FromCStruct (RenderingEndInfoKHR es)Defined in vulkan-3.27 · Vulkan.Extensions.VK_KHR_maintenance10(Extendss RenderingEndInfoKHR es, PokeChain es) => ToCStruct (RenderingEndInfoKHR es)Defined in vulkan-3.27 · Vulkan.Extensions.VK_KHR_maintenance10es ~ '[] => Zero (RenderingEndInfoKHR es)Defined in vulkan-3.27 · Vulkan.Extensions.VK_KHR_maintenance10
cmdEndRendering2KHR :: (Extendss RenderingEndInfoKHR a, PokeChain a, MonadIO io)=> CommandBuffercommandBufferis the command buffer in which to record the command.->"renderingEndInfo"
::: Maybe (RenderingEndInfoKHR a)pRenderingEndInfoisNULLor a pointer to a RenderingEndInfoKHR structure containing information about how the render pass will be ended.-> io ()
vkCmdEndRendering2KHR - End a dynamic render pass instance
Description
If the value of pRenderingInfo->flags used to begin this render pass
instance included
RENDERING_SUSPENDING_BIT, then
this render pass is suspended and will be resumed later in
submission order.
There is no implicit ordering between separate render passes, even in the same command buffer, and even when the attachments match. Some applications rely on the continuation of rasterization order between multiple render passes with attachments defined in the same way, in order to perform non-rendering operations (such as copies or compute operations) between draw calls, but this has never been required by the specification. There is also no explicit barrier currently in the API that provides the guarantee that applications rely on without additional performance penalties.
New applications should avoid relying on this ordering until an appropriate barrier is added to the API.
Implementations where applications are performing this splitting are encouraged to continue supporting this guarantee until a suitable barrier is added to the API.
Existing applications relying on this ordering should expect that it will continue working on platforms where it currently does. Once a new extension adds support for a new barrier, developers are encouraged to adapt their applications to use this when available.
Valid Usage
The current render pass instance must have been begun with cmdBeginRendering
The current render pass instance must have been begun in
commandBufferThis command must not be recorded when transform feedback is active
If cmdBeginQuery* was called within the render pass, the corresponding cmdEndQuery* must have been called subsequently within the same subpass
Valid Usage (Implicit)
commandBuffermust be a valid CommandBuffer handle
If
pRenderingEndInfois notNULL,pRenderingEndInfomust be a valid pointer to a valid RenderingEndInfoKHR structurecommandBuffermust be in the recording stateThe CommandPool that
commandBufferwas allocated from must support QUEUE_GRAPHICS_BIT operationsThis command must only be called inside of a render pass instance
This command must not be called between suspended render pass instances
This command must only be called outside of a video coding scope
Host Synchronization
Host access to
commandBuffermust be externally synchronized
Host access to the CommandPool that
commandBufferwas allocated from must be externally synchronized
Command Properties
'
Primary Secondary | Inside | Outside | VK_QUEUE_GRAPHICS_BIT | Action State |
Conditional Rendering
vkCmdEndRendering2KHR is not affected by conditional rendering
See Also
VK_EXT_fragment_density_map_offset, VK_KHR_maintenance10, CommandBuffer, RenderingEndInfoKHR