From 52ff92ea480f3bb10ccba06ad5f2ba546de0562e Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:21:27 +0900 Subject: [PATCH 1/8] add imagecomparisonsettings asset --- ...SGraphicsTestImageComparisonSettings.asset | 29 +++++++++++++++++++ ...hicsTestImageComparisonSettings.asset.meta | 8 +++++ 2 files changed, 37 insertions(+) create mode 100644 com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset create mode 100644 com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset.meta diff --git a/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset b/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset new file mode 100644 index 000000000..2bada96df --- /dev/null +++ b/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset @@ -0,0 +1,29 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bce554fd33b2816478da44400f62aac4, type: 3} + m_Name: UTSGraphicsTestImageComparisonSettings + m_EditorClassIdentifier: + m_imageComparisonSettings: + TargetWidth: 960 + TargetHeight: 540 + TargetMSAASamples: 1 + PerPixelCorrectnessThreshold: 0.005 + PerPixelGammaThreshold: 0.003921569 + PerPixelAlphaThreshold: 0.003921569 + RMSEThreshold: 0 + AverageCorrectnessThreshold: 0.005 + IncorrectPixelsThreshold: 0.0000038146973 + UseHDR: 0 + UseBackBuffer: 0 + ImageResolution: 3 + ActiveImageTests: 1 + ActivePixelTests: -1 diff --git a/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset.meta b/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset.meta new file mode 100644 index 000000000..ae8a6c22c --- /dev/null +++ b/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 091299cdcbab2584688189a8c745da73 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: From e2038c00975bca05c31ec9f91385baf55530741b Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:29:46 +0900 Subject: [PATCH 2/8] ImageComparisonSO --- .../Runtime/UTSImageComparisonSO.cs | 22 +++++++++++++++++++ .../Runtime/UTSImageComparisonSO.cs.meta | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs create mode 100644 com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs.meta diff --git a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs new file mode 100644 index 000000000..67eda5150 --- /dev/null +++ b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs @@ -0,0 +1,22 @@ +using System; +using UnityEngine; +using UnityEngine.TestTools.Graphics; + +[Serializable] +[CreateAssetMenu(menuName = "Unity Toon Shader/UTS Image Comparison Settings")] +public class UTSImageComparisonSO : ScriptableObject +{ + [SerializeField] + private ImageComparisonSettings m_imageComparisonSettings = new ImageComparisonSettings() { + TargetWidth = 960, + TargetHeight = 540, + PerPixelCorrectnessThreshold = 0.001f, + AverageCorrectnessThreshold = 0.005f, + UseHDR = false, + UseBackBuffer = false, + ImageResolution = ImageComparisonSettings.Resolution.w1920h1080, + }; + + public ImageComparisonSettings GetImageComparisonSettings() => m_imageComparisonSettings; +} + diff --git a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs.meta b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs.meta new file mode 100644 index 000000000..95fe730e2 --- /dev/null +++ b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: bce554fd33b2816478da44400f62aac4 \ No newline at end of file From bffd56a82483d053ce52908b00324c5893f5ec5f Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:30:10 +0900 Subject: [PATCH 3/8] use cached imagecomparisonsettings --- .../Runtime/UTS_GraphicsTestSettings.cs | 22 +++++++++---------- .../Runtime/UTS_GraphicsTests.cs | 8 ++++--- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs index cad041fb3..8bd87b6e6 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs @@ -1,8 +1,9 @@ -using UnityEngine.TestTools.Graphics; +using UnityEngine; +using UnityEngine.TestTools.Graphics; namespace Tests { - public class UTS_GraphicsTestSettings : GraphicsTestSettings + public class UTS_GraphicsTestSettings : MonoBehaviour { public int WaitFrames = 0; public bool XRCompatible = true; @@ -11,15 +12,14 @@ public class UTS_GraphicsTestSettings : GraphicsTestSettings #else public bool CheckMemoryAllocation = true; #endif //#if UNITY_EDITOR_OSX || UNITY_STANDALONE_OSX - - public UTS_GraphicsTestSettings() - { - ImageComparisonSettings.TargetWidth = 960; - ImageComparisonSettings.TargetHeight = 540; - ImageComparisonSettings.AverageCorrectnessThreshold = 0.005f; - ImageComparisonSettings.PerPixelCorrectnessThreshold = 0.001f; - ImageComparisonSettings.UseHDR = false; - ImageComparisonSettings.UseBackBuffer = false; + + [SerializeField] + private UTSImageComparisonSO m_imageComparisonSO; + + public ImageComparisonSettings FindImageComparisonSettings() { + return m_imageComparisonSO != null ? m_imageComparisonSO.GetImageComparisonSettings() : null; } + } + } \ No newline at end of file diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs index 1e3193160..c29d6f96b 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs @@ -70,8 +70,10 @@ public IEnumerator Run(GraphicsTestCase testCase) } int waitFrames = settings.WaitFrames; + ImageComparisonSettings imageComparisonSettings = settings.FindImageComparisonSettings(); + Assert.IsNotNull(imageComparisonSettings); - if (settings.ImageComparisonSettings.UseBackBuffer && settings.WaitFrames < 1) + if (imageComparisonSettings.UseBackBuffer && settings.WaitFrames < 1) { waitFrames = 1; } @@ -80,7 +82,7 @@ public IEnumerator Run(GraphicsTestCase testCase) for (int i = 0; i < waitFrames; i++) yield return new WaitForEndOfFrame(); - ImageAssert.AreEqual(testCase.ReferenceImage, cameras.Where(x => x != null), settings.ImageComparisonSettings); + ImageAssert.AreEqual(testCase.ReferenceImage, cameras.Where(x => x != null), imageComparisonSettings); // Does it allocate memory when it renders what's on the main camera? bool allocatesMemory = false; @@ -90,7 +92,7 @@ public IEnumerator Run(GraphicsTestCase testCase) { try { - ImageAssert.AllocatesMemory(mainCamera, settings.ImageComparisonSettings); + ImageAssert.AllocatesMemory(mainCamera, imageComparisonSettings); } catch (AssertionException) { From 7e360dbb781e86b97f953fc568c52308cb86c008 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:35:54 +0900 Subject: [PATCH 4/8] fix namespaces --- .../Editor/UTSGraphicsTestSetup.cs | 1 + .../Runtime/UTSImageComparisonSO.cs | 14 ++++++++------ .../Runtime/UTS_GraphicsTestSettings.cs | 4 ++-- .../Runtime/UTS_GraphicsTests.cs | 4 +--- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs index 03c7735ad..27b56a2a7 100644 --- a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs +++ b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs @@ -5,6 +5,7 @@ using UnityEditor.SceneManagement; using Tests; using System.Linq; +using UnityEngine.Toon.GraphicsTest; namespace UnityEditor.Rendering.Toon { diff --git a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs index 67eda5150..a16069b28 100644 --- a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs +++ b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs @@ -2,21 +2,23 @@ using UnityEngine; using UnityEngine.TestTools.Graphics; +namespace UnityEngine.Toon.GraphicsTest { + [Serializable] [CreateAssetMenu(menuName = "Unity Toon Shader/UTS Image Comparison Settings")] -public class UTSImageComparisonSO : ScriptableObject -{ - [SerializeField] - private ImageComparisonSettings m_imageComparisonSettings = new ImageComparisonSettings() { +public class UTSImageComparisonSO : ScriptableObject { + [SerializeField] private ImageComparisonSettings m_imageComparisonSettings = new ImageComparisonSettings() { TargetWidth = 960, TargetHeight = 540, PerPixelCorrectnessThreshold = 0.001f, AverageCorrectnessThreshold = 0.005f, UseHDR = false, UseBackBuffer = false, - ImageResolution = ImageComparisonSettings.Resolution.w1920h1080, + ImageResolution = ImageComparisonSettings.Resolution.w1920h1080, }; - + public ImageComparisonSettings GetImageComparisonSettings() => m_imageComparisonSettings; } + +} \ No newline at end of file diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs index 8bd87b6e6..2715b09a8 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs @@ -1,8 +1,8 @@ using UnityEngine; using UnityEngine.TestTools.Graphics; +using UnityEngine.Toon.GraphicsTest; -namespace Tests -{ +namespace UnityEngine.Toon.GraphicsTest { public class UTS_GraphicsTestSettings : MonoBehaviour { public int WaitFrames = 0; diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs index c29d6f96b..fd338be53 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs @@ -3,12 +3,10 @@ using NUnit.Framework; using UnityEngine; using UnityEngine.TestTools; -using UnityEngine.XR; using UnityEngine.TestTools.Graphics; -using UnityEditor.TestTools.Graphics; using UnityEngine.SceneManagement; -using System.Collections.Generic; using System.IO; +using UnityEngine.Toon.GraphicsTest; namespace Tests { From 5205ed1d45fa8980a23cf2aa05d8420265d8c9c9 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:38:29 +0900 Subject: [PATCH 5/8] fix namespace --- com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs | 2 +- com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs | 2 +- .../Runtime/UTS_GraphicsTestSettings.cs | 3 +-- com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs index 27b56a2a7..dad27de87 100644 --- a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs +++ b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs @@ -5,7 +5,7 @@ using UnityEditor.SceneManagement; using Tests; using System.Linq; -using UnityEngine.Toon.GraphicsTest; +using Unity.ToonShader.GraphicsTest; namespace UnityEditor.Rendering.Toon { diff --git a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs index a16069b28..9b06ef415 100644 --- a/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs +++ b/com.unity.toon-graphics-test/Runtime/UTSImageComparisonSO.cs @@ -2,7 +2,7 @@ using UnityEngine; using UnityEngine.TestTools.Graphics; -namespace UnityEngine.Toon.GraphicsTest { +namespace Unity.ToonShader.GraphicsTest { [Serializable] [CreateAssetMenu(menuName = "Unity Toon Shader/UTS Image Comparison Settings")] diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs index 2715b09a8..b9cfe3fd0 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs @@ -1,8 +1,7 @@ using UnityEngine; using UnityEngine.TestTools.Graphics; -using UnityEngine.Toon.GraphicsTest; -namespace UnityEngine.Toon.GraphicsTest { +namespace Unity.ToonShader.GraphicsTest { public class UTS_GraphicsTestSettings : MonoBehaviour { public int WaitFrames = 0; diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs index fd338be53..5036697f9 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTests.cs @@ -6,7 +6,7 @@ using UnityEngine.TestTools.Graphics; using UnityEngine.SceneManagement; using System.IO; -using UnityEngine.Toon.GraphicsTest; +using Unity.ToonShader.GraphicsTest; namespace Tests { From 35c777b58417c1c69e91ae68e19114b292a4f427 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:40:30 +0900 Subject: [PATCH 6/8] removing unused code --- com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs index dad27de87..8975c36a0 100644 --- a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs +++ b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs @@ -1,9 +1,6 @@ -using System.Collections; -using System.Collections.Generic; +using System.Collections.Generic; using UnityEngine; -using UnityEditor; using UnityEditor.SceneManagement; -using Tests; using System.Linq; using Unity.ToonShader.GraphicsTest; @@ -14,7 +11,6 @@ public class UTSGraphicsTestSetup : EditorWindow // https://docs.unity3d.com/ScriptReference/EditorBuildSettings-scenes.html Vector2 m_scrollPos; bool m_initialzed; - List m_SceneAssets = new List(); List m_SceneNames = new List(); string[] monobehavioursToDisable = From 66e51944f0aceb8b6f4a40130abb7cdf79f4931b Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:48:00 +0900 Subject: [PATCH 7/8] set method --- .../Runtime/UTS_GraphicsTestSettings.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs index b9cfe3fd0..dd43c50d5 100644 --- a/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs +++ b/com.unity.toon-graphics-test/Runtime/UTS_GraphicsTestSettings.cs @@ -18,7 +18,10 @@ public class UTS_GraphicsTestSettings : MonoBehaviour public ImageComparisonSettings FindImageComparisonSettings() { return m_imageComparisonSO != null ? m_imageComparisonSO.GetImageComparisonSettings() : null; } - + + public void SetUTSImageComparisonSO(UTSImageComparisonSO so) { + m_imageComparisonSO = so; + } } } \ No newline at end of file From 11e648fd2cdef9547a32e9d164d20835d122d384 Mon Sep 17 00:00:00 2001 From: sin Date: Wed, 2 Jul 2025 10:48:21 +0900 Subject: [PATCH 8/8] setting [skip ci] --- .../Editor/UTSGraphicsTestSetup.cs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs index 8975c36a0..6d0e5fc24 100644 --- a/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs +++ b/com.unity.toon-graphics-test/Editor/UTSGraphicsTestSetup.cs @@ -2,6 +2,7 @@ using UnityEngine; using UnityEditor.SceneManagement; using System.Linq; +using NUnit.Framework; using Unity.ToonShader.GraphicsTest; namespace UnityEditor.Rendering.Toon @@ -88,16 +89,21 @@ private void OnGUI() EditorGUILayout.BeginHorizontal(); if ( GUILayout.Button("Set up scenes above.") ) { + UTSImageComparisonSO imageComparisonSO = AssetDatabase.LoadAssetAtPath(IMAGE_COMPARISON_SO_PATH); + Assert.IsNotNull(imageComparisonSO); + for ( int sceneIndex = 0; sceneIndex < EditorBuildSettings.scenes.Length; sceneIndex++) { - SetupScenes(sceneIndex); + SetupScenes(sceneIndex, imageComparisonSO); } } EditorGUILayout.EndHorizontal(); } } - void SetupScenes(int scneneIndex) + +//---------------------------------------------------------------------------------------------------------------------- + void SetupScenes(int scneneIndex, UTSImageComparisonSO imageComparisonSO) { var scene = EditorSceneManager.OpenScene(EditorBuildSettings.scenes[scneneIndex].path); var cameras = GameObject.FindGameObjectsWithTag("MainCamera").Select(x => x.GetComponent()); @@ -113,8 +119,9 @@ void SetupScenes(int scneneIndex) { settings = cameraList[0].gameObject.AddComponent(); } - settings.ImageComparisonSettings.ImageResolution = UnityEngine.TestTools.Graphics.ImageComparisonSettings.Resolution.w960h540; - settings.ImageComparisonSettings.PerPixelCorrectnessThreshold = 0.005f; + + settings.SetUTSImageComparisonSO(imageComparisonSO); + settings.CheckMemoryAllocation = false; settings.WaitFrames = 480; foreach (GameObject obj in FindObjectsOfType(typeof(GameObject))) @@ -155,5 +162,9 @@ void SetupScenes(int scneneIndex) EditorSceneManager.SaveScene(scene); } + +//---------------------------------------------------------------------------------------------------------------------- + + private const string IMAGE_COMPARISON_SO_PATH = "Packages/com.unity.toon-graphics-test/Runtime/UTSGraphicsTestImageComparisonSettings.asset"; } } \ No newline at end of file