No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ShaderStrippingSettingsMigrationTest.cs 4.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. using NUnit.Framework;
  2. using UnityEngine.Rendering;
  3. using UnityEngine.Rendering.Universal;
  4. using ShaderVariantLogLevel = UnityEngine.Rendering.ShaderVariantLogLevel;
  5. namespace UnityEditor.Rendering.Universal.Test.GlobalSettingsMigration
  6. {
  7. class ShaderStrippingSettingsMigrationTest : RenderPipelineGraphicsSettingsMigrationTestBase<ShaderStrippingSetting>
  8. {
  9. class TestCase1 : IRenderPipelineGraphicsSettingsTestCase<ShaderStrippingSetting>
  10. {
  11. public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset,
  12. UniversalRenderPipelineAsset renderPipelineAsset)
  13. {
  14. #pragma warning disable 618 // Type or member is obsolete
  15. globalSettingsAsset.m_ShaderStrippingSetting.exportShaderVariants = false;
  16. globalSettingsAsset.m_ShaderStrippingSetting.shaderVariantLogLevel = ShaderVariantLogLevel.AllShaders;
  17. #pragma warning restore 618
  18. globalSettingsAsset.m_AssetVersion = 5;
  19. }
  20. public bool IsMigrationCorrect(ShaderStrippingSetting settings, out string message)
  21. {
  22. message = string.Empty;
  23. bool isMigrationCorrect = true;
  24. isMigrationCorrect &= settings.exportShaderVariants == false;
  25. isMigrationCorrect &= ShaderVariantLogLevel.AllShaders == settings.shaderVariantLogLevel;
  26. return isMigrationCorrect;
  27. }
  28. }
  29. class TestCase2 : IRenderPipelineGraphicsSettingsTestCase<ShaderStrippingSetting>
  30. {
  31. public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset,
  32. UniversalRenderPipelineAsset renderPipelineAsset)
  33. {
  34. #pragma warning disable 618 // Type or member is obsolete
  35. globalSettingsAsset.supportRuntimeDebugDisplay = true;
  36. #pragma warning restore 618
  37. globalSettingsAsset.m_AssetVersion = 1;
  38. }
  39. public bool IsMigrationCorrect(ShaderStrippingSetting settings, out string message)
  40. {
  41. message = string.Empty;
  42. bool isMigrationCorrect = true;
  43. isMigrationCorrect &= settings.stripRuntimeDebugShaders == false;
  44. return isMigrationCorrect;
  45. }
  46. }
  47. static TestCaseData[] s_TestCaseDatas =
  48. {
  49. new TestCaseData(new TestCase1())
  50. .SetName(
  51. "When performing a migration of exportShaderVariants and shaderVariantLogLevel, settings are being transferred correctly"),
  52. new TestCaseData(new TestCase2())
  53. .SetName(
  54. "When performing a full migration of strip debug variants,, settings are being transferred correctly from the HDRP asset to the Render Pipeline Graphics Settings"),
  55. };
  56. [Test, TestCaseSource(nameof(s_TestCaseDatas))]
  57. public void PerformMigration(IRenderPipelineGraphicsSettingsTestCase<ShaderStrippingSetting> testCase)
  58. {
  59. base.DoTest(testCase);
  60. }
  61. }
  62. class URPShaderStrippingSettingMigrationTest : RenderPipelineGraphicsSettingsMigrationTestBase<URPShaderStrippingSetting>
  63. {
  64. class TestCase : IRenderPipelineGraphicsSettingsTestCase<URPShaderStrippingSetting>
  65. {
  66. public void SetUp(UniversalRenderPipelineGlobalSettings globalSettingsAsset,
  67. UniversalRenderPipelineAsset renderPipelineAsset)
  68. {
  69. #pragma warning disable 618 // Type or member is obsolete
  70. globalSettingsAsset.m_URPShaderStrippingSetting.stripScreenCoordOverrideVariants = false;
  71. globalSettingsAsset.m_URPShaderStrippingSetting.stripUnusedPostProcessingVariants = true;
  72. globalSettingsAsset.m_URPShaderStrippingSetting.stripUnusedVariants = false;
  73. #pragma warning restore 618
  74. globalSettingsAsset.m_AssetVersion = 5;
  75. }
  76. public bool IsMigrationCorrect(URPShaderStrippingSetting settings, out string message)
  77. {
  78. message = string.Empty;
  79. bool isMigrationCorrect = true;
  80. isMigrationCorrect &= settings.stripUnusedVariants == false;
  81. isMigrationCorrect &= settings.stripScreenCoordOverrideVariants == false;
  82. isMigrationCorrect &= settings.stripUnusedPostProcessingVariants;
  83. return isMigrationCorrect;
  84. }
  85. }
  86. static TestCaseData[] s_TestCaseDatas =
  87. {
  88. new TestCaseData(new TestCase())
  89. .SetName(
  90. "When performing a migration of exportShaderVariants and shaderVariantLogLevel, settings are being transferred correctly"),
  91. };
  92. [Test, TestCaseSource(nameof(s_TestCaseDatas))]
  93. public void PerformMigration(IRenderPipelineGraphicsSettingsTestCase<URPShaderStrippingSetting> testCase)
  94. {
  95. base.DoTest(testCase);
  96. }
  97. }
  98. }