Acquiring an index does not make the image ready for writing. Understand order, timeout, GPU synchronization and errors that break the XR frame.

Direct answer

In OpenXR, xrAcquireSwapchainImage returns the index of the next image, but does not guarantee that it can already receive graphics commands. The application must call xrWaitSwapchainImage before writing and xrReleaseSwapchainImage after completing the commands that reference it. Incorrect ordering may produce XR_ERROR_CALL_ORDER_INVALID; Additionally, Vulkan and D3D12 enforce states and queue properties that need to be compatible when the image returns to runtime.

Acquire reservation; wait authorizes use

Writing commands before wait may dispute the image with the composer. The pipeline must represent these states explicitly.

Timeout is not a ready image

When the deadline expires, the application needs to continue waiting or adapting the frame, without releasing or writing as if it was successful.

Release transfers responsibility

After finishing commands that use the image, the application returns it; the composer uses the most recently released image in the submitted frame.

Graphics API adds own contract

Vulkan layout, D3D12 state, and queue property need to be returned to the format required by the runtime before releasing.

Nexus Reading

Centralize the swapchain cycle, validate order in development, record timeouts, and test under GPU load to avoid intermittent defects.

FAQ

Does Acquire already allow rendering?

No. It is mandatory to wait with xrWaitSwapchainImage before writing to the image.

What happens with incorrect order?

The runtime may return XR_ERROR_CALL_ORDER_INVALID and the frame should not proceed as if successful.

Release wait for GPU to finish?

The application is responsible for completing and synchronizing the commands according to the graphics API before returning the image.

Essential guides to delve deeper into the decision

Primary sources and references

This editorial analysis was produced by Nexus from the official sources below, consulted on October 27, 2026. The text is original and interprets practical implications for companies.

Date reported by main source: OpenXR 1.1.65 consulted on October 27, 2026; technical analysis.