vulkan
Safe HaskellNone
LanguageHaskell2010

Vulkan.Extensions.VK_AMD_display_native_hdr

Description

Name

VK_AMD_display_native_hdr - device extension

VK_AMD_display_native_hdr

Name String
VK_AMD_display_native_hdr
Extension Type
Device extension
Registered Extension Number
214
Revision
1
Ratification Status
Not ratified
Extension and Version Dependencies

VK_KHR_get_physical_device_properties2      or

Vulkan Version 1.1 and VK_KHR_get_surface_capabilities2 and VK_KHR_swapchain

Contact

Other Extension Metadata

Last Modified Date
2018-12-18
IP Status
No known IP claims.
Contributors
  • Matthaeus G. Chajdas, AMD
  • Aaron Hagan, AMD
  • Aric Cyr, AMD
  • Timothy Lottes, AMD
  • Derrick Owens, AMD
  • Daniel Rakos, AMD

Description

This extension introduces the following display native HDR features to Vulkan:

  • A new ColorSpaceKHR enum for setting the native display color space. For example, this color space would be set by the swapchain to use the native color space in Freesync2 displays.
  • Local dimming control

New Commands

New Structures

New Enum Constants

Issues

None.

Examples

None.

Version History

  • Revision 1, 2018-12-18 (Daniel Rakos)

    • Initial revision

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

setLocalDimmingAMD Source #

Arguments

:: MonadIO io 
=> Device

device is the device associated with swapChain.

-> SwapchainKHR

swapChain handle to enable local dimming.

-> ("localDimmingEnable" ::: Bool)

localDimmingEnable specifies whether local dimming is enabled for the swapchain.

-> io () 

vkSetLocalDimmingAMD - Set Local Dimming

Valid Usage (Implicit)

  • device must be a valid Device handle
  • swapChain must be a valid SwapchainKHR handle
  • swapChain must have been created, allocated, or retrieved from device

Valid Usage

See Also

VK_AMD_display_native_hdr, Bool32, Device, SwapchainKHR

data DisplayNativeHdrSurfaceCapabilitiesAMD Source #

VkDisplayNativeHdrSurfaceCapabilitiesAMD - Structure describing display native HDR specific capabilities of a surface

Valid Usage (Implicit)

See Also

VK_AMD_display_native_hdr, Bool32, StructureType

Constructors

DisplayNativeHdrSurfaceCapabilitiesAMD 

Fields

Instances

Instances details
Eq DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Storable DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Show DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

FromCStruct DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

ToCStruct DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Zero DisplayNativeHdrSurfaceCapabilitiesAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

data SwapchainDisplayNativeHdrCreateInfoAMD Source #

VkSwapchainDisplayNativeHdrCreateInfoAMD - Structure specifying display native HDR parameters of a newly created swapchain object

Description

If the pNext chain of SwapchainCreateInfoKHR does not include this structure, the default value for localDimmingEnable is TRUE, meaning local dimming is initially enabled for the swapchain.

Valid Usage (Implicit)

Valid Usage

See Also

VK_AMD_display_native_hdr, Bool32, StructureType

Constructors

SwapchainDisplayNativeHdrCreateInfoAMD 

Fields

Instances

Instances details
Eq SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Storable SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Show SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

FromCStruct SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

ToCStruct SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

Zero SwapchainDisplayNativeHdrCreateInfoAMD Source # 
Instance details

Defined in Vulkan.Extensions.VK_AMD_display_native_hdr

type AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME = "VK_AMD_display_native_hdr" Source #

newtype SwapchainKHR Source #

VkSwapchainKHR - Opaque handle to a swapchain object

Description

A swapchain is an abstraction for an array of presentable images that are associated with a surface. The presentable images are represented by Image objects created by the platform. One image (which can be an array image for multiview/stereoscopic-3D surfaces) is displayed at a time, but multiple images can be queued for presentation. An application renders to the image, and then queues the image for presentation to the surface.

A native window cannot be associated with more than one non-retired swapchain at a time. Further, swapchains cannot be created for native windows that have a non-Vulkan graphics API surface associated with them.

The presentation engine is an abstraction for the platform’s compositor or display engine.

The presentation engine may be synchronous or asynchronous with respect to the application and/or logical device.

Some implementations may use the device’s graphics queue or dedicated presentation hardware to perform presentation.

The presentable images of a swapchain are owned by the presentation engine. An application can acquire use of a presentable image from the presentation engine. Use of a presentable image must occur only after the image is returned by acquireNextImageKHR, and before it is released by queuePresentKHR. This includes transitioning the image layout and rendering commands.

An application can acquire use of a presentable image with acquireNextImageKHR. After acquiring a presentable image and before modifying it, the application must use a synchronization primitive to ensure that the presentation engine has finished reading from the image. The application can then transition the image’s layout, queue rendering commands to it, etc. Finally, the application presents the image with queuePresentKHR, which releases the acquisition of the image. The application can also release the acquisition of the image through releaseSwapchainImagesKHR, if the image is not in use by the device, and skip the present operation.

The presentation engine controls the order in which presentable images are acquired for use by the application.

This allows the platform to handle situations which require out-of-order return of images after presentation. At the same time, it allows the application to generate command buffers referencing all of the images in the swapchain at initialization time, rather than in its main loop.

See Also

VK_DEFINE_NON_DISPATCHABLE_HANDLE, VK_KHR_swapchain, AcquireNextImageInfoKHR, BindImageMemorySwapchainInfoKHR, ImageSwapchainCreateInfoKHR, PastPresentationTimingInfoEXT, PresentInfoKHR, ReleaseSwapchainImagesInfoKHR, SwapchainCalibratedTimestampInfoEXT, SwapchainCreateInfoKHR, acquireFullScreenExclusiveModeEXT, acquireNextImageKHR, createSharedSwapchainsKHR, createSwapchainKHR, destroySwapchainKHR, getLatencyTimingsNV, getPastPresentationTimingGOOGLE, getRefreshCycleDurationGOOGLE, getSwapchainCounterEXT, getSwapchainImagesKHR, getSwapchainStatusKHR, getSwapchainTimeDomainPropertiesEXT, getSwapchainTimingPropertiesEXT, latencySleepNV, queuePresentKHR, releaseFullScreenExclusiveModeEXT, setHdrMetadataEXT, setLatencyMarkerNV, setLatencySleepModeNV, setLocalDimmingAMD, setSwapchainPresentTimingQueueSizeEXT, waitForPresent2KHR, waitForPresentKHR

Constructors

SwapchainKHR Word64 

Instances

Instances details
Eq SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Ord SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Storable SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Show SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

HasObjectType SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

IsHandle SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

Zero SwapchainKHR Source # 
Instance details

Defined in Vulkan.Extensions.Handles

newtype ColorSpaceKHR Source #

VkColorSpaceKHR - Supported color space of the presentation engine

Description

In the initial release of the VK_KHR_surface and VK_KHR_swapchain extensions, the token COLORSPACE_SRGB_NONLINEAR_KHR was used. Starting in the 2016-05-13 updates to the extension branches, matching release 1.0.13 of the core API specification, COLOR_SPACE_SRGB_NONLINEAR_KHR is used instead for consistency with Vulkan naming rules. The older enum is still available for backwards compatibility.

In older versions of this extension COLOR_SPACE_DISPLAY_P3_LINEAR_EXT was misnamed COLOR_SPACE_DCI_P3_LINEAR_EXT. This has been updated to indicate that it uses RGB color encoding, not XYZ. The old name is legacy but is maintained for backwards compatibility.

In older versions of the VK_EXT_swapchain_colorspace extension, COLOR_SPACE_DOLBYVISION_EXT was exposed. The intent was to indicate the presentation engine shall decode an image using the SMPTE ST 2084 Perceptual Quantizer (PQ) EOTF, and then apply a proprietary OOTF to process the image. However, Dolby Vision profile 8.4 describes an encoding using the Hybrid Log Gamma (HLG) OETF, and there is no swapchain extension for signaling Dolby Vision metadata to be used by a proprietary OOTF. This enum is legacy but is maintained for backwards compatibility.

For a traditional “Linear” or non-gamma transfer function color space use COLOR_SPACE_PASS_THROUGH_EXT.

On Wayland, COLOR_SPACE_PASS_THROUGH_EXT can be used to disable color management by the WSI on a surface, which makes it possible for the application to create a wp_color_management_surface_v1 object without triggering a surface_exists protocol error.

See createWaylandSurfaceKHR

The presentation engine interprets the pixel values of the R, G, and B components as having been encoded using an appropriate transfer function. Applications should ensure that the appropriate transfer function has been applied. Texel encode requires that all implementations implicitly apply the sRGB EOTF-1 on R, G, and B components when shaders write to an sRGB pixel format image, which is useful for sRGB color spaces. For sRGB color spaces with other pixel formats, or other non-linear color spaces, applications can apply the transfer function explicitly in a shader. The A channel is always interpreted as linearly encoded.

This extension defines enums for ColorSpaceKHR that correspond to the following color spaces:

Name Red PrimaryGreen PrimaryBlue PrimaryWhite-point Transfer function
DCI-P3 1.000, 0.0000.000, 1.0000.000, 0.0000.3333, 0.3333DCI P3
Display-P3 0.680, 0.320 0.265, 0.690 0.150, 0.060 0.3127, 0.3290 (D65)Display-P3
BT709 0.640, 0.330 0.300, 0.600 0.150, 0.060 0.3127, 0.3290 (D65)BT709
sRGB 0.640, 0.330 0.300, 0.600 0.150, 0.060 0.3127, 0.3290 (D65)sRGB
extended sRGB 0.640, 0.330 0.300, 0.600 0.150, 0.060 0.3127, 0.3290 (D65)scRGB
HDR10_ST2084 0.708, 0.292 0.170, 0.797 0.131, 0.046 0.3127, 0.3290 (D65)ST2084 PQ
HDR10_HLG 0.708, 0.292 0.170, 0.797 0.131, 0.046 0.3127, 0.3290 (D65)HLG
Adobe RGB 0.640, 0.330 0.210, 0.710 0.150, 0.060 0.3127, 0.3290 (D65)Adobe RGB

Color Spaces and Attributes

The transfer functions are described in the “Transfer Functions” chapter of the Khronos Data Format Specification.

Except Display-P3 OETF, which is:

[begin{aligned} E & = begin{cases} 1.055 times L^{1 over 2.4} - 0.055 & text{for} 0.0030186 leq L leq 1 -- 12.92 times L & text{for} 0 leq L < 0.0030186

Constructors

ColorSpaceKHR Int32 

Instances

Instances details
Eq ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Ord ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Storable ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Read ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Show ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface

Zero ColorSpaceKHR Source # 
Instance details

Defined in Vulkan.Extensions.VK_KHR_surface