# OpenXR: complete custom composition layer support 

**URL:** <https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826>\
**Category:** XR Development\
**Tags:** unreal-engine, Epic-Pro-Support, question\
**Created:** [August 3, 2026, 10:18am UTC](https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826 "2026-08-03T10:18:38Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![anonymous-edc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous-edc](https://forums.unrealengine.com/u/anonymous-edc)\
**Post date:** [August 3, 2026, 10:18am UTC](https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826/1 "2026-08-03T10:18:38Z")

</div>

[https://github.com/EpicGames/UnrealEngine/pull/15038/commits](https://github.com/EpicGames/UnrealEngine/pull/15038/commits)

​

Complete the extension hooks introduced by [https://github.com/EpicGames/UnrealEngine/commit/fa9d8f00acff8654f131bbed25d4142f50e3879d](https://github.com/EpicGames/UnrealEngine/commit/fa9d8f00acff8654f131bbed25d4142f50e3879d) so plugin-defined layer shapes can enter the native swapchain path and carry composition layer structures not known by OpenXRHMD.​

- let extension plugins opt custom shapes into native layer creation on the game thread

- add fixed-size aligned inline storage for extension-defined composition layer structures

- validate custom structures against the OpenXR base-header layout at compile time

- route header access, next-chain updates, and xrEndFrame submission through GetHeader()

- document the fixed storage size and alignment as an ABI contract

​

previous EPS ticket: [Content removed]

[Attachment Removed]

---

<div class="post-metadata">

**Author:** ![anonymous-edc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous-edc](https://forums.unrealengine.com/u/anonymous-edc)\
**Post date:** [August 4, 2026, 7:29am UTC](https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826/2 "2026-08-04T07:29:08Z")

</div>

Here is an example implementation on external plugin：

[Image Removed]

[Attachment Removed]

---

<div class="post-metadata">

**Author:** ![anonymous-edc](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous-edc](https://forums.unrealengine.com/u/anonymous-edc)\
**Post date:** [September 2, 2026, 2:40am UTC](https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826/3 "2026-09-02T02:40:32Z")

</div>

I’m not sure if there’s a better solution available.

[Attachment Removed]

---

<div class="post-metadata">

**Author:** ![christopher.fiala](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@christopher.fiala](https://forums.unrealengine.com/u/christopher.fiala)\
**Post date:** [September 3, 2026, 3:33pm UTC](https://forums.unrealengine.com/t/openxr-complete-custom-composition-layer-support/2836826/4 "2026-09-03T15:33:54Z")

</div>

Hi Seamus,

Although it isn’t 100% confirmed, we’re currently planning a 5.9 release for Unreal Engine, and I’ve put this PR into the task list for it. I’ll try and give it a look in the next couple weeks and get back to you if it needs adjustments, or otherwise go ahead w/ submitting it to Main.

Thanks!

Christopher Fiala

[Attachment Removed]
