Skip to content

Commit 948a433

Browse files
theo-at-unityEvergreen
authored andcommitted
Clean SRP Smoke tests
- Remove the VR and XR modules, and therefore defines, from the SRP smoke tests. This allows catching compilation errors faster, in the `PR` pipelines instead of in the QV (so far only the (QV) OnDemandImport project was testing the path where these 2 modules are not used). More context in that [thread](https://unity.slack.com/archives/C20E70CAC/p1702559984581049?thread_ts=1702552104.332429&cid=C20E70CAC). - This change prompted me to remove all other non SRP related packages/modules from the manifest. The goal with SRP Smoke tests is really just to make sure all packages compile, and having too much bloat even potentially hides unnecessary dependencies as this is not what an end user would have locally. The 2 graphics tests were removed as they needed the graphics test framework package, which depended on the VR and XR modules. - Add the SRP smoke tests project to `PR URP`.
1 parent 50e699c commit 948a433

File tree

11 files changed

+66
-188
lines changed

11 files changed

+66
-188
lines changed

Packages/com.unity.render-pipelines.universal/Editor/ShaderBuildPreprocessor.cs

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -512,6 +512,17 @@ internal static ShaderFeatures GetSupportedShaderFeaturesFromRenderers(
512512
return combinedURPAssetShaderFeatures;
513513
}
514514

515+
internal static bool NeedsProceduralKeyword(ref RendererRequirements rendererRequirements)
516+
{
517+
#if ENABLE_VR && ENABLE_XR_MODULE
518+
var xrResourcesAreValid = GraphicsSettings.GetRenderPipelineSettings<UniversalRenderPipelineRuntimeXRResources>()?.valid ?? false;
519+
return rendererRequirements.isUniversalRenderer && xrResourcesAreValid;
520+
#else
521+
return false;
522+
#endif
523+
}
524+
525+
515526
internal static RendererRequirements GetRendererRequirements(ref UniversalRenderPipelineAsset urpAsset, ref ScriptableRenderer renderer, ref ScriptableRendererData rendererData, bool stripUnusedVariants)
516527
{
517528
UniversalRenderer universalRenderer = renderer as UniversalRenderer;
@@ -533,13 +544,7 @@ internal static RendererRequirements GetRendererRequirements(ref UniversalRender
533544
rsd.needsRenderPass = (rsd.isUniversalRenderer && rsd.renderingMode == RenderingMode.Deferred);
534545
rsd.needsReflectionProbeBlending = urpAsset.reflectionProbeBlending;
535546
rsd.needsReflectionProbeBoxProjection = urpAsset.reflectionProbeBoxProjection;
536-
537-
#if ENABLE_VR && ENABLE_XR_MODULE
538-
var xrResourcesAreValid = GraphicsSettings.GetRenderPipelineSettings<UniversalRenderPipelineRuntimeXRResources>()?.valid ?? false;
539-
rsd.needsProcedural = rsd.isUniversalRenderer && xrResourcesAreValid;
540-
#else
541-
rsd.needsProcedural = false;
542-
#endif
547+
rsd.needsProcedural = NeedsProceduralKeyword(ref rsd);
543548
rsd.needsSHVertexForSHAuto = s_UseSHPerVertexForSHAuto;
544549

545550
return rsd;

Packages/com.unity.render-pipelines.universal/Tests/Editor/ShaderBuildPreprocessorTests.cs

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -37,12 +37,12 @@ internal ShaderFeatures defaultURPAssetFeatures
3737
ShaderFeatures.MainLight
3838
| ShaderFeatures.MixedLighting
3939
| ShaderFeatures.TerrainHoles
40-
| ShaderFeatures.DrawProcedural
4140
| ShaderFeatures.LightCookies
4241
| ShaderFeatures.LODCrossFade
4342
| ShaderFeatures.AutoSHMode
4443
| ShaderFeatures.DataDrivenLensFlare
45-
| ShaderFeatures.ScreenSpaceLensFlare;
44+
| ShaderFeatures.ScreenSpaceLensFlare
45+
| GetCorrectProceduralKeyword(ref defaultRendererRequirements);
4646

4747
if (PlayerSettings.allowHDRDisplaySupport)
4848
defaultFeatures |= ShaderFeatures.HdrGrading;
@@ -51,23 +51,14 @@ internal ShaderFeatures defaultURPAssetFeatures
5151
}
5252
}
5353

54-
internal RendererRequirements defaultRendererRequirements = new()
54+
internal bool NeedsProceduralKeyword(ref RendererRequirements rendererRequirements) => ShaderBuildPreprocessor.NeedsProceduralKeyword(ref rendererRequirements);
55+
56+
internal ShaderFeatures GetCorrectProceduralKeyword(ref RendererRequirements rendererRequirements)
5557
{
56-
msaaSampleCount = 1,
57-
needsUnusedVariants = false,
58-
isUniversalRenderer = true,
59-
needsProcedural = true,
60-
needsAdditionalLightShadows = false,
61-
needsSoftShadows = false,
62-
needsShadowsOff = false,
63-
needsAdditionalLightsOff = false,
64-
needsGBufferRenderingLayers = false,
65-
needsGBufferAccurateNormals = false,
66-
needsRenderPass = false,
67-
needsReflectionProbeBlending = false,
68-
needsReflectionProbeBoxProjection = false,
69-
renderingMode = RenderingMode.Forward,
70-
};
58+
return NeedsProceduralKeyword(ref rendererRequirements) ? ShaderFeatures.DrawProcedural : ShaderFeatures.None;
59+
}
60+
61+
internal RendererRequirements defaultRendererRequirements = new();
7162

