Adaug proiectul Unity

This commit is contained in:
2026-11-01 23:39:55 +02:00
parent cb14d9d37d
commit 863eac8f2c
23463 changed files with 5412601 additions and 0 deletions
@@ -0,0 +1,31 @@
using System;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents information about Editor version.
/// </summary>
[Serializable]
public class Editor
{
/// <summary>
/// Full editor version including changeset.
/// </summary>
[RequiredMember] public string Version;
/// <summary>
/// Branch name from which the editor was built.
/// </summary>
[RequiredMember] public string Branch;
/// <summary>
/// Changeset 12 characters long.
/// </summary>
[RequiredMember] public string Changeset;
/// <summary>
/// Editor version datetime in Unix Epoch milliseconds format.
/// </summary>
[RequiredMember] public int Date;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 634ca08416be7e446b17074b7a8d85ef
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,46 @@
using System;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents information about Hardware.
/// </summary>
[Serializable]
public class Hardware
{
/// <summary>
/// Operating system.
/// </summary>
[RequiredMember] public string OperatingSystem;
/// <summary>
/// Device model.
/// </summary>
[RequiredMember] public string DeviceModel;
/// <summary>
/// Device name.
/// </summary>
[RequiredMember] public string DeviceName;
/// <summary>
/// Processor type name.
/// </summary>
[RequiredMember] public string ProcessorType;
/// <summary>
/// Processor thread count.
/// </summary>
[RequiredMember] public int ProcessorCount;
/// <summary>
/// Graphics device name.
/// </summary>
[RequiredMember] public string GraphicsDeviceName;
/// <summary>
/// System Memory size in MegaBytes.
/// </summary>
[RequiredMember] public int SystemMemorySizeMB;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eecaaae1ce1cb6d4191f80484e152f46
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,47 @@
using System;
using System.Collections.Generic;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents a performance test result.
/// </summary>
[Serializable]
public class PerformanceTestResult
{
/// <summary>
/// Full test name.
/// </summary>
[RequiredMember] public string Name;
/// <summary>
/// Test script name.
/// </summary>
[RequiredMember] public string ClassName;
/// <summary>
/// Test method name.
/// </summary>
[RequiredMember] public string MethodName;
/// <summary>
/// Test version.
/// </summary>
[RequiredMember] public string Version;
/// <summary>
/// Categories.
/// </summary>
[RequiredMember] public List<string> Categories = new List<string>();
/// <summary>
/// Groups of performance samples.
/// </summary>
[RequiredMember] public List<SampleGroup> SampleGroups = new List<SampleGroup>();
/// <summary>
/// Performance regression threshold. A negative value indicates it is not to be used/transmitted.
/// </summary>
public double Threshold = PerformanceTest.DefaultThresholdValue;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: eee38b155cc303447b8c478d95185d54
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,123 @@
using System;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents player settings of a performance test, sampled at the beginning of a test run.
/// </summary>
[Serializable]
public class Player
{
/// <summary>
/// True if the player is a Development build. False if the player is a Release build.
/// </summary>
[RequiredMember] public bool Development;
/// <summary>
/// Screen resolution width.
/// </summary>
[RequiredMember] public int ScreenWidth;
/// <summary>
/// Screen resolution height.
/// </summary>
[RequiredMember] public int ScreenHeight;
/// <summary>
/// Screen refresh rate.
/// </summary>
[RequiredMember] public int ScreenRefreshRate;
/// <summary>
/// Whether the player is in fullscreen or windowed modes.
/// </summary>
[RequiredMember] public bool Fullscreen;
/// <summary>
/// The number of VSyncs that should pass between each frame. Use 'Don't Sync' (0) to not wait for VSync. Value must be 0, 1, 2, 3, or 4.
/// </summary>
[RequiredMember] public int Vsync;
/// <summary>
/// Anti aliasing.
/// </summary>
[RequiredMember] public int AntiAliasing;
/// <summary>
/// Whether player is in batchmode or not.
/// </summary>
[RequiredMember] public bool Batchmode;
/// <summary>
/// Render threading mode.
/// </summary>
[RequiredMember] public string RenderThreadingMode;
/// <summary>
/// Whether the render threading mode is multithreaded or not.
/// </summary>
[RequiredMember] public bool MtRendering;
/// <summary>
/// Whether the render threading mode uses Graphics Jobs or not.
/// </summary>
[RequiredMember] public bool GraphicsJobs;
/// <summary>
/// Whether the Unity Graphics Kernel is enabled or not.
/// </summary>
[RequiredMember] public bool UnityGraphicsKernel;
/// <summary>
/// Whether GPU skinning is enabled or not.
/// </summary>
[RequiredMember] public bool GpuSkinning;
/// <summary>
/// String representation of players RuntimePlatform.
/// </summary>
[RequiredMember] public string Platform;
/// <summary>
/// Color space.
/// </summary>
[RequiredMember] public string ColorSpace;
/// <summary>
/// Anisotropic filtering.
/// </summary>
[RequiredMember] public string AnisotropicFiltering;
/// <summary>
/// Blend weights.
/// </summary>
[RequiredMember] public string BlendWeights;
/// <summary>
/// Graphics API.
/// </summary>
[RequiredMember] public string GraphicsApi;
// strings because their enums are editor only.
/// <summary>
/// Scripting backend.
/// </summary>
[RequiredMember] public string ScriptingBackend;
/// <summary>
/// Android target SDK version.
/// </summary>
[RequiredMember] public string AndroidTargetSdkVersion;
/// <summary>
/// Android build system.
/// </summary>
[RequiredMember] public string AndroidBuildSystem;
/// <summary>
/// Build target.
/// </summary>
[RequiredMember] public string BuildTarget;
/// <summary>
/// Stereo rendering path.
/// </summary>
[RequiredMember] public string StereoRenderingPath;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 451a2d412ec85674b870cfe148524e5c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,33 @@
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents Project version.
/// </summary>
public class Project
{
/// <summary>
/// Name of the project.
/// </summary>
[RequiredMember] public string Name;
/// <summary>
/// Version of the project unrelated to changeset e.g. package version.
/// </summary>
[RequiredMember] public string Version;
/// <summary>
/// Commit branch.
/// </summary>
[RequiredMember] public string Branch;
/// <summary>
/// Commit changeset.
/// </summary>
[RequiredMember] public string Changeset;
/// <summary>
/// Commit datetime in Unix Epoch milliseconds format.
/// </summary>
[RequiredMember] public int Date;
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 601d7eee390860c4e80380ed9ff5e296
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents a performance test run.
/// </summary>
[Serializable]
public class Run
{
/// <summary>
/// Test Suite.
/// </summary>
[RequiredMember] public string TestSuite;
/// <summary>
/// Test run start datetime in Unix Epoch milliseconds format.
/// </summary>
[RequiredMember] public long Date;
/// <summary>
/// Player settings.
/// </summary>
[RequiredMember] public Player Player;
/// <summary>
/// Hardware information.
/// </summary>
[RequiredMember] public Hardware Hardware;
/// <summary>
/// Editor version.
/// </summary>
[RequiredMember] public Editor Editor;
/// <summary>
/// Package dependencies.
/// </summary>
[RequiredMember] public List<string> Dependencies = new List<string>();
/// <summary>
/// List of performance test results.
/// </summary>
[RequiredMember] public List<PerformanceTestResult> Results = new List<PerformanceTestResult>();
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 2cea93e2f05193940bf0b8deca0c3898
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,68 @@
using System;
using System.Runtime.Serialization;
using Unity.PerformanceTesting.Runtime;
using UnityEngine;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Settings store
/// @TODO make it public along with guidelines of how and when to use
/// @TODO add a property bag
/// </summary>
[Serializable]
internal class RunSettings : IDeserializationCallback
{
public RunSettings(params string[] args)
{
if (int.TryParse(Utils.GetArg(args, "-performance-measurement-count"), out var measurementMultiplier))
{
MeasurementCount = measurementMultiplier;
}
}
private static RunSettings m_Instance;
#if UNITY_EDITOR
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
static void ResetStaticsOnLoad()
{
m_Instance = null;
}
#endif
/// <summary>
/// Singleton instance of settings.
/// </summary>
public static RunSettings Instance
{
get
{
if (m_Instance == null)
{
m_Instance = ResourcesLoader.Load<RunSettings>(Utils.RunSettings, Utils.PlayerPrefKeySettingsJSON);
}
return m_Instance;
}
set { m_Instance = value; }
}
/// <summary>
/// Measurement counts will be overriden by specified value when using Measure.Method and Measure.Frames.
/// </summary>
public int MeasurementCount = -1;
/// <summary>
/// Validates the deserialized object.
/// </summary>
/// <param name="sender">The object that initiated the deserialization process.</param>
public void OnDeserialization(object sender)
{
if (MeasurementCount < -1)
{
throw new SerializationException("MeasurementCount cannot be negative, except for the initial value of -1.");
}
}
}
}
@@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 60f3b660212a40e7afb5bf15edcd64f2
timeCreated: 1617790852
@@ -0,0 +1,91 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Unity.PerformanceTesting.Exceptions;
namespace Unity.PerformanceTesting.Data
{
/// <summary>
/// Represents a group of samples for a performance test that share a common name and unit.
/// </summary>
[Serializable]
public class SampleGroup : IDeserializationCallback
{
/// <summary>
/// Name of the sample group.
/// </summary>
public string Name;
/// <summary>
/// Measurement unit.
/// </summary>
public SampleUnit Unit;
/// <summary>
/// Whether the measurement is inverted and increase is positive.
/// </summary>
public bool IncreaseIsBetter;
/// <summary>
/// List of samples.
/// </summary>
public List<double> Samples = new List<double>();
/// <summary>
/// Minimum value of samples.
/// </summary>
public double Min;
/// <summary>
/// Maximum value of samples.
/// </summary>
public double Max;
/// <summary>
/// Median value of samples.
/// </summary>
public double Median;
/// <summary>
/// Average value of samples.
/// </summary>
public double Average;
/// <summary>
/// Standard deviation of samples.
/// </summary>
public double StandardDeviation;
/// <summary>
/// Sum of samples.
/// </summary>
public double Sum;
/// <summary>
/// Creates a sample group without initializing values.
/// </summary>
public SampleGroup(){}
/// <summary>
/// Creates a sample group with provided arguments.
/// </summary>
/// <param name="name">Sample group name.</param>
/// <param name="unit">Measurement unit.</param>
/// <param name="increaseIsBetter">Whether the measurement is inverted and increase is positive.</param>
/// <exception cref="PerformanceTestException">Exception thrown when invalid name is used.</exception>
public SampleGroup(string name, SampleUnit unit, bool increaseIsBetter)
{
Name = name;
Unit = unit;
IncreaseIsBetter = increaseIsBetter;
if (string.IsNullOrEmpty(name))
{
throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
}
}
/// <summary>
/// Validates the deserialized object.
/// </summary>
/// <param name="sender">The object that initiated the deserialization process.</param>
public void OnDeserialization(object sender)
{
if (string.IsNullOrEmpty(Name))
{
throw new PerformanceTestException("Sample group name is empty. Please assign a valid name.");
}
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ea30bf37a2f167f4aa4086531e8d5b03
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
@@ -0,0 +1,85 @@
using System;
namespace Unity.PerformanceTesting
{
/// <summary>
/// Measurement unit used for sample groups.
/// </summary>
public enum SampleUnit
{
/// <summary>
/// Nanoseconds.
/// </summary>
Nanosecond,
/// <summary>
/// Microseconds.
/// </summary>
Microsecond,
/// <summary>
/// Milliseconds.
/// </summary>
Millisecond,
/// <summary>
/// Seconds.
/// </summary>
Second,
/// <summary>
/// Bytes.
/// </summary>
Byte,
/// <summary>
/// Kilobytes.
/// </summary>
Kilobyte,
/// <summary>
/// Megabytes.
/// </summary>
Megabyte,
/// <summary>
/// Gigabytes.
/// </summary>
Gigabyte,
/// <summary>
/// Undefined, represents any other unit we don't have by default. When using it make sure your sample group name represents the measurement.
/// </summary>
Undefined
}
static class SampleUnitExtensions
{
public static string ShortName(this SampleUnit s)
{
switch (s)
{
case SampleUnit.Nanosecond:
return "ns";
case SampleUnit.Microsecond:
return "μs";
case SampleUnit.Millisecond:
return "ms";
case SampleUnit.Second:
return "s";
case SampleUnit.Byte:
return "b";
case SampleUnit.Kilobyte:
return "kb";
case SampleUnit.Megabyte:
return "mb";
case SampleUnit.Gigabyte:
return "gb";
case SampleUnit.Undefined:
return "";
default:
throw new ArgumentOutOfRangeException(nameof(s), s, null);
}
}
}
}
@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 8a61e4b297fe5f94cb16e6f77a71892c
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: