Skip to content

Commit 2c9b075

Browse files
qua-iyCopilot
andauthored
feat(tuner): support ARM Immortalis (#32)
* feat(tuner): support ARM Immortalis * Update Packages/MobileSupportQualityTuner/Tests/Editor/Scripts/HardwareInfo.AndroidTests.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update Packages/MobileSupportQualityTuner/CHANGELOG.md --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent 98810a1 commit 2c9b075

File tree

7 files changed

+114
-4
lines changed

7 files changed

+114
-4
lines changed

Assets/Scripts/SampleQualityRuleData.asset

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,62 @@ MonoBehaviour:
7272
gpuSeriesNumberMin: 630
7373
gpuSeriesNumberMax: 999
7474
qualityLevel: 2
75+
- gpuSeries:
76+
value: 31
77+
gpuMajorSeries: 3
78+
gpuMinorSeries: 31
79+
gpuSeriesNumberMin: 0
80+
gpuSeriesNumberMax: 699
81+
qualityLevel: 0
82+
- gpuSeries:
83+
value: 32
84+
gpuMajorSeries: 3
85+
gpuMinorSeries: 32
86+
gpuSeriesNumberMin: 0
87+
gpuSeriesNumberMax: 860
88+
qualityLevel: 0
89+
- gpuSeries:
90+
value: 32
91+
gpuMajorSeries: 3
92+
gpuMinorSeries: 32
93+
gpuSeriesNumberMin: 861
94+
gpuSeriesNumberMax: 999
95+
qualityLevel: 1
96+
- gpuSeries:
97+
value: 33
98+
gpuMajorSeries: 3
99+
gpuMinorSeries: 33
100+
gpuSeriesNumberMin: 72
101+
gpuSeriesNumberMax: 76
102+
qualityLevel: 0
103+
- gpuSeries:
104+
value: 33
105+
gpuMajorSeries: 3
106+
gpuMinorSeries: 33
107+
gpuSeriesNumberMin: 57
108+
gpuSeriesNumberMax: 68
109+
qualityLevel: 2
110+
- gpuSeries:
111+
value: 71
112+
gpuMajorSeries: 7
113+
gpuMinorSeries: 71
114+
gpuSeriesNumberMin: 720
115+
gpuSeriesNumberMax: 729
116+
qualityLevel: 1
117+
- gpuSeries:
118+
value: 71
119+
gpuMajorSeries: 7
120+
gpuMinorSeries: 71
121+
gpuSeriesNumberMin: 925
122+
gpuSeriesNumberMax: 929
123+
qualityLevel: 2
124+
- gpuSeries:
125+
value: 70
126+
gpuMajorSeries: 7
127+
gpuMinorSeries: 0
128+
gpuSeriesNumberMin: 0
129+
gpuSeriesNumberMax: 999
130+
qualityLevel: 2
75131
- rid: 7788121862593052689
76132
type: {class: SampleSystemMemoryRuleMatcher, ns: , asm: Assembly-CSharp}
77133
data:

Packages/MobileSupportQualityTuner/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Release notes
22

3+
## v1.1.0 - 2024/08/27
4+
5+
- New Features :rocket:
6+
- Support ARM Immortalis GPU series
7+
- ex: ARM Immortalis-G720 MP7/MP12, ARM Immortalis-G925 MP12/MP16
8+
39
## v1.0.1 - 2024/01/29
410

511
- Bug Fixes :bug:

Packages/MobileSupportQualityTuner/Runtime/Scripts/GpuSeriesEnums.cs

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,12 @@ public enum GpuMajorSeries
4848
/// <summary>
4949
/// Huawei Maleoon series
5050
/// </summary>
51-
Maleoon
51+
Maleoon,
52+
53+
/// <summary>
54+
/// ARM Immortalis series
55+
/// </summary>
56+
Immortalis
5257
}
5358

