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..bb3ae465 --- /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 && "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(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", "=================================================="); + } else { + android.util.Log.w("UE_RHI_Selector", "Device API Level is below 24. Vulkan dEQP check skipped."); + } + // ================================================================= + + + + 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..39ff4eec 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); } } }