Changelog
All notable changes to this package will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
[2.6.0] - 2026-09-03
Added
- Added a Dynamic Texture option to the source texture component. When enabled, the layer's swapchain image is rewritten every frame, so textures whose contents are updated externally on the GPU (such as native plugin or AHardwareBuffer-backed
Texture2Dobjects) no longer appear static. - Added a
Mip Modeoption to the source texture component that controls how a Local Texture's mip levels reach the layer swapchain:CopyFromSource,AutoGenerate, orNone(default). See the Source Textures component documentation for details. - Added an inspector warning to the Equirect layer when the Upper Vertical Angle is at or below the Lower Vertical Angle.
Fixed
- Fixed per-frame managed allocations in
CompositionLayerManagercaused byCompositionLayerManager.LayerInfonot implementingIEquatable<LayerInfo>. - Fixed
InteractableUIMirrorso that XRI input continues to work correctly when switching a composition layer's type at runtime viaChangeLayerDataType. - Fixed
InteractableUIMirrorso that interactive UI controls like sliders, scrollbars, scroll views, and joystick scrolling work correctly on composition layer canvases. - Fixed the Default Scene Layer so it is reliably found after domain reload, scene reopening, and other editor lifecycle events, and no longer produces an error when duplicated.
- Fixed documentation to clarify that single-pass instanced (SPI) rendering and GPU Instancing are supported for projection layers.
- Fixed static cleanup analyzer warnings in Unity 6000.7.
- Fixed Equirect layer emulation so that the Editor preview matches the headset output.
Changed
- Raised the minimum supported Unity Editor version to 6000.0.
- The Default Scene Layer is now serialized into the scene (persisted in the scene file, still excluded from builds) instead of being recreated on load.
- Changed how the Equirect layer's Upper and Lower Vertical Angles are represented. They are now measured from the equator (positive above, negative below), so a full sphere uses Upper +90 and Lower -90 instead of the previous +90 and +90. Existing layers are upgraded automatically.
[2.5.0] - 2026-06-15
Added
- Added hierarchy window warning icon and inspector warnings for camera clear flags or background alpha using underlay or passthrough composition layers.
- Added the current render texture resolution to the
InteractableUIMirrorinspector. - Added Individual, Left and Right Target Eye option to the source texture component. Allowing per-eye or single eye textures for standard Quad, Cylinder, Equirect, and Cube layers.
Fixed
- Fixed Color Scale and Bias emulation in the Editor and Standalone builds.
- Fixed composition layer emulation not rendering in Editor Play Mode or Standalone builds.
- Fixed
CompositionLayerto successfully open prefabs from scenes that do not contain any composition layers. - Fixed
EmulatedLayerDataso it no longer logs an error related to a destroyed CompositionLayer when changing scenes from within prefab mode. - Fixed
InteractableUIMirrorso that its fields are correctly serialized, resolving a warning that was previously logged to the console in Unity 6000.6.0a5 or newer. - Fixed
CameraTargetTextureFactoryso that it no longer logs an error related to releasing render texture that is set as Camera.targetTexture.
Changed
- Emulation in Play mode and Standalone builds previously depended on the now obsolete
com.unity.modules.vrand now depends oncom.unity.modules.xrand falls back to always emulating when the XR module is not present.
[2.4.0] - 2026-03-12
Added
- Added
CompositionLayerManager.TryGetLayerId(CompositionLayer layer, out int layerId)to get a layer's unique id instead ofGetInstanceID()orGetEntityID().
Fixed
- Fixed
InteractableUIMirrorto support creating or duplicating them during runtime such as with prefabs or asset bundles. - Fixed
CompositionLayersRuntimeSettingsso that theScriptproperty is no longer modifiable from the inspector. - Fixed
InteractableUIMirrorso cameras can be added at runtime without camera layer issues. - Fixed
ScriptableSingletonwarning log when first launching a project with the composition layers package.
Changed
- Changed
InteractactableUIMirrorCameras so they are visible in the inspector - Changed how CompositionLayerManager initializes
LayerInfo.Idto use its own generated unique ids instead ofGetInstanceID()orGetEntityID().
[2.3.0] - 2025-12-15
Added
- Added Background Type option to the Composition Layer Splash Screen settings to allow using Passthrough as the background.
Fixed
- Fixed
DefaultLayerDataso it no longer logs a warning related to theSerializeReferenceAttributewhen you install this package for the first time. - Fixed internal code so that inspecting a
CompositionLayersRuntimeSettingsobject soon after package import no longer causes a warning to be logged to the console.
[2.2.0] - 2025-10-07
Deprecated
- Deprecated
EmulationLayerUniversalScriptableRendererPass.Execute. This method depends on URP Compatibility Mode, which has been deprecated since Unity 6.0 and is removed in Unity 6.4.
[2.1.1] - 2025-09-30
Added
- Added Right-eye configuration support to the Stereo Projection Layer.
Fixed
- Fixed
CompositionLayer'sLayerTypeproperty to not ask the user twice to add an extension when set to anything other than[Empty]if the user choosesNo. - Fixed
NullReferenceExceptionwhen adding a Source Textures component to an empty GameObject. - Fixed shader warnings.
- Fixed a build warning by updating
SceneEmulatedProjectionRigto no longer implementIPreprocessBuildWithReport.
[2.1.0] - 2025-06-25
Added
- Added Game view and Standalone color scale bias emulation for Default Scene Layer for the Built-in Render Pipeline and Universal Render Pipeline.
- Added Project Validation rules for Composition Layer Transparency.
Fixed
- Fixed
CompositionLayerManagerso that it correctly sets layers to be visible when they are enabled after previously being disabled.
[2.0.0] - 2024-12-10
Fixed
- Fixed Composition Layers not hiding or showing correctly when using Scene Visibility in the hierarchy.
- Fixed an issue where non-cubemap textures could be assigned to the Cube Projection Layer.
Changed
- Moved
ProjectionEyeRigUtilto theUnity.XR.CompositionLayers.Layers.Editornamespace. - Moved
CompositionSplashto theUnity.XR.CompositionLayersnamespace.
[1.0.0] - 2024-10-09
Added
- Added Default Layer Support allows for the creation of a default layer and rearragment of the default layer order.
- Added Composition Layer Sample Scene to demonstrate the use of Composition Layers in a scene.
- Added Composition Layer Android Sample Surface Scene to demonstrate the use of Andriods External Surface in a scene.
- Added supporing HDR Tonemapping extension. It allows to set HDR parameters for each layer.
- Added supporting MirrorViewRenderer. It provides to draw mirror view rendering with layers on XR.
- Added supporting automatically renderer feature settings on URP and HDRP.
Fixed
- Fixed Interactable UI Scalings are now consistent between editor and build.
- Fixed Projection Eye Rig Emulation for URP and Unity6.
Changed
- Removed EmulationLayerUniversalScriptableRendererFeature.(Manual configuration is no longer required.)
[0.6.0] - 2024-06-26
Added
- Added a projection validation to check if EmulationLayerUniversalScriptableRendererFeature is added to the current pipeline for URP. Click "Fix" button will automatically add the emulation render feature to enable URP Editor emulation.
- Added composition layer splash screen support. See Composition Layer Splash Screen section in documentation for details.
Changed
- Emulation In Playmode or Standalone now is only available when no XR provider is active or no headset is connected for visual approximation and preview purposes.
Fixed
- Fixed error spamming issue when creating a UI canvas and drag it into a quad layer.