5459
public enum GpuMinorSeries
@@ -151,7 +156,12 @@ public enum GpuMinorSeries
151156
/// <summary>
152157
/// Huawei Maleoon series
153158
/// </summary>
154-
Maleoon = 61
159+
Maleoon = 61,
160+
161+
/// <summary>
162+
/// ARM Immortalis-G series
163+
/// </summary>
164+
ImmortalisG = 71
155165
}
156166

157167
[Serializable]
@@ -182,6 +192,10 @@ public class GpuSeriesEnumeration : IComparable
182192
public static readonly GpuSeriesEnumeration MaliT = new(GpuMajorSeries.Mali, GpuMinorSeries.MaliT);
183193
public static readonly GpuSeriesEnumeration MaliG = new(GpuMajorSeries.Mali, GpuMinorSeries.MaliG);
184194

195+
// ARM Immortalis
196+
public static readonly GpuSeriesEnumeration ImmortalisAny = new(GpuMajorSeries.Immortalis, GpuMinorSeries.Unknown);
197+
public static readonly GpuSeriesEnumeration ImmortalisG = new(GpuMajorSeries.Immortalis, GpuMinorSeries.ImmortalisG);
198+
185199
// PowerVR
186200
public static readonly GpuSeriesEnumeration PowerVRAny = new(GpuMajorSeries.PowerVR, GpuMinorSeries.Unknown);
187201
public static readonly GpuSeriesEnumeration PowerVR6XT = new(GpuMajorSeries.PowerVR, GpuMinorSeries.PowerVR6XT);

Packages/MobileSupportQualityTuner/Runtime/Scripts/HardwareInfo.Android.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public static void SetAndroidHardwareStats(HardwareStats stats)
2727
{
2828
GpuMajorSeries.Adreno => ParseAdrenoGpuSeries(gpuName),
2929
GpuMajorSeries.Mali => ParseMaliGpuSeries(gpuName),
30+
GpuMajorSeries.Immortalis => ParseImmortalisGpuSeries(gpuName),
3031
GpuMajorSeries.PowerVR => ParsePowerVRGpuSeries(gpuName),
3132
GpuMajorSeries.Xclipse => ParseXclipseGpuSeries(gpuName),
3233
GpuMajorSeries.Maleoon => ParseMaleoonGpuSeries(gpuName),
@@ -42,6 +43,7 @@ public static GpuMajorSeries ParseGpuMajorSeries(string gpuName)
4243
{
4344
{ } when gpuName.StartsWith("Adreno", StringComparison.Ordinal) => GpuMajorSeries.Adreno,
4445
{ } when gpuName.StartsWith("Mali", StringComparison.Ordinal) => GpuMajorSeries.Mali,
46+
{ } when gpuName.StartsWith("ARM Immortalis", StringComparison.Ordinal) => GpuMajorSeries.Immortalis,
4547
{ } when gpuName.StartsWith("PowerVR", StringComparison.Ordinal) => GpuMajorSeries.PowerVR,
4648
{ } when gpuName.StartsWith("Samsung Xclipse", StringComparison.Ordinal) => GpuMajorSeries.Xclipse,
4749
{ } when gpuName.StartsWith("Maleoon", StringComparison.Ordinal) => GpuMajorSeries.Maleoon,
@@ -91,6 +93,18 @@ public static (GpuMinorSeries, int) ParseMaliGpuSeries(string gpuName)
9193
return (GpuMinorSeries.Unknown, 0);
9294
}
9395

96+
public static (GpuMinorSeries, int) ParseImmortalisGpuSeries(string gpuName)
97+
{
98+
// parse ARM Immortalis GPU series number by regex
99+
// ex: ARM Immortalis-G925 MP16
100+
var match = Regex.Match(gpuName, @"Immortalis-G(\d+)");
101+
if (match.Success)
102+
if (int.TryParse(match.Groups[1].Value, out var number))
103+
return (GpuMinorSeries.ImmortalisG, number);
104+
105+
return (GpuMinorSeries.Unknown, 0);
106+
}
107+
94108
public static (GpuMinorSeries, int) ParsePowerVRGpuSeries(string gpuName)
95109
{
96110
// parse PowerVR GPU series number by regex

Packages/MobileSupportQualityTuner/Tests/Editor/Scripts/HardwareInfo.AndroidTests.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,20 @@ private static IEnumerable MaleoonTestCases
7575
}
7676
}
7777