7263
public TestHelper()
7364
{
@@ -160,6 +151,22 @@ internal void AssertRendererRequirementsAndReset(RendererRequirements expected,
160151

161152
internal void ResetData()
162153
{
154+
defaultRendererRequirements = new();
155+
defaultRendererRequirements.msaaSampleCount = 1;
156+
defaultRendererRequirements.needsUnusedVariants = false;
157+
defaultRendererRequirements.isUniversalRenderer = true;
158+
defaultRendererRequirements.needsAdditionalLightShadows = false;
159+
defaultRendererRequirements.needsSoftShadows = false;
160+
defaultRendererRequirements.needsShadowsOff = false;
161+
defaultRendererRequirements.needsAdditionalLightsOff = false;
162+
defaultRendererRequirements.needsGBufferRenderingLayers = false;
163+
defaultRendererRequirements.needsGBufferAccurateNormals = false;
164+
defaultRendererRequirements.needsRenderPass = false;
165+
defaultRendererRequirements.needsReflectionProbeBlending = false;
166+
defaultRendererRequirements.needsReflectionProbeBoxProjection = false;
167+
defaultRendererRequirements.renderingMode = RenderingMode.Forward;
168+
defaultRendererRequirements.needsProcedural = NeedsProceduralKeyword(ref defaultRendererRequirements);
169+
163170
urpAsset.mainLightRenderingMode = LightRenderingMode.Disabled;
164171
urpAsset.supportsMainLightShadows = false;
165172
urpAsset.additionalLightsRenderingMode = LightRenderingMode.Disabled;
@@ -213,6 +220,7 @@ public void OneTimeSetup()
213220
public void Setup()
214221
{
215222
m_TestHelper = new();
223+
m_TestHelper.ResetData();
216224
}
217225

218226
[TearDown]
@@ -539,7 +547,7 @@ public void TestGetSupportedShaderFeaturesFromRenderer()
539547
// Initial state
540548
rendererRequirements = m_TestHelper.defaultRendererRequirements;
541549
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
542-
expected = ShaderFeatures.DrawProcedural;
550+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);
543551
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
544552

545553
// Procedural...
@@ -559,126 +567,124 @@ public void TestGetSupportedShaderFeaturesFromRenderer()
559567
rendererRequirements = m_TestHelper.defaultRendererRequirements;
560568
rendererRequirements.renderingMode = RenderingMode.Forward;
561569
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
562-
expected = ShaderFeatures.DrawProcedural;
570+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);
563571
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
564572

565573
rendererRequirements = m_TestHelper.defaultRendererRequirements;
566574
rendererRequirements.renderingMode = RenderingMode.ForwardPlus;
567575
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
568-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.ForwardPlus | ShaderFeatures.AdditionalLightsKeepOffVariants;
576+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.ForwardPlus | ShaderFeatures.AdditionalLightsKeepOffVariants;
569577
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
570578

571579
rendererRequirements = m_TestHelper.defaultRendererRequirements;
572580
rendererRequirements.renderingMode = RenderingMode.Deferred;
573581
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
574-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.DeferredShading;
582+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.DeferredShading;
575583
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
576584

577585
// The Off variant for Additional Lights
578586
rendererRequirements = m_TestHelper.defaultRendererRequirements;
579587
rendererRequirements.needsAdditionalLightsOff = false;
580588
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
581-
expected = ShaderFeatures.DrawProcedural;
589+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);
582590
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
583591

584592
rendererRequirements = m_TestHelper.defaultRendererRequirements;
585593
rendererRequirements.needsAdditionalLightsOff = true;
586594
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
587-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.AdditionalLightsKeepOffVariants;
595+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.AdditionalLightsKeepOffVariants;
588596
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
589597

590598
// The Off variant for Main and Additional Light shadows
591599
rendererRequirements = m_TestHelper.defaultRendererRequirements;
592600
rendererRequirements.needsShadowsOff = false;
593601
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
594-
expected = ShaderFeatures.DrawProcedural;
602+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
595603
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
596604

