Modulevulkan-3.27GHC2021
Vulkan.Extensions.VK_EXT_fragment_density_map
Name
VK_EXT_fragment_density_map - device extension
VK_EXT_fragment_density_map
- Name String
VK_EXT_fragment_density_map
- Extension Type
Device extension
- Registered Extension Number
219
- Revision
3
- Ratification Status
Ratified
- Extension and Version Dependencies
VK_KHR_get_physical_device_properties2
or
- API Interactions
Interacts with VK_VERSION_1_3
Interacts with VK_KHR_dynamic_rendering
Interacts with VK_KHR_format_feature_flags2
- SPIR-V Dependencies
- Contact
Other Extension Metadata
- Last Modified Date
2025-05-20
- Interactions and External Dependencies
This extension provides API support for GL_EXT_fragment_invocation_density
- Contributors
Matthew Netsch, Qualcomm Technologies, Inc.
Robert VanReenen, Qualcomm Technologies, Inc.
Jonathan Wicks, Qualcomm Technologies, Inc.
Tate Hornbeck, Qualcomm Technologies, Inc.
Sam Holmes, Qualcomm Technologies, Inc.
Jeff Leger, Qualcomm Technologies, Inc.
Jan-Harald Fredriksen, ARM
Jeff Bolz, NVIDIA
Pat Brown, NVIDIA
Daniel Rakos, AMD
Piers Daniell, NVIDIA
Description
This extension allows an application to specify areas of the render target where the fragment shader may be invoked fewer times. These fragments are broadcasted out to multiple pixels to cover the render target.
The primary use of this extension is to reduce workloads in areas where lower quality may not be perceived such as the distorted edges of a lens or the periphery of a user’s gaze.
New Structures
Extending PhysicalDeviceProperties2:
Extending RenderPassCreateInfo, RenderPassCreateInfo2:
If Vulkan Version 1.3 or VK_KHR_dynamic_rendering is supported:
New Enum Constants
Extending AccessFlagBits:
Extending FormatFeatureFlagBits:
Extending ImageCreateFlagBits:
Extending ImageLayout:
Extending ImageUsageFlagBits:
Extending ImageViewCreateFlagBits:
Extending PipelineStageFlagBits:
Extending SamplerCreateFlagBits:
Extending StructureType:
If VK_KHR_format_feature_flags2 or Vulkan Version 1.3 is supported:
If Vulkan Version 1.3 or VK_KHR_dynamic_rendering is supported:
Extending PipelineCreateFlagBits:
Extending StructureType:
New or Modified Built-In Variables
New SPIR-V Capabilities
Version History
Revision 1, 2018-09-25 (Matthew Netsch)
Initial version
Revision 2, 2021-09-30 (Jon Leech)
Add interaction with
VK_KHR_format_feature_flags2tovk.xml
Revision 3, 2025-05-20 (Matthew Netsch)
Fixes fragmentDensityTexelSize calculation equation
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.
- 6 types
- Packagevulkan-3.27
- Exports9
- LanguageGHC2021
- LicenceBSD-3-Clause
- SourceVK_EXT_fragment_density_map.hs
VkPhysicalDeviceFragmentDensityMapFeaturesEXT - Structure describing fragment density map features that can be supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceFragmentDensityMapFeaturesEXT 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
PhysicalDeviceFragmentDensityMapFeaturesEXT, 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
Constructors
PhysicalDeviceFragmentDensityMapFeaturesEXTfragmentDensityMap :: BoolfragmentDensityMapspecifies whether the implementation supports render passes with a fragment density map attachment. If this feature is not enabled and thepNextchain of RenderPassCreateInfo includes a RenderPassFragmentDensityMapCreateInfoEXT structure,fragmentDensityMapAttachmentmust be ATTACHMENT_UNUSED.fragmentDensityMapDynamic :: BoolfragmentDensityMapDynamicspecifies whether the implementation supports dynamic fragment density map image views. If this feature is not enabled, IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT must not be included in ImageViewCreateInfo::flags.fragmentDensityMapNonSubsampledImages :: BoolfragmentDensityMapNonSubsampledImagesspecifies whether the implementation supports regular non-subsampled image attachments with fragment density map render passes. If this feature is not enabled, render passes with a fragment density map attachment must only have subsampled attachments bound.
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapShow PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapStorable PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapFromCStruct PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapToCStruct PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapZero PhysicalDeviceFragmentDensityMapFeaturesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map
VkPhysicalDeviceFragmentDensityMapPropertiesEXT - Structure describing fragment density map properties that can be supported by an implementation
Description
If the PhysicalDeviceFragmentDensityMapPropertiesEXT 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, Bool32, Extent2D, StructureType
Constructors
PhysicalDeviceFragmentDensityMapPropertiesEXTminFragmentDensityTexelSize :: Extent2DminFragmentDensityTexelSizeis the minimum fragment density texel size.maxFragmentDensityTexelSize :: Extent2DmaxFragmentDensityTexelSizeis the maximum fragment density texel size.fragmentDensityInvocations :: BoolfragmentDensityInvocationsspecifies whether the implementation may invoke additional fragment shader invocations for each covered sample.
Instances5Show, Storable, FromCStruct, ToCStruct, Zero
Show PhysicalDeviceFragmentDensityMapPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapStorable PhysicalDeviceFragmentDensityMapPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapFromCStruct PhysicalDeviceFragmentDensityMapPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapToCStruct PhysicalDeviceFragmentDensityMapPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapZero PhysicalDeviceFragmentDensityMapPropertiesEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map
VkRenderPassFragmentDensityMapCreateInfoEXT - Structure containing fragment density map attachment for render pass
Description
The fragment density map is read at an implementation-dependent time
with the following constraints determined by the attachment’s image view
flags:
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT specifies that the fragment density map will be read by the device during PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT
IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT specifies that the fragment density map will be read by the host during endCommandBuffer of the primary command buffer that the render pass is recorded into
Otherwise the fragment density map will be read by the host during cmdBeginRenderPass
The fragment density map may additionally be read by the device during PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT for any mode.
If this structure is not present, it is as if
fragmentDensityMapAttachment was given as
ATTACHMENT_UNUSED.
Valid Usage
If
fragmentDensityMapAttachmentis not ATTACHMENT_UNUSED,fragmentDensityMapAttachmentmust not be an element of SubpassDescription::pInputAttachments, SubpassDescription::pColorAttachments, SubpassDescription::pResolveAttachments, SubpassDescription::pDepthStencilAttachment, or SubpassDescription::pPreserveAttachmentsfor any subpass
If
fragmentDensityMapAttachmentis not ATTACHMENT_UNUSED,layoutmust be equal to IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or IMAGE_LAYOUT_GENERALIf
fragmentDensityMapAttachmentis not ATTACHMENT_UNUSED,fragmentDensityMapAttachmentmust reference an attachment with aloadOpequal to ATTACHMENT_LOAD_OP_LOAD or ATTACHMENT_LOAD_OP_DONT_CAREIf
fragmentDensityMapAttachmentis not ATTACHMENT_UNUSED,fragmentDensityMapAttachmentmust reference an attachment with astoreOpequal to ATTACHMENT_STORE_OP_DONT_CARE
Valid Usage (Implicit)
fragmentDensityMapAttachmentmust be a valid AttachmentReference structure
Structure Chaining
See Also
VK_EXT_fragment_density_map, AttachmentReference, StructureType
Constructors
RenderPassFragmentDensityMapCreateInfoEXTfragmentDensityMapAttachment :: AttachmentReferencefragmentDensityMapAttachmentis the fragment density map to use for the render pass.
Instances5Show, Storable, FromCStruct, ToCStruct, Zero
Show RenderPassFragmentDensityMapCreateInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapStorable RenderPassFragmentDensityMapCreateInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapFromCStruct RenderPassFragmentDensityMapCreateInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapToCStruct RenderPassFragmentDensityMapCreateInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapZero RenderPassFragmentDensityMapCreateInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map
VkRenderingFragmentDensityMapAttachmentInfoEXT - Structure specifying fragment shading rate attachment information
Description
This structure can be included in the pNext chain of
RenderingInfo to
define a fragment density map. If this structure is not included in the
pNext chain, imageView is treated as
NULL_HANDLE.
Valid Usage
If
imageViewis not NULL_HANDLE,imageLayoutmust be IMAGE_LAYOUT_GENERAL or IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
If
imageViewis not NULL_HANDLE, it must have been created with the IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT usage flag setIf
imageViewis not NULL_HANDLE, it must not have been created with IMAGE_CREATE_SUBSAMPLED_BIT_EXTIf the multiview feature is not enabled, PhysicalDeviceProperties::
apiVersionis less than Vulkan 1.1, andimageViewis not NULL_HANDLE, it must have alayerCountequal to1
Valid Usage (Implicit)
imageViewmust be a valid ImageView handleimageLayoutmust be a valid ImageLayout value
Structure Chaining
See Also
VK_EXT_fragment_density_map, VK_KHR_dynamic_rendering, VK_VERSION_1_3, ImageLayout, ImageView, StructureType
Constructors
RenderingFragmentDensityMapAttachmentInfoEXTimageView :: ImageViewimageViewis the image view that will be used as a fragment density map attachment.imageLayout :: ImageLayoutimageLayoutis the layout thatimageViewwill be in during rendering.
Instances6Eq, Show, Storable, FromCStruct, ToCStruct, Zero
Eq RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapShow RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapStorable RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapFromCStruct RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapToCStruct RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_mapZero RenderingFragmentDensityMapAttachmentInfoEXTDefined in vulkan-3.27 · Vulkan.Extensions.VK_EXT_fragment_density_map