From 02ffd09179560a92b69321948797b267f7019b40 Mon Sep 17 00:00:00 2001 From: Junesig Kong Date: Fri, 12 Jun 2026 16:10:41 +0900 Subject: [PATCH 1/3] trivialkart: Add Vulkan dEQP log and translate UPL comments to English --- .../Source/TrivialKart_Unreal/DEQP_UPL.xml | 56 +++++++++++++++++++ .../TrivialKart_Unreal.Build.cs | 6 +- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml new file mode 100644 index 00000000..8dd0c261 --- /dev/null +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml @@ -0,0 +1,56 @@ + + + + + + + + + + // ================================================================= + // [DEQP SELECTOR LOG TEST] Pure log code without CommandLine variable + // ================================================================= + boolean testSupportsModernVulkan = false; + int testDeqpLevel = 0; + String testDeqpDate = "Unknown"; + + if (android.os.Build.VERSION.SDK_INT >= 24) { + // 1. Check if target dEQP level (2024-03-01) is supported + testSupportsModernVulkan = getPackageManager().hasSystemFeature("android.software.vulkan.deqp.level", 0x7e80301); + + // 2. Extract the actual dEQP level value from the device + android.content.pm.FeatureInfo[] features = getPackageManager().getSystemAvailableFeatures(); + if (features != null) { + for (android.content.pm.FeatureInfo feature : features) { + if (feature != null && feature.name != null && feature.name.equals("android.software.vulkan.deqp.level")) { + testDeqpLevel = feature.version; + break; + } + } + } + + // 3. Convert to YYYY-MM-DD format using bitwise operations (escaped for parser safety) + if (testDeqpLevel > 0) { + int year = (testDeqpLevel >> 16) & 0xFFFF; + int month = (testDeqpLevel >> 8) & 0xFF; + int day = testDeqpLevel & 0xFF; + testDeqpDate = String.format("%04d-%02d-%02d", year, month, day); + } + + // [Log] Logcat output statement cleaned up with standard spacing + android.util.Log.w("UE_RHI_Selector", "=================================================="); + android.util.Log.w("UE_RHI_Selector", "Device Model : " + android.os.Build.MODEL); + android.util.Log.w("UE_RHI_Selector", "OS Version : Android " + android.os.Build.VERSION.RELEASE); + android.util.Log.w("UE_RHI_Selector", "API Level : " + android.os.Build.VERSION.SDK_INT); + android.util.Log.w("UE_RHI_Selector", "Device dEQP : 0x" + Integer.toHexString(testDeqpLevel) + " (" + testDeqpDate + ")"); + android.util.Log.w("UE_RHI_Selector", "Target dEQP : 0x7e80301 (2024-03-01)"); + android.util.Log.w("UE_RHI_Selector", "Modern Vulkan? : " + testSupportsModernVulkan); + android.util.Log.w("UE_RHI_Selector", "=================================================="); + } else { + android.util.Log.w("UE_RHI_Selector", "Device API Level is below 24. Vulkan dEQP check skipped."); + } + // ================================================================= + + + + \ No newline at end of file diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs index cdfb7dde..8a3a67e5 100644 --- a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs @@ -16,7 +16,7 @@ using UnrealBuildTool; - +using System.IO; public class TrivialKart_Unreal : ModuleRules { public TrivialKart_Unreal(ReadOnlyTargetRules Target) : base(Target) @@ -45,6 +45,8 @@ public TrivialKart_Unreal(ReadOnlyTargetRules Target) : base(Target) if (Target.Platform == UnrealTargetPlatform.Android) { DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay"); - } + string UPlPath = Path.Combine(ModuleDirectory, "DEQP_UPL.xml"); + AdditionalPropertiesForReceipt.Add("AndroidPlugin", UPlPath); + } } } From 2fc151de54d9ecf1f22119c10a4fdc9446dfcc6f Mon Sep 17 00:00:00 2001 From: jsyjbaba Date: Fri, 12 Jun 2026 16:41:44 +0900 Subject: [PATCH 2/3] Refactor dEQP level check and logging statements --- .../Source/TrivialKart_Unreal/DEQP_UPL.xml | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml index 8dd0c261..bb3ae465 100644 --- a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/DEQP_UPL.xml @@ -15,42 +15,42 @@ String testDeqpDate = "Unknown"; if (android.os.Build.VERSION.SDK_INT >= 24) { - // 1. Check if target dEQP level (2024-03-01) is supported - testSupportsModernVulkan = getPackageManager().hasSystemFeature("android.software.vulkan.deqp.level", 0x7e80301); + // 1. Check if target dEQP level (2024-03-01) is supported + testSupportsModernVulkan = getPackageManager().hasSystemFeature("android.software.vulkan.deqp.level", 0x7e80301); - // 2. Extract the actual dEQP level value from the device - android.content.pm.FeatureInfo[] features = getPackageManager().getSystemAvailableFeatures(); - if (features != null) { - for (android.content.pm.FeatureInfo feature : features) { - if (feature != null && feature.name != null && feature.name.equals("android.software.vulkan.deqp.level")) { - testDeqpLevel = feature.version; - break; - } - } - } + // 2. Extract the actual dEQP level value from the device + android.content.pm.FeatureInfo[] features = getPackageManager().getSystemAvailableFeatures(); + if (features != null) { + for (android.content.pm.FeatureInfo feature : features) { + if (feature != null && "android.software.vulkan.deqp.level".equals(feature.name)) { + testDeqpLevel = feature.version; + break; + } + } + } - // 3. Convert to YYYY-MM-DD format using bitwise operations (escaped for parser safety) - if (testDeqpLevel > 0) { - int year = (testDeqpLevel >> 16) & 0xFFFF; - int month = (testDeqpLevel >> 8) & 0xFF; - int day = testDeqpLevel & 0xFF; - testDeqpDate = String.format("%04d-%02d-%02d", year, month, day); - } + // 3. Convert to YYYY-MM-DD format using bitwise operations (escaped for parser safety) + if (testDeqpLevel > 0) { + int year = (testDeqpLevel >> 16) & 0xFFFF; + int month = (testDeqpLevel >> 8) & 0xFF; + int day = testDeqpLevel & 0xFF; + testDeqpDate = String.format(java.util.Locale.US, "%04d-%02d-%02d", year, month, day); + } - // [Log] Logcat output statement cleaned up with standard spacing - android.util.Log.w("UE_RHI_Selector", "=================================================="); - android.util.Log.w("UE_RHI_Selector", "Device Model : " + android.os.Build.MODEL); - android.util.Log.w("UE_RHI_Selector", "OS Version : Android " + android.os.Build.VERSION.RELEASE); - android.util.Log.w("UE_RHI_Selector", "API Level : " + android.os.Build.VERSION.SDK_INT); - android.util.Log.w("UE_RHI_Selector", "Device dEQP : 0x" + Integer.toHexString(testDeqpLevel) + " (" + testDeqpDate + ")"); - android.util.Log.w("UE_RHI_Selector", "Target dEQP : 0x7e80301 (2024-03-01)"); - android.util.Log.w("UE_RHI_Selector", "Modern Vulkan? : " + testSupportsModernVulkan); - android.util.Log.w("UE_RHI_Selector", "=================================================="); + // [Log] Logcat output statement cleaned up with standard spacing + android.util.Log.w("UE_RHI_Selector", "=================================================="); + android.util.Log.w("UE_RHI_Selector", "Device Model : " + android.os.Build.MODEL); + android.util.Log.w("UE_RHI_Selector", "OS Version : Android " + android.os.Build.VERSION.RELEASE); + android.util.Log.w("UE_RHI_Selector", "API Level : " + android.os.Build.VERSION.SDK_INT); + android.util.Log.w("UE_RHI_Selector", "Device dEQP : 0x" + Integer.toHexString(testDeqpLevel) + " (" + testDeqpDate + ")"); + android.util.Log.w("UE_RHI_Selector", "Target dEQP : 0x7e80301 (2024-03-01)"); + android.util.Log.w("UE_RHI_Selector", "Modern Vulkan? : " + testSupportsModernVulkan); + android.util.Log.w("UE_RHI_Selector", "=================================================="); } else { - android.util.Log.w("UE_RHI_Selector", "Device API Level is below 24. Vulkan dEQP check skipped."); + android.util.Log.w("UE_RHI_Selector", "Device API Level is below 24. Vulkan dEQP check skipped."); } // ================================================================= - \ No newline at end of file + From 4faf2597024b1713af4aaaecb77e669452fdeae2 Mon Sep 17 00:00:00 2001 From: jsyjbaba Date: Fri, 12 Jun 2026 16:42:48 +0900 Subject: [PATCH 3/3] Update TrivialKart_Unreal.Build.cs --- .../Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs index 8a3a67e5..39ff4eec 100644 --- a/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs +++ b/trivialkart/trivialkart_unreal/Source/TrivialKart_Unreal/TrivialKart_Unreal.Build.cs @@ -45,8 +45,8 @@ public TrivialKart_Unreal(ReadOnlyTargetRules Target) : base(Target) if (Target.Platform == UnrealTargetPlatform.Android) { DynamicallyLoadedModuleNames.Add("OnlineSubsystemGooglePlay"); - string UPlPath = Path.Combine(ModuleDirectory, "DEQP_UPL.xml"); - AdditionalPropertiesForReceipt.Add("AndroidPlugin", UPlPath); - } + string uplPath = Path.Combine(ModuleDirectory, "DEQP_UPL.xml"); + AdditionalPropertiesForReceipt.Add("AndroidPlugin", uplPath); + } } }