@@ -28,6 +28,7 @@ internal struct TestStrippingData : IShaderScriptableStrippingData
2828 public bool stripScreenCoordOverrideVariants { get ; set ; }
2929 public bool stripUnusedVariants { get ; set ; }
3030 public bool stripUnusedPostProcessingVariants { get ; set ; }
31+ public bool stripUnusedXRVariants { get ; set ; }
3132 public bool IsHDRDisplaySupportEnabled { get ; set ; }
3233
3334 public Shader shader { get ; set ; }
@@ -78,7 +79,7 @@ class TestHelper
7879 | VolumeFeatures . BloomHQ | VolumeFeatures . BloomHQDirt ;
7980
8081
81- public TestHelper ( Shader shader , ShaderFeatures shaderFeatures , VolumeFeatures volumeFeatures = VolumeFeatures . None , bool stripUnusedVariants = true )
82+ public TestHelper ( Shader shader , ShaderFeatures shaderFeatures , VolumeFeatures volumeFeatures = VolumeFeatures . None , bool stripUnusedVariants = true , bool stripUnusedXRVariants = true )
8283 {
8384 s_PassKeywords = new List < string > ( ) { } ;
8485 s_EnabledKeywords = new List < string > ( ) { } ;
@@ -92,6 +93,7 @@ public TestHelper(Shader shader, ShaderFeatures shaderFeatures, VolumeFeatures v
9293 data . volumeFeatures = volumeFeatures ;
9394 data . stripUnusedVariants = stripUnusedVariants ;
9495 data . strip2DPasses = false ;
96+ data . stripUnusedXRVariants = stripUnusedXRVariants ;
9597
9698 featureStripTool = new ShaderStripTool < ShaderFeatures > ( data . shaderFeatures , ref data ) ;
9799 }
@@ -705,6 +707,8 @@ public void StripUnsupportedVariants_EditorVisualization(Shader shader, bool exp
705707 [ TestCase ( "Hidden/Universal Render Pipeline/SubpixelMorphologicalAntialiasing" ) ]
706708 [ TestCase ( "Hidden/Universal Render Pipeline/LensFlareDataDriven" ) ]
707709 [ TestCase ( "Hidden/Universal Render Pipeline/LensFlareScreenSpace" ) ]
710+ [ TestCase ( "Hidden/Universal Render Pipeline/XR/XROcclusionMesh" ) ]
711+ [ TestCase ( "Hidden/Universal Render Pipeline/XR/XRMirrorView" ) ]
708712 public void TestStripUnusedFeatures ( string shaderName )
709713 {
710714 Shader shader = Shader . Find ( shaderName ) ;
@@ -736,6 +740,7 @@ public void TestStripUnusedFeatures(string shaderName)
736740 TestStripUnusedFeatures_SHAuto ( shader ) ;
737741 TestStripUnusedFeatures_DataDrivenLensFlare ( shader ) ;
738742 TestStripUnusedFeatures_ScreenSpaceLensFlare ( shader ) ;
743+ TestStripUnusedFeatures_XR ( shader ) ;
739744 }
740745
741746 public void TestStripUnusedFeatures_DebugDisplay ( Shader shader )
@@ -933,6 +938,22 @@ public void TestStripUnusedFeatures_DataDrivenLensFlare(Shader shader)
933938 helper . IsTrue ( isLensFlareDataDriven ? helper . stripper . StripUnusedFeatures_DataDrivenLensFlare ( ref helper . data ) : ! helper . stripper . StripUnusedFeatures_DataDrivenLensFlare ( ref helper . data ) ) ;
934939 }
935940
941+ public void TestStripUnusedFeatures_XR ( Shader shader )
942+ {
943+ TestHelper helper ;
944+
945+ helper = new TestHelper ( shader , ShaderFeatures . None , stripUnusedXRVariants : false ) ;
946+ helper . IsFalse ( helper . stripper . StripUnusedFeatures_XROcclusionMesh ( ref helper . data ) ) ;
947+ helper . IsFalse ( helper . stripper . StripUnusedFeatures_XRMirrorView ( ref helper . data ) ) ;
948+
949+ helper = new TestHelper ( shader , ShaderFeatures . None , stripUnusedXRVariants : true ) ;
950+ bool isXROcclusion = shader != null && shader . name == "Hidden/Universal Render Pipeline/XR/XROcclusionMesh" ;
951+ bool isXRMirror = shader != null && shader . name == "Hidden/Universal Render Pipeline/XR/XRMirrorView" ;
952+ //We should strip the shader only if it's the XR shader.
953+ helper . IsTrue ( isXROcclusion ? helper . stripper . StripUnusedFeatures_XROcclusionMesh ( ref helper . data ) : ! helper . stripper . StripUnusedFeatures_XROcclusionMesh ( ref helper . data ) ) ;
954+ helper . IsTrue ( isXRMirror ? helper . stripper . StripUnusedFeatures_XRMirrorView ( ref helper . data ) : ! helper . stripper . StripUnusedFeatures_XRMirrorView ( ref helper . data ) ) ;
955+ }
956+
936957 public void TestStripUnusedFeatures_DeferredRendering ( Shader shader )
937958 {
938959 TestHelper helper ;
0 commit comments