vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Description

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

VK_KHR_create_renderpass2      or

Vulkan Version 1.2 and

Vulkan Version 1.3      or

VK_KHR_dynamic_rendering

Contact
Extension Proposal
VK_EXT_fragment_density_map_offset

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

New Enum Constants

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.

Synopsis

Documentation

cmdEndRendering2EXT :: forall {a :: [Type]} {io}. (Extendss RenderingEndInfoKHR a, PokeChain a, MonadIO io) => CommandBuffer -> ("renderingEndInfo" ::: Maybe (RenderingEndInfoKHR a)) -> io () Source #

data PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source #

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.

Valid Usage (Implicit)

See Also

VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Bool32, StructureType

Constructors

PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT 

Fields

Instances

Instances details
Eq PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Storable PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Show PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

FromCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

ToCStruct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Zero PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

data PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source #

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.

Valid Usage (Implicit)

See Also

VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Extent2D, StructureType

Constructors

PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT 

Fields

Instances

Instances details
Storable PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Show PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

FromCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

ToCStruct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Zero PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

data RenderPassFragmentDensityMapOffsetEndInfoEXT Source #

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, fragmentDensityOffsetCount must equal 0

Valid Usage (Implicit)

  • If fragmentDensityOffsetCount is not 0, pFragmentDensityOffsets must be a valid pointer to an array of fragmentDensityOffsetCount Offset2D structures

See Also

VK_EXT_fragment_density_map_offset, VK_QCOM_fragment_density_map_offset, Offset2D, StructureType

Constructors

RenderPassFragmentDensityMapOffsetEndInfoEXT 

Fields

Instances

Instances details
Show RenderPassFragmentDensityMapOffsetEndInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

FromCStruct RenderPassFragmentDensityMapOffsetEndInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

ToCStruct RenderPassFragmentDensityMapOffsetEndInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

Zero RenderPassFragmentDensityMapOffsetEndInfoEXT Source # 
Instance details

Defined in Vulkan.Extensions.VK_EXT_fragment_density_map_offset

type EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME = "VK_EXT_fragment_density_map_offset" Source #

data RenderingEndInfoKHR (es :: [Type]) Source #

VkRenderingEndInfoKHR - Structure specifying render pass end information

Valid Usage (Implicit)

See Also

VK_EXT_fragment_density_map_offset, VK_KHR_maintenance10, StructureType, cmdEndRendering2KHR, cmdEndRendering2KHR

Constructors

RenderingEndInfoKHR 

Fields

  • next :: Chain es

    pNext is NULL or a pointer to a structure extending this structure.

Instances

Instances details
Extensible RenderingEndInfoKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

Methods

extensibleTypeName :: String Source #

getNext :: forall (es :: [Type]). RenderingEndInfoKHR es -> Chain es Source #

setNext :: forall (ds :: [Type]) (es :: [Type]). RenderingEndInfoKHR ds -> Chain es -> RenderingEndInfoKHR es Source #

extends :: forall e b proxy. Typeable e => proxy e -> (Extends RenderingEndInfoKHR e => b) -> Maybe b Source #

Show (Chain es) => Show (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

(Extendss RenderingEndInfoKHR es, PeekChain es) => FromCStruct (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

(Extendss RenderingEndInfoKHR es, PokeChain es) => ToCStruct (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

es ~ ('[] :: [Type]) => Zero (RenderingEndInfoKHR es) Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_maintenance10

cmdEndRendering2KHR Source #

Arguments

:: forall (a :: [Type]) io. (Extendss RenderingEndInfoKHR a, PokeChain a, MonadIO io) 
=> CommandBuffer

commandBuffer is the command buffer in which to record the command.

-> ("renderingEndInfo" ::: Maybe (RenderingEndInfoKHR a))

pRenderingEndInfo is NULL or 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 in commandBuffer
  • This 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)

  • If pRenderingEndInfo is not NULL, pRenderingEndInfo must be a valid pointer to a valid RenderingEndInfoKHR structure
  • commandBuffer must be in the recording state
  • The CommandPool that commandBuffer was allocated from must support QUEUE_GRAPHICS_BIT operations
  • This 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 commandBuffer must be externally synchronized
  • Host access to the CommandPool that commandBuffer was allocated from must be externally synchronized

Command Properties

'

Command Buffer LevelsRender Pass ScopeVideo Coding ScopeSupported Queue TypesCommand Type
Primary SecondaryInside 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