Goal
Bring the full XR_EXT_display_zones paradigm — N 3D zones + Local2D zones + per-frame wish mask + transparency (see-through) + layer composition + canvas sub-rects — to the D3D12, VK, and GL Leia DPs, at D3D11 parity, and ship demo/parity apps for each.
Today the paradigm is D3D11-only on the DP side.
Current state (per Leia DP)
| API |
Transparency |
Canvas sub-rect |
Zones DP path (publish/clear/get_local_zone*) |
#68 bg-UV remap-skip |
D3D11 (leia_display_processor_d3d11.cpp) |
✅ compose-under-bg + alpha-gate |
✅ |
✅ |
✅ active |
D3D12 (leia_display_processor_d3d12.cpp) |
✅ |
✅ (remap code) |
❌ none |
plumbed, dormant |
GL (leia_display_processor_gl.cpp) |
✅ |
✅ (remap code) |
❌ none |
plumbed, dormant |
VK (leia_display_processor.cpp) |
✅ full-window only |
❌ (void)canvas_* — TODO(#85) |
❌ none |
n/a (no canvas remap) |
Notably the demos are VK, where canvas sub-rects are ignored (#85) and there is no zones path — so windowed/zoned VK demos are unsupported today (full-window VK works fine).
Scope (per non-D3D11 API)
Demo / parity apps
References
Goal
Bring the full
XR_EXT_display_zonesparadigm — N 3D zones + Local2D zones + per-frame wish mask + transparency (see-through) + layer composition + canvas sub-rects — to the D3D12, VK, and GL Leia DPs, at D3D11 parity, and ship demo/parity apps for each.Today the paradigm is D3D11-only on the DP side.
Current state (per Leia DP)
publish/clear/get_local_zone*)leia_display_processor_d3d11.cpp)leia_display_processor_d3d12.cpp)leia_display_processor_gl.cpp)leia_display_processor.cpp)(void)canvas_*—TODO(#85)Notably the demos are VK, where canvas sub-rects are ignored (
#85) and there is no zones path — so windowed/zoned VK demos are unsupported today (full-window VK works fine).Scope (per non-D3D11 API)
get_local_zone_caps,publish_local_zone_mask,clear_local_zone_mask(mirror D3D11 — drives the per-region 2D/3D lens viarequest_display_mode; mask is a physical lens signal only, never content — ADR-028).canvas_offset/width/heightinprocess_atlas(VK: resolve the#85TODO — sub-rect viewport/scissor + weaver phase offset).#68set_shared_texture_presentbg-UV remap-skip gate (shared_texture_present && zone_active) once a zones path exists.Demo / parity apps
cube_zones_texture_d3d12_win(mirrorcube_zones_texture_d3d11_win)cube_zones_texture_vk_win(the demos' API — highest priority)cube_zones_texture_gl_win(defensive; no GL texture app exists yet)References
docs/specs/extensions/XR_EXT_display_zones.md;docs/roadmap/display-zones.mdset_shared_texture_presentbg-UV 1:1 + DComp present) — the D3D11 reference implementation