597605
rendererRequirements = m_TestHelper.defaultRendererRequirements;
598606
rendererRequirements.needsShadowsOff = true;
599607
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
600-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.ShadowsKeepOffVariants;
608+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.ShadowsKeepOffVariants;
601609
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
602610

603611
// Soft shadows
604612
rendererRequirements = m_TestHelper.defaultRendererRequirements;
605613
rendererRequirements.needsSoftShadows = false;
606614
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
607-
expected = ShaderFeatures.DrawProcedural;
615+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
608616
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
609617

610618
rendererRequirements = m_TestHelper.defaultRendererRequirements;
611619
rendererRequirements.needsSoftShadows = true;
612620
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
613-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.SoftShadows;
621+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.SoftShadows;
614622
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
615623

616624
// Deferred GBuffer Rendering Layers
617625
rendererRequirements = m_TestHelper.defaultRendererRequirements;
618626
rendererRequirements.needsGBufferRenderingLayers = false;
619627
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
620-
expected = ShaderFeatures.DrawProcedural;
628+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
621629
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
622630

623631
rendererRequirements = m_TestHelper.defaultRendererRequirements;
624632
rendererRequirements.needsGBufferRenderingLayers = true;
625633
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
626-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.GBufferWriteRenderingLayers;
634+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.GBufferWriteRenderingLayers;
627635
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
628636

629637
// Deferred GBuffer Accurate Normals
630638
rendererRequirements = m_TestHelper.defaultRendererRequirements;
631639
rendererRequirements.needsGBufferAccurateNormals = false;
632640
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
633-
expected = ShaderFeatures.DrawProcedural;
641+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
634642
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
635643

636644
rendererRequirements = m_TestHelper.defaultRendererRequirements;
637645
rendererRequirements.needsGBufferAccurateNormals = true;
638646
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
639-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.AccurateGbufferNormals;
647+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.AccurateGbufferNormals;
640648
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
641649

642650
// Deferred GBuffer Native Render Pass
643651
rendererRequirements = m_TestHelper.defaultRendererRequirements;
644652
rendererRequirements.needsRenderPass = false;
645653
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
646-
expected = ShaderFeatures.DrawProcedural;
654+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
647655
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
648656

649657
rendererRequirements = m_TestHelper.defaultRendererRequirements;
650658
rendererRequirements.needsRenderPass = true;
651659
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
652-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.RenderPassEnabled;
660+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.RenderPassEnabled;
653661
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
654662

655663
// Reflection Probe Blending
656664
rendererRequirements = m_TestHelper.defaultRendererRequirements;
657665
rendererRequirements.needsReflectionProbeBlending = false;
658666
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
659-
expected = ShaderFeatures.DrawProcedural;
667+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
660668
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
661669

662670
rendererRequirements = m_TestHelper.defaultRendererRequirements;
663671
rendererRequirements.needsReflectionProbeBlending = true;
664672
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
665-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.ReflectionProbeBlending;
673+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.ReflectionProbeBlending;
666674
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
667675

668676
// Reflection Probe Box Projection
669677
rendererRequirements = m_TestHelper.defaultRendererRequirements;
670678
rendererRequirements.needsReflectionProbeBoxProjection = false;
671679
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
672-
expected = ShaderFeatures.DrawProcedural;
680+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements);;
673681
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
674682

675683
rendererRequirements = m_TestHelper.defaultRendererRequirements;
676684
rendererRequirements.needsReflectionProbeBoxProjection = true;
677685
actual = m_TestHelper.GetSupportedShaderFeaturesFromRenderer(rendererRequirements, ShaderFeatures.None);
678-
expected = ShaderFeatures.DrawProcedural | ShaderFeatures.ReflectionProbeBoxProjection;
686+
expected = m_TestHelper.GetCorrectProceduralKeyword(ref rendererRequirements) | ShaderFeatures.ReflectionProbeBoxProjection;
679687
m_TestHelper.AssertShaderFeaturesAndReset(expected, actual);
680-
681-
682688
}
683689

684690

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs

Lines changed: 0 additions & 12 deletions
This file was deleted.

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Editor/Setup/SetupGraphicsTestCases.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Editor/ShaderGraphGraphicsTestsEditor.asmdef

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,4 @@
1919
"UNITY_INCLUDE_TESTS"
2020
],
2121
"versionDefines": []
22-
}
22+
}

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Scripts/SmokeGraphicsTestSettings.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Scripts/SmokeGraphicsTestSettings.cs.meta

Lines changed: 0 additions & 11 deletions
This file was deleted.

Tests/SRPTests/Projects/SRP_SmokeTest/Assets/CommonAssets/Scripts/SmokeGraphicsTests.cs

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)