78+
private static IEnumerable ImmortalisTestCases
79+
{
80+
get
81+
{
82+
yield return new TestCaseData("ARM Immortalis-G720 MP12").Returns((GpuMinorSeries.ImmortalisG, 720));
83+
yield return new TestCaseData("ARM Immortalis-G720 MP7").Returns((GpuMinorSeries.ImmortalisG, 720));
84+
yield return new TestCaseData("ARM Immortalis-G925 MP16").Returns((GpuMinorSeries.ImmortalisG, 925));
85+
yield return new TestCaseData("ARM Immortalis-G925 MP12").Returns((GpuMinorSeries.ImmortalisG, 925));
86+
yield return new TestCaseData("ARM Immortalis-G2147483647").Returns((GpuMinorSeries.ImmortalisG, int.MaxValue));
87+
// Test integer overflow: 2147483648 is int.MaxValue + 1
88+
yield return new TestCaseData("ARM Immortalis-G2147483648").Returns((GpuMinorSeries.Unknown, 0));
89+
}
90+
}
91+
7892
[TestCaseSource(typeof(HardwareInfoAndroidTests), nameof(AdrenoTestCases))]
7993
public (GpuMinorSeries, int) ParseAdrenoGpuSeries_Tests(string gpuName)
8094
{
@@ -104,5 +118,11 @@ private static IEnumerable MaleoonTestCases
104118
{
105119
return HardwareInfoAndroid.ParseMaleoonGpuSeries(gpuName);
106120
}
121+
122+
[TestCaseSource(typeof(HardwareInfoAndroidTests), nameof(ImmortalisTestCases))]
123+
public (GpuMinorSeries, int) ParseImmortalisGpuSeries_Tests(string gpuName)
124+
{
125+
return HardwareInfoAndroid.ParseImmortalisGpuSeries(gpuName);
126+
}
107127
}
108128
}

Packages/MobileSupportQualityTuner/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "jp.co.cyberagent.unity-mobile-support-quality-tuner",
33
"displayName": "Mobile Support - Quality Tuner",
4-
"version": "1.0.1",
4+
"version": "1.1.0",
55
"unity": "2021.3",
66
"description": "Tools to support deciding quality level by hardware spec of mobile devices.",
77
"keywords": [

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,4 @@ Scripts ars split into multiple packages, so choose packages what you only need.
1010
| Storage | Functions to retrive information about storage | v1.0.0 | [README.md](Packages/MobileSupportStorage/README.md) | [CHANGELOG.md](Packages/MobileSupportStorage/CHANGELOG.md) |
1111
| Thermal | Functions to retrive information about thermal | v2.0.0 | [README.md](Packages/MobileSupportThermal/README.md) | [CHANGELOG.md](Packages/MobileSupportThermal/CHANGELOG.md) |
1212
| AndroidGame | Functions to integrate with Android GameManager APIs | v1.1.0 | [README.md](Packages/MobileSupportAndroidGame/README.md) | [CHANGELOG.md](Packages/MobileSupportAndroidGame/CHANGELOG.md) |
13-
| QualityTuner | Package to get hardware specs and tool to decide quality level | v1.0.0 | [README.md](Packages/MobileSupportQualityTuner/README.md) | [CHANGELOG.md](Packages/MobileSupportQualityTuner/CHANGELOG.md) |
13+
| QualityTuner | Package to get hardware specs and tool to decide quality level | v1.1.0 | [README.md](Packages/MobileSupportQualityTuner/README.md) | [CHANGELOG.md](Packages/MobileSupportQualityTuner/CHANGELOG.md) |

0 commit comments

Comments
 (0)