C Specification
XR_DEFINE_HANDLE(XrSwapchain)Description
Most XR applications present rendered images to the user. To allow this, the runtime provides collections of images organized in "swapchains" for the application to render into and submit. Note that these do not necessarily correspond to objects defined by any given graphics API named "swapchains". The runtime must allow applications to create multiple swapchains.
Swapchain image format support by the runtime is reported through use of the xrEnumerateSwapchainFormats function.
Swapchain images can be 2D or 2D Array.
Rendering operations involving composition of submitted layers are assumed
to be internally performed by the runtime in linear color space.
Images intended to be interpreted as being non-linear-encoded ("sRGB") must
be created using an API-specific "sRGB" format (e.g.
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8,
VK_FORMAT_R8G8B8A8_SRGB) to signal the need for sRGB-to-linear
conversion (whether automatic or manual) when sampled by the runtime.
All other formats will be treated as linear values.
OpenXR applications should avoid submitting linear encoded 8 bit color data
(e.g. DXGI_FORMAT_R8G8B8A8_UNORM) whenever possible as it may result
in color banding.
| Note | Note For additional information, see: Gritz, L. and d’Eon, E. 2007. The Importance of Being Linear. In: H. Nguyen, ed., GPU Gems 3. Addison-Wesley Professional. https://developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-24-importance-being-linear | 
| Note | Note DXGI resources will be created with their associated TYPELESS format, but the runtime will use the application-specified format for reading the data. | 
See Also
XR_DEFINE_HANDLE, XrCompositionLayerCubeKHR, XrSwapchainSubImage, xrAcquireSwapchainImage, xrCreateSwapchain, xrCreateSwapchainAndroidSurfaceKHR, xrDestroySwapchain, xrEnumerateSwapchainFormats, xrEnumerateSwapchainImages, xrGetSwapchainStateFB, xrReleaseSwapchainImage, xrUpdateSwapchainFB, xrWaitSwapchainImage
Document Notes
For more information, see the OpenXR Specification
This page is extracted from the OpenXR Specification. Fixes and changes should be made to the Specification, not directly.
Copyright
Copyright 2014-2025 The Khronos Group Inc.
This work is licensed under a Creative Commons Attribution 4.0 International License.