Files
UnrealEvent/Project/Config/DefaultDeviceProfiles.ini
2026-04-22 15:51:07 +02:00

1767 lines
93 KiB
INI

[DeviceProfiles]
+DeviceProfileNameAndTypes=Mobile,Mobile
+DeviceProfileNameAndTypes=Android_Galaxy_S7_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Mali_LowMem,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Mali_LowMem2,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note8_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9Plus_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note9_Mali,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S7_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note8_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9Plus_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note9_Mali_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_A9_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_A9_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S7_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S7_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS3_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS3_Adreno_Safe,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS3_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Adreno_LowMem,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Adreno_LowMem2,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS4_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS4_Adreno_Safe,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS4_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note8_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_LowMem,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_LowMem2,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_LowMem3,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_LRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_LowMemLRU,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9Plus_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note9_Adreno,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S7_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS3_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S8_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_TabS4_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note8_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S9Plus_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note9_Adreno_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Galaxy_Note9_Adreno_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10Lite_Adreno_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10Lite_Mali_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10_Adreno_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10_Mali_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10Plus_Adreno_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Galaxy_S10Plus_Mali_Vulkan_60,Android
+DeviceProfileNameAndTypes=Android_Pixel,Android
+DeviceProfileNameAndTypes=Android_Pixel_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Pixel_LRU,Android
+DeviceProfileNameAndTypes=Android_PixelXL,Android
+DeviceProfileNameAndTypes=Android_PixelXL_Vulkan,Android
+DeviceProfileNameAndTypes=Android_PixelXL_LRU,Android
+DeviceProfileNameAndTypes=Android_Pixel2,Android
+DeviceProfileNameAndTypes=Android_Pixel2_Safe,Android
+DeviceProfileNameAndTypes=Android_Pixel2_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Pixel2XL,Android
+DeviceProfileNameAndTypes=Android_Pixel2XL_Safe,Android
+DeviceProfileNameAndTypes=Android_Pixel2XL_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Pixel3,Android
+DeviceProfileNameAndTypes=Android_Pixel3XL,Android
+DeviceProfileNameAndTypes=Android_RazerPhone,Android
+DeviceProfileNameAndTypes=Android_RazerPhone_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Adreno53x_LRU,Android
+DeviceProfileNameAndTypes=Android_Adreno54x_LRU,Android
+DeviceProfileNameAndTypes=Android_Adreno615,Android
+DeviceProfileNameAndTypes=Android_Adreno61x,Android
+DeviceProfileNameAndTypes=Android_Adreno6xx_LRU,Android
+DeviceProfileNameAndTypes=Android_Mali_G76,Android
+DeviceProfileNameAndTypes=Android_Mali_G76_High,Android
+DeviceProfileNameAndTypes=Android_Mali_G76_Vulkan,Android
+DeviceProfileNameAndTypes=Android_Honor_View20_60,Android
+DeviceProfileNameAndTypes=Android_Huawei_Mate20,Android
+DeviceProfileNameAndTypes=Android_Huawei_Mate20X_60,Android
+DeviceProfileNameAndTypes=Android_Huawei_Mate20Pro,Android
+DeviceProfileNameAndTypes=Android_Xiaomi_MI9_60,Android
; Project-specific texture LOD groups
[/Script/Engine.TextureLODSettings]
; Spray decals
+TextureLODGroups=(Group=TEXTUREGROUP_Project04,MinLODSize=1,MaxLODSize=4096,LODBias=0,MinMagFilter=aniso,MipFilter=point,MipGenSettings=TMGS_NoMipmaps)
[Windows DeviceProfile]
DeviceType=Windows
BaseProfileName=
; If no benchmark is run, use 'High' as device default
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.AntiAliasingQuality=2
+CVars=sg.ShadowQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
; ------------------------------------------------------------------------------
; MOBILE: Defaults for all devices
; ------------------------------------------------------------------------------
[Mobile DeviceProfile]
+TextureLODGroups=(Group=TEXTUREGROUP_World, MaxLODSize=1024, OptionalMaxLODSize=1024, OptionalLODBias=1, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=1024, MaxLODSize_Tiniest=256, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_WorldNormalMap, MaxLODSize=512, OptionalMaxLODSize=512, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=512, MaxLODSize_Tiniest=128, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_WorldSpecular, MaxLODSize=512, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Character, MaxLODSize=1024, OptionalMaxLODSize=1024, OptionalLODBias=1, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=1024, MaxLODSize_Tiniest=256, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_CharacterNormalMap, MaxLODSize=512, OptionalMaxLODSize=512, OptionalLODBias=1, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=512, MaxLODSize_Tiniest=128, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_CharacterSpecular, MaxLODSize=512, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Weapon, MaxLODSize=1024, OptionalMaxLODSize=256, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=256, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_WeaponNormalMap, MaxLODSize=512, OptionalMaxLODSize=128, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=128, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_WeaponSpecular, MaxLODSize=512, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Vehicle, MaxLODSize=1024, OptionalMaxLODSize=128, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=128, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_VehicleNormalMap, MaxLODSize=512, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_VehicleSpecular, MaxLODSize=512, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=256, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Cinematic, MaxLODSize=1024, OptionalMaxLODSize=64, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=64, MaxLODSize_Tiniest=32, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Effects, MaxLODSize=1024, OptionalMaxLODSize=256, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=256, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=linear, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_EffectsNotFiltered, MaxLODSize=1024, OptionalMaxLODSize=128, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=128, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Skybox, MaxLODSize=1024, OptionalMaxLODSize=128, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=128, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_UI, MaxLODSize=4096, OptionalLODBias=0, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=0, MinMagFilter=aniso, MipFilter=point, MipGenSettings=TMGS_NoMipmaps)
+TextureLODGroups=(Group=TEXTUREGROUP_Lightmap, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Shadowmap, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point, NumStreamedMips=3)
+TextureLODGroups=(Group=TEXTUREGROUP_RenderTarget, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_MobileFlattened, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Heightmap, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Terrain_Weightmap, MaxLODSize=1024, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Bokeh, MaxLODSize=256, OptionalLODBias=1, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=linear, MipFilter=linear)
+TextureLODGroups=(Group=TEXTUREGROUP_Pixels2D, MaxLODSize=1024, OptionalLODBias=0, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=0, MinMagFilter=point, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_Impostor, MaxLODSize=1024, OptionalMaxLODSize=1024, OptionalLODBias=1, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=1024, MaxLODSize_Tiniest=256, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_ImpostorNormalDepth, MaxLODSize=1024, OptionalMaxLODSize=1024, OptionalLODBias=1, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=1024, MaxLODSize_Tiniest=256, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+TextureLODGroups=(Group=TEXTUREGROUP_HierarchicalLOD, MaxLODSize=512, OptionalMaxLODSize=256, OptionalLODBias=1, MaxLODSize_Smaller=512, MaxLODSize_Smallest=256, MaxLODSize_Tiniest=64, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
+CVars=slate.AbsoluteIndices=1
; Settings for GPU particles
+CVars=FX.AllowGPUParticles=1
; Max 256k partices
+CVars=fx.GPUSimulationTextureSizeX=512
+CVars=fx.GPUSimulationTextureSizeY=512
; Max 64k particles on low memory devices
+CVars_Smallest=fx.GPUSimulationTextureSizeX=256
+CVars_Tiniest=fx.GPUSimulationTextureSizeX=128
+CVars_Smallest=fx.GPUSimulationTextureSizeY=256
+CVars_Tiniest=fx.GPUSimulationTextureSizeY=128
+CVars=r.CustomDepth=0
+CVars=r.SupportReversedIndexBuffers=False
+CVars=r.SupportDepthOnlyIndexBuffers=False
+CVars=ai.NavCollisionAvailable=0
; On low memory devices we force grass off and discard data on load!
+CVars_Smallest=grass.densityScale=0
+CVars_Tiniest=grass.densityScale=0
+CVars_Smallest=grass.DiscardDataOnLoad=1
+CVars_Tiniest=grass.DiscardDataOnLoad=1
+CVars_Smallest=foliage.densityScale=0
+CVars_Tiniest=foliage.densityScale=0
+CVars_Smallest=foliage.DiscardDataOnLoad=1
+CVars_Tiniest=foliage.DiscardDataOnLoad=1
; Low quality materials are used on all mobile devices
+CVars=r.MaterialQualityLevel=0
;@todo: what does this do exactly?
+CVars=r.Streaming.UseFixedPoolSize=0
+CVars_Largest=r.Streaming.PoolSize=200
+CVars_Larger=r.Streaming.PoolSize=200
+CVars_Default=r.Streaming.PoolSize=200
+CVars_Smaller=r.Streaming.PoolSize=150
+CVars_Smallest=r.Streaming.PoolSize=100
+CVars_Tiniest=r.Streaming.PoolSize=16
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=400
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=400
+CVars_Default=Fort.Streaming.FrontEndPoolSize=400
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=300
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=200
+CVars_Tiniest=Fort.Streaming.FrontEndPoolSize=32
+CVars_Smallest=r.Streaming.MaxTempMemoryAllowed=35
+CVars_Tiniest=r.Streaming.MaxTempMemoryAllowed=4
+CVars_Largest=fort.skippreloadhack=0
+CVars_Larger=fort.skippreloadhack=0
+CVars_Default=fort.skippreloadhack=0
+CVars_Smaller=fort.skippreloadhack=0
+CVars_Smallest=fort.skippreloadhack=0
+Cvars_Tiniest=fort.skippreloadhack=0
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=72
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=72
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=72
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=48
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=36
+CVars_Tiniest=Fort.CosmeticManager.MaxCharacterParts=18
; Scalability Groups
+CVars=sg.ViewDistanceQuality=0
+CVars=sg.AntiAliasingQuality=0
+CVars=sg.ShadowQuality=0
+CVars=sg.PostProcessQuality=0
+CVars=sg.TextureQuality=0
+CVars=sg.EffectsQuality=0
+CVars=sg.FoliageQuality=0
; Dump shaders for non-active material qualities on load
+CVars=r.DiscardUnusedQuality=1
; This reduces total number of PSO at minor GPU cost
+CVars=r.ForceSceneHasDecals=1
; Shader cache
+CVars=r.ShaderPipelineCache.Enabled=1
+CVars=r.ShaderPipelineCache.LogPSO=0
+CVars=r.ShaderPipelineCache.ReportPSO=1
; Disable LOD cross-fading
+CVars=lod.TemporalLag=0
; TODO: maybe move to scalability?
+CVars=r.SkeletalMeshLODBias=1
+CVars=r.SkeletalMeshLODRadiusScale=0.6
+CVars=r.FreeSkeletalMeshBuffers=1
+CVars=foliage.MinLod=1
; Settings we want disabled globally / not set by scalability
+CVars=r.DetailMode=0
; Cook out emitters that don't match the device's detail mode
+CVars=fx.PruneEmittersOnCookByDetailMode=1
+CVars=r.CookOutUnusedDetailModeComponents=1
+CVars=r.PostProcessing.DisableMaterials=0
+CVars=r.DisableDistortion=1
+CVars=r.BloomQuality=0
+CVars=r.LightShaftQuality=0
+CVars=grass.DisableDynamicShadows=1
+CVars=r.Tonemapper.Sharpen=0
+CVars=r.PostProcessAAQuality=0
+CVars=r.LightFunctionQuality=0
+CVars=r.SimpleForwardShading=0
+CVars=r.EyeAdaptationQuality=0
; Landscape distribution scale, same for all mobile devices
+CVars=r.LandscapeLOD0DistributionScale=1.0
+CVars=r.LandscapeLODDistributionScale=0.5
; Include medium level hlod
+CVars=Athena.CookOutMediumLevelHLODs=0
; Do not serialize foliage render data, as on mobile it will be rebuilt anyway
+CVars=foliage.SaveRenderData=0
; Applied when a device is in low-power mode
+CVars=sg.ViewDistanceQuality.LowPower=0
+CVars=sg.ShadowQuality.LowPower=0
+CVars=sg.TextureQuality.LowPower=0
+CVars=sg.EffectsQuality.LowPower=0
; Applied when in the frontend, browsing the store etc.
+CVars=sg.ViewDistanceQuality.Frontend=3
+CVars=sg.ShadowQuality.Frontend=3
+CVars=sg.TextureQuality.Frontend=3
+CVars=sg.EffectsQuality.Frontend=3
; Default all devices to 30fps vsync
+CVars=r.VSync=1
+CVars=Fort.Mobile.DefaultSyncInterval=2
; Animation - Frame Stripping on mobile to save memory
+CVars=a.StripFramesOnCompression=1
+CVars=r.RenderTargetPoolMin=150
; ------------------------------------------------------------------------------
; iOS: Defaults for all devices
; ------------------------------------------------------------------------------
[IOS DeviceProfile]
BaseProfileName=Mobile
!CVars=ClearArray
; Temp: allow in iOS
+CVars=r.PostProcessing.DisableMaterials=0
; By default, target retina resolution
+CVars=r.MobileContentScaleFactor=0
+CVars=sg.ResolutionQuality=100
; Default to 4x MSAA
+CVars=r.MobileMSAA=4
; iOS specific overrides
+CVars=r.Scalability.MaxTextureQualityForLowVirtualMemory=0
+CVars=r.MetalHullParameterSize=0
+CVars=r.MetalDomainParameterSize=0
+CVars=r.MorphTarget.Mode=0
;+CVars=MobileDPI.InGame=0.8
;+CVars=MobileDPI.FrontEnd=0.8
+CVars=Mobile.FormFactor=0
+CVars=r.ShaderPipelineCache.BatchSize=50
+CVars=r.ShaderPipelineCache.BatchTime=100.0
+CVars=r.ShaderPipelineCache.GameFileMaskEnabled=1
+CVars=r.ShaderPipelineCache.MinBindCount=0
; ------------------------------------------------------------------------------
; iOS: Scalability buckets for low/med/high
; ------------------------------------------------------------------------------
[IOS_Low DeviceProfile]
BaseProfileName=IOS
+CVars=sg.ViewDistanceQuality=0
+CVars=sg.AntiAliasingQuality=0
+CVars=sg.ShadowQuality=0
+CVars=sg.PostProcessQuality=0
+CVars=sg.TextureQuality=0
+CVars=sg.EffectsQuality=0
+CVars=sg.FoliageQuality=0
; Applied when in the frontend, browsing the store etc.
+CVars=sg.ShadowQuality.Frontend=2
+CVars=sg.TextureQuality.Frontend=2
+CVars=r.ShaderPipelineCache.BatchSize=20
+CVars=r.RenderTargetPoolMin=75
[IOS_Mid DeviceProfile]
BaseProfileName=IOS
+CVars=sg.ViewDistanceQuality=1
+CVars=sg.AntiAliasingQuality=1
+CVars=sg.ShadowQuality=1
+CVars=sg.PostProcessQuality=1
+CVars=sg.TextureQuality=1
+CVars=sg.EffectsQuality=1
+CVars=sg.FoliageQuality=1
+CVars=r.ShaderPipelineCache.BatchSize=20
+CVars=r.RenderTargetPoolMin=100
[IOS_High DeviceProfile]
BaseProfileName=IOS
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.AntiAliasingQuality=2
+CVars=sg.ShadowQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
+CVars=sg.FoliageQuality=2
+CVars=r.RenderTargetPoolMin=150
[IOS_Epic DeviceProfile]
BaseProfileName=IOS
+CVars=sg.ViewDistanceQuality=3
+CVars=sg.AntiAliasingQuality=3
+CVars=sg.ShadowQuality=3
+CVars=sg.PostProcessQuality=3
+CVars=sg.TextureQuality=3
+CVars=sg.EffectsQuality=3
+CVars=sg.FoliageQuality=3
+CVars=r.RenderTargetPoolMin=200
; ------------------------------------------------------------------------------
; iOS: Low spec devices
; ------------------------------------------------------------------------------
[iPhone6S DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=2.0
+CVars=sg.ResolutionQuality=70
+CVars=Mobile.SupportsForceFeedback=0
;+CVars=MobileDPI.FrontEnd=0.67
;+CVars=MobileDPI.InGame=0.6
[iPhone6SPlus DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.28
+CVars=Mobile.SupportsForceFeedback=0
;+CVars=MobileDPI.FrontEnd=0.45
;+CVars=MobileDPI.InGame=0.45
[iPhoneSE DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.7
+CVars=Mobile.SupportsForceFeedback=0
+CVars=r.MobileMSAA=1
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPhone6 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=Mobile.SupportsForceFeedback=0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPhone6Plus DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=Mobile.SupportsForceFeedback=0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPhone5S DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=Mobile.SupportsForceFeedback=0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPad5 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=sg.ResolutionQuality=85
+CVars=Mobile.FormFactor=2
;+CVars=MobileDPI.FrontEnd=0.525
;+CVars=MobileDPI.InGame=0.5
[iPadAir2 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=sg.ResolutionQuality=75
+CVars=Mobile.FormFactor=2
+CVars=r.MobileMSAA=1
;+CVars=MobileDPI.FrontEnd=0.55
;+CVars=MobileDPI.InGame=0.5
[iPadAir DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=r.MobileMSAA=1
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPadMini4 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=Mobile.FormFactor=2
+CVars=r.MobileMSAA=1
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.55
[iPadMini2 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPadMini3 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
[iPodTouch6 DeviceProfile]
BaseProfileName=IOS_Low
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
;+CVars=MobileDPI.FrontEnd=0.5
;+CVars=MobileDPI.InGame=0.45
; ------------------------------------------------------------------------------
; iOS: Mid spec devices
; ------------------------------------------------------------------------------
[iPhone7 DeviceProfile]
BaseProfileName=IOS_Mid
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.85
;+CVars=MobileDPI.FrontEnd=0.625
;+CVars=MobileDPI.InGame=0.625
[iPhone7Plus DeviceProfile]
BaseProfileName=IOS_Mid
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.7
;+CVars=MobileDPI.FrontEnd=0.65
;+CVars=MobileDPI.InGame=0.6
[iPadPro129 DeviceProfile]
BaseProfileName=IOS_Mid
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.0
+CVars=Mobile.FormFactor=3
;+CVars=MobileDPI.FrontEnd=0.65
;+CVars=MobileDPI.InGame=0.65
[iPadPro97 DeviceProfile]
BaseProfileName=IOS_Mid
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.25
+CVars=Mobile.FormFactor=2
;+CVars=MobileDPI.FrontEnd=0.6
;+CVars=MobileDPI.InGame=0.65
[iPad6 DeviceProfile]
BaseProfileName=IOS_Mid
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.25
+CVars=Mobile.FormFactor=2
;+CVars=MobileDPI.FrontEnd=0.6
;+CVars=MobileDPI.InGame=0.65
; ------------------------------------------------------------------------------
; iOS: High spec devices
; ------------------------------------------------------------------------------
[iPhone8 DeviceProfile]
BaseProfileName=IOS_High
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=2.0
;+CVars=MobileDPI.FrontEnd=0.7
;+CVars=MobileDPI.InGame=0.65
[iPhone8Plus DeviceProfile]
BaseProfileName=IOS_High
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.956
;+CVars=MobileDPI.FrontEnd=0.75
;+CVars=MobileDPI.InGame=0.7
[iPadPro2_129 DeviceProfile]
BaseProfileName=IOS_High
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.23
+CVars=Mobile.FormFactor=3
; Support 60Hz capped at IOS_Mid quality
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=1
;+CVars=MobileDPI.FrontEnd=0.8
;+CVars=MobileDPI.InGame=0.8
[iPadPro105 DeviceProfile]
BaseProfileName=IOS_High
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.3
+CVars=Mobile.FormFactor=2
; Support 60Hz capped at IOS_Mid quality
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=1
;+CVars=MobileDPI.FrontEnd=0.68
;+CVars=MobileDPI.InGame=0.65
[iPhoneX DeviceProfile]
BaseProfileName=IOS_High
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.775
+CVars=r.CustomUnsafeZones="(L:free[0,-15][812,15]);(P:fixed[83,0][206,30])"
; non-notch side
+CVars=SafeZone.Landscape.Left=15
+CVars=SafeZone.Landscape.Top=5
; notch side
+CVars=SafeZone.Landscape.Right=26
+CVars=SafeZone.Landscape.Bottom=15
+CVars=Mobile.FormFactor=1
;+CVars=MobileDPI.FrontEnd=0.7
;+CVars=MobileDPI.InGame=0.65
; ------------------------------------------------------------------------------
; iOS: Epic spec devices
; ------------------------------------------------------------------------------
[iPadPro11 DeviceProfile]
BaseProfileName=IOS_Epic
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=2.0
+CVars=Mobile.FormFactor=2
;+CVars=MobileDPI.FrontEnd=0.68
;+CVars=MobileDPI.InGame=0.65
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
[iPadPro3_129 DeviceProfile]
BaseProfileName=IOS_Epic
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.75
+CVars=Mobile.FormFactor=3
;+CVars=MobileDPI.FrontEnd=0.8
;+CVars=MobileDPI.InGame=0.8
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
[iPhoneXS DeviceProfile]
BaseProfileName=IOS_Epic
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.775
+CVars=r.CustomUnsafeZones="(L:free[0,-15][812,15]);(P:fixed[83,0][206,30])"
; non-notch side
+CVars=SafeZone.Landscape.Left=15
+CVars=SafeZone.Landscape.Top=5
; notch side
+CVars=SafeZone.Landscape.Right=26
+CVars=SafeZone.Landscape.Bottom=15
+CVars=Mobile.FormFactor=1
;+CVars=MobileDPI.FrontEnd=0.7
;+CVars=MobileDPI.InGame=0.65
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
[iPhoneXSMax DeviceProfile]
BaseProfileName=IOS_Epic
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.775
+CVars=r.CustomUnsafeZones="(L:free[0,-15][812,15]);(P:fixed[83,0][206,30])"
; non-notch side
+CVars=SafeZone.Landscape.Left=15
+CVars=SafeZone.Landscape.Top=5
; notch side
+CVars=SafeZone.Landscape.Right=26
+CVars=SafeZone.Landscape.Bottom=15
+CVars=Mobile.FormFactor=1
;+CVars=MobileDPI.FrontEnd=0.7
;+CVars=MobileDPI.InGame=0.65
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
[iPhoneXR DeviceProfile]
BaseProfileName=IOS_Epic
!CVars=ClearArray
+CVars=r.MobileContentScaleFactor=1.775
+CVars=r.CustomUnsafeZones="(L:free[0,-15][812,15]);(P:fixed[83,0][206,30])"
; non-notch side
+CVars=SafeZone.Landscape.Left=15
+CVars=SafeZone.Landscape.Top=5
; notch side
+CVars=SafeZone.Landscape.Right=26
+CVars=SafeZone.Landscape.Bottom=15
+CVars=Mobile.FormFactor=1
;+CVars=MobileDPI.FrontEnd=0.7
;+CVars=MobileDPI.InGame=0.65
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
; ------------------------------------------------------------------------------
; Android: defaults for all devices
; ------------------------------------------------------------------------------
[Android DeviceProfile]
DeviceType=Android
BaseProfileName=Mobile
+TextureLODGroups=(Group=TEXTUREGROUP_HierarchicalLOD, MaxLODSize=1024, MaxLODSize_Smaller=1024, MaxLODSize_Smallest=1024, MaxLODSize_Tiniest=256, LODBias=0, LODBias_Smaller=0, LODBias_Smallest=1, MinMagFilter=aniso, MipFilter=point)
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=125
+CVars_Larger=r.Streaming.PoolSize=125
+CVars_Default=r.Streaming.PoolSize=125
+CVars_Smaller=r.Streaming.PoolSize=90
+CVars_Smallest=r.Streaming.PoolSize=50
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=250
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=250
+CVars_Default=Fort.Streaming.FrontEndPoolSize=250
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=180
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Largest=r.Streaming.MaxTempMemoryAllowed=20
+CVars_Larger=r.Streaming.MaxTempMemoryAllowed=20
+CVars_Default=r.Streaming.MaxTempMemoryAllowed=20
+CVars_Smaller=r.Streaming.MaxTempMemoryAllowed=15
+CVars_Smallest=r.Streaming.MaxTempMemoryAllowed=10
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=48
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=48
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=48
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=36
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars=r.MobileContentScaleFactor=1.0
+CVars=r.AllowSubPrimitiveQueries=0
+Cvars=a.UseFrameTimeStampsForPacing=1
+Cvars=r.ShaderPipelineCache.LazyLoadShadersWhenPSOCacheIsPresent=1
+CVars=sg.ResolutionQuality=100
; Disabling Vulkan support by default, will enable it for specific devices in device profiles
+CVars=r.Android.DisableVulkanSupport=1
; trickle in 10 entries per frame to reduce the black screen
+CVars=r.ShaderPipelineCache.BatchSize=10
; disable dynamic batch size adjustment as we have a modal compling screen
+CVars=r.ShaderPipelineCache.BatchTime=0.0
; this only applies to vulkan and enables the tying of the binary shader cache to the PSOFC
+CVars=r.Vulkan.PipelineCacheFromShaderPipelineCache=1
; acquire next image right after presenting current one
+CVars=r.Vulkan.DelayAcquireBackBuffer=2
; do not submit cmd buffer on every texture unlock, reduces loading time and hitches
+CVars=r.Vulkan.SubmitOnTextureUnlock=0
; ------------------------------------------------------------------------------
; Android: Scalability buckets for low/med/high
; ------------------------------------------------------------------------------
[Android_Unsupported DeviceProfile]
BaseProfileName=Android
!CVars=ClearArray
;TODO - display message to the user here
; 20 fps
+CVars=Fort.Mobile.DefaultSyncInterval=3
; Scalability
+CVars=sg.ResolutionQuality=75
+CVars=sg.ViewDistanceQuality=0
+CVars=sg.AntiAliasingQuality=0
+CVars=sg.ShadowQuality=0
+CVars=sg.PostProcessQuality=0
+CVars=sg.TextureQuality=0
+CVars=sg.EffectsQuality=0
+CVars=sg.FoliageQuality=0
[Android_Lowest DeviceProfile]
BaseProfileName=Android
!CVars=ClearArray
; Scalability
+CVars=sg.ResolutionQuality=75
+CVars=sg.ViewDistanceQuality=0
+CVars=sg.AntiAliasingQuality=0
+CVars=sg.ShadowQuality=0
+CVars=sg.PostProcessQuality=0
+CVars=sg.TextureQuality=0
+CVars=sg.EffectsQuality=0
+CVars=sg.FoliageQuality=0
; Applied when in the frontend, browsing the store etc.
+CVars=sg.ShadowQuality.Frontend=2
+CVars=sg.TextureQuality.Frontend=2
; 20 fps
+CVars=Fort.Mobile.DefaultSyncInterval=3
[Android_Default DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
; Android_Low is intended to be similar to IOS_Mid but with reduced draw call counts.
[Android_Low DeviceProfile]
BaseProfileName=Android
!CVars=ClearArray
; Scalability
+CVars=sg.ResolutionQuality=75
+CVars=sg.ViewDistanceQuality=1
+CVars=sg.AntiAliasingQuality=1
+CVars=sg.ShadowQuality=1
+CVars=sg.PostProcessQuality=1
+CVars=sg.TextureQuality=1
+CVars=sg.EffectsQuality=1
+CVars=sg.FoliageQuality=1
; Android_Mid is intended to be similar to IOS_Mid
[Android_Mid DeviceProfile]
BaseProfileName=Android
!CVars=ClearArray
; Scalability
+CVars=sg.ResolutionQuality=75
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.AntiAliasingQuality=2
+CVars=sg.ShadowQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
+CVars=sg.FoliageQuality=2
+CVars=sg.ResolutionQuality.Frontend=100
; Android_High is intended to be similar to IOS_High
[Android_High DeviceProfile]
BaseProfileName=Android
!CVars=ClearArray
; Scalability
+CVars=sg.ResolutionQuality=75
+CVars=sg.ViewDistanceQuality=3
+CVars=sg.AntiAliasingQuality=3
+CVars=sg.ShadowQuality=3
+CVars=sg.PostProcessQuality=3
+CVars=sg.TextureQuality=3
+CVars=sg.EffectsQuality=3
+CVars=sg.FoliageQuality=3
+CVars=sg.ResolutionQuality.Frontend=100
; ------------------------------------------------------------------------------
; Android: Device-specific settings
; ------------------------------------------------------------------------------
[Android_Atom]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
[Android_Adreno320 DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
[Android_Adreno330 DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
+CVars=OpenGL.UseBufferDiscard=0
[Android_Adreno330_Ver53 DeviceProfile]
BaseProfileName=Android_Unsupported
+CVars=r.DisjointTimerQueries=0
[Android_Adreno4xx DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
[Android_Adreno4xx_Nexus6 DeviceProfile]
BaseProfileName=Android_Adreno4xx
!CVars=ClearArray
[Android_Adreno51x DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
[Android_Adreno53x DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Adreno53x_LRU DeviceProfile]
BaseProfileName=Android_Adreno53x
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Adreno54x DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=sg.ShadowQuality=0
[Android_Adreno54x_LRU DeviceProfile]
BaseProfileName=Android_Adreno54x
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Adreno615 DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.MobileContentScaleFactor=0.8
[Android_Adreno61x DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.MobileContentScaleFactor=0.8
[Android_Adreno6xx DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Adreno6xx_LRU DeviceProfile]
BaseProfileName=Android_Adreno6xx
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_RazerPhone DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_RazerPhone_Vulkan DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_PowerVR DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
+CVars=r.Android.DisableASTCSupport=1
[Android_IntelHD_ES3 DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
[Android_Mali_T6xx DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_T7xx DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_T8xx DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G71 DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars=sg.ResolutionQuality=75
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G71_MP8 DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=sg.ResolutionQuality=75
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G72 DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G76 DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G76_High DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Mali_G76_Vulkan DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.Android.DisableVulkanSupport=0
[Android_TegraK1 DeviceProfile]
BaseProfileName=Android_Unsupported
!CVars=ClearArray
; ------------------------------------------------------------------------------
; Android: Samsung Device-specific settings
; ------------------------------------------------------------------------------
; Samsung Mali
[Android_Galaxy_S7_Mali DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Galaxy_S7_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
[Android_Galaxy_S8_Mali DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Galaxy_S8_Mali_LowMem DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Mali
!CVars=ClearArray
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_Galaxy_S8_Mali_LowMem2 DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Mali
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=50
+CVars_Larger=r.Streaming.PoolSize=50
+CVars_Default=r.Streaming.PoolSize=50
+CVars_Smaller=r.Streaming.PoolSize=50
+CVars_Smallest=r.Streaming.PoolSize=50
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=100
+CVars_Default=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_Galaxy_S8_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Mali
!CVars=ClearArray
+CVars=r.Vulkan.EnablePipelineLRUCache=1
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
[Android_Galaxy_Note8_Mali DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Galaxy_Note8_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
[Android_Galaxy_S9_Mali DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Galaxy_S9_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Mali
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
[Android_Galaxy_S9Plus_Mali DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
[Android_Galaxy_S9Plus_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S9Plus_Mali
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
[Android_Galaxy_Note9_Mali DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
; Note9 has 32MB for shaders
+CVars=r.OpenGL.ProgramLRUCount=1000
[Android_Galaxy_Note9_Mali_Vulkan DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
; 20MB
+CVars=r.Vulkan.PipelineLRUSize=20971520
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
; Samsung Adreno
[Android_Galaxy_A9_Adreno DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.MobileContentScaleFactor=0.8
[Android_Galaxy_A9_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_A9_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_S7_Adreno DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_S7_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_S7_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_S7_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_TabS3_Adreno DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.MobileContentScaleFactor=1.5
+CVars=sg.ResolutionQuality=75
[Android_Galaxy_TabS3_Adreno_Safe DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_TabS3_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_TabS3_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_TabS3_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_S8_Adreno DeviceProfile]
BaseProfileName=Android_Low
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_S8_Adreno_LowMem DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Adreno
!CVars=ClearArray
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars=sg.ShadowQuality=0
[Android_Galaxy_S8_Adreno_LowMem2 DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Adreno
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=50
+CVars_Larger=r.Streaming.PoolSize=50
+CVars_Default=r.Streaming.PoolSize=50
+CVars_Smaller=r.Streaming.PoolSize=50
+CVars_Smallest=r.Streaming.PoolSize=50
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=100
+CVars_Default=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_Galaxy_S8_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Adreno
!CVars=ClearArray
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_S8_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_S8_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_TabS4_Adreno DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.MobileContentScaleFactor=1.25
+CVars=sg.ResolutionQuality=75
[Android_Galaxy_TabS4_Adreno_Safe DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_TabS4_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_TabS4_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_TabS4_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_Note8_Adreno DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_Note8_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_S9_Adreno DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_S9_Adreno_LowMem DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=80
+CVars_Larger=r.Streaming.PoolSize=80
+CVars_Default=r.Streaming.PoolSize=80
+CVars_Smaller=r.Streaming.PoolSize=80
+CVars_Smallest=r.Streaming.PoolSize=80
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=160
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=160
+CVars_Default=Fort.Streaming.FrontEndPoolSize=160
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=160
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=160
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars=sg.ShadowQuality=0
[Android_Galaxy_S9_Adreno_LowMem3 DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=80
+CVars_Larger=r.Streaming.PoolSize=80
+CVars_Default=r.Streaming.PoolSize=80
+CVars_Smaller=r.Streaming.PoolSize=80
+CVars_Smallest=r.Streaming.PoolSize=80
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=160
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=160
+CVars_Default=Fort.Streaming.FrontEndPoolSize=160
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=160
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=160
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
[Android_Galaxy_S9_Adreno_LowMem2 DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno
!CVars=ClearArray
+CVars_Largest=r.Streaming.PoolSize=50
+CVars_Larger=r.Streaming.PoolSize=50
+CVars_Default=r.Streaming.PoolSize=50
+CVars_Smaller=r.Streaming.PoolSize=50
+CVars_Smallest=r.Streaming.PoolSize=50
+CVars_Largest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Larger=Fort.Streaming.FrontEndPoolSize=100
+CVars_Default=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=100
+CVars_Smallest=Fort.Streaming.FrontEndPoolSize=100
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_Galaxy_S9_Adreno_LowMemLRU DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno_LowMem
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_S9_Adreno_LRU DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Galaxy_S9_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S9_Adreno
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_S9Plus_Adreno DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_S9Plus_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_Galaxy_S9Plus_Adreno
!CVars=ClearArray
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_Note9_Adreno DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Galaxy_Note9_Adreno_Vulkan DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
[Android_Galaxy_Note9_Adreno_Vulkan_60 DeviceProfile]
BaseProfileName=Android_Galaxy_Note9_Adreno_Vulkan
!CVars=ClearArray
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10Lite_Adreno_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10Lite_Mali_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
; 20MB
+CVars=r.Vulkan.PipelineLRUSize=20971520
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10_Adreno_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10_Mali_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
; 20MB
+CVars=r.Vulkan.PipelineLRUSize=20971520
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10Plus_Adreno_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
[Android_Galaxy_S10Plus_Mali_Vulkan_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars= r.Vulkan.EnablePipelineLRUCache=1
; 20MB
+CVars=r.Vulkan.PipelineLRUSize=20971520
+CVars=r.Android.DisableVulkanSupport=0
;work around for quickbar disappearing. (empty clear renderpass bug on Mali)
+CVars=Slate.EnableRetainedRendering=0
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
; ------------------------------------------------------------------------------
; Android: Huawei devices
; ------------------------------------------------------------------------------
[Android_Honor_View20_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
; Ensure we get aniso even when clamping quality for 60fps
+CVars=r.MaxAnisotropy=4
[Android_Huawei_Mate20 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
; Ensure we get aniso even when clamping quality for 60fps
+CVars=r.MaxAnisotropy=4
[Android_Huawei_Mate20X_60 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
; Ensure we get aniso even when clamping quality for 60fps
+CVars=r.MaxAnisotropy=4
[Android_Huawei_Mate20Pro DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
; Ensure we get aniso even when clamping quality for 60fps
+CVars=r.MaxAnisotropy=4
[Android_Xiaomi_MI9 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=Fort.Mobile.Allow60fpsMode=1
+CVars=Fort.Mobile.MaxQualityIn60fpsMode=2
+CVars=Fort.Mobile.60FPS.MaxResQuality=75
; Ensure we get aniso even when clamping quality for 60fps
+CVars=r.MaxAnisotropy=4
; ------------------------------------------------------------------------------
; Android: Pixel devices
; ------------------------------------------------------------------------------
[Android_Pixel DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
; settings to reduce memory for google devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
; Sync at 20 fps
+CVars=Fort.Mobile.DefaultSyncInterval=3
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_Pixel_Vulkan DeviceProfile]
BaseProfileName=Android_Pixel
!CVars=ClearArray
+CVars=r.Android.DisableVulkanSupport=0
[Android_Pixel_LRU DeviceProfile]
BaseProfileName=Android_Pixel
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_PixelXL DeviceProfile]
BaseProfileName=Android_Lowest
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
; settings to reduce memory for XL devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
; Sync at 20 fps
+CVars=Fort.Mobile.DefaultSyncInterval=3
+CVars_Largest=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Larger=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Default=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smaller=Fort.CosmeticManager.MaxCharacterParts=18
+CVars_Smallest=Fort.CosmeticManager.MaxCharacterParts=18
[Android_PixelXL_Vulkan DeviceProfile]
BaseProfileName=Android_PixelXL
!CVars=ClearArray
+CVars=r.Android.DisableVulkanSupport=0
[Android_PixelXL_LRU DeviceProfile]
BaseProfileName=Android_PixelXL
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Pixel2 DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Pixel2_Safe DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
; settings to reduce memory for google devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
[Android_Pixel2_Vulkan DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
; settings to reduce memory for google devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
[Android_Pixel2XL DeviceProfile]
BaseProfileName=Android_High
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
[Android_Pixel2XL_LRU DeviceProfile]
BaseProfileName=Android_Pixel2XL
!CVars=ClearArray
+CVars=r.OpenGL.StoreCompressedProgramBinaries=1
+CVars=r.OpenGL.EnableProgramLRUCache=1
+CVars=r.OpenGL.ProgramLRUCount=10000
+CVars=r.OpenGL.ProgramLRUBinarySize=1000000000
+CVars=r.OpenGL.EvictOnBSSDestruct=1
+CVars=r.OpenGL.EvictOnBSSDestruct.Latency=200
+CVars=r.OpenGL.ProgramLRUKeepBinaryResident=1
[Android_Pixel2XL_Safe DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
; settings to reduce memory for XL devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
[Android_Pixel2XL_Vulkan DeviceProfile]
BaseProfileName=Android_Mid
!CVars=ClearArray
+CVars=r.DisjointTimerQueries=1
+CVars=r.Android.DisableVulkanSupport=0
; settings to reduce memory for XL devices
;+CVars=r.MobileContentScaleFactor=.75
+CVars=sg.ShadowQuality=0
+CVars=sg.FoliageQuality=0
+CVars=grass.DiscardDataOnLoad=1
+CVars=foliage.DiscardDataOnLoad=1
+CVars_Smaller=r.Streaming.PoolSize=65
+CVars_Smaller=Fort.Streaming.FrontEndPoolSize=130
[Android_Pixel3 DeviceProfile]
BaseProfileName=Android_Adreno6xx_LRU
[Android_Pixel3XL DeviceProfile]
BaseProfileName=Android_Adreno6xx_LRU
; ------------------------------------------------------------------------------
; Android: Rules for matching devices
; ------------------------------------------------------------------------------
[/Script/AndroidDeviceProfileSelector.AndroidDeviceProfileMatchingRules]
!MatchProfile=CLEAR_ARRAY
; Don't support ES2 devices (eg Mali 4xx, Adreno 2xx, PowerVR SGX 5xx and others)
MatchProfile=(Profile="Android_Unsupported",Match=((SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="^OpenGL ES 2\\.")))
; Don't currently support ES 3.0-only devices
+MatchProfile=(Profile="Android_Unsupported",Match=((SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="^OpenGL ES 3\\.0")))
; All the below are based on Android_Lowest
+MatchProfile=(Profile="Android_Atom",Match=((SourceType=SRC_UsingHoudini,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_PowerVR",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="PowerVR")))
+MatchProfile=(Profile="Android_Adreno320",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Equal,MatchString="Adreno (TM) 320")))
+MatchProfile=(Profile="Android_Adreno330_Ver53",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Equal,MatchString="Adreno (TM) 330"),(SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="ES 3\\.0 V@([0-9]+)"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="53")))
+MatchProfile=(Profile="Android_Adreno330",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Equal,MatchString="Adreno (TM) 330")))
+MatchProfile=(Profile="Android_Adreno4xx_Nexus6",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Nexus 6")))
+MatchProfile=(Profile="Android_Adreno4xx",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 4[0-9][0-9]")))
+MatchProfile=(Profile="Android_Mali_T6xx",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-T6")))
+MatchProfile=(Profile="Android_Mali_T7xx",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-T7")))
; Samsung Galaxy - Mali Devices
; Vulkan, currently disabled unless -detectvulkan is passed.
+MatchProfile=(Profile="Android_Galaxy_S7_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-[GN]93[05][NFSKLW]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G95[05]F"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="CRD1"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G95[05][NKLS]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="CRD7"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N95[05]F"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="CRF4"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N95[05][NKLS]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="CRD3"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S9_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G960[FNKLS]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="ARF1"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Mali_Vulkan", Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G965[FNKLS]"),(SourceType=SRC_AndroidVersion, CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_DeviceBuildNumber, CompareType=CMP_Regex,MatchString=".*([A-Z0-9][A-Z0-9][A-Z0-9][A-Z0-9])"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="ARF1"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; Vulkan, enabled by default
+MatchProfile=(Profile="Android_Galaxy_S10Lite_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G970[FNKLS]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Lite_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G970X[NX]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G973[FNKLS]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G973X[NX]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G975[FNKLS]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Mali_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G975X[NX]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; Fall back to ES 3.1
+MatchProfile=(Profile="Android_Galaxy_S7_Mali",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-[GN]93[05][NFSKLW]")))
+MatchProfile=(Profile="Android_Galaxy_S8_Mali_LowMem",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G95[05][FNKLS]")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Mali", Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N95[05][FNKLS]")))
+MatchProfile=(Profile="Android_Galaxy_S9_Mali",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G960[FNKLS]")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Mali",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G965[FNKLS]")))
; Samsung Galaxy - Adreno Devices
; Vulkan, currently disabled unless -detectvulkan is passed.
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G93[05]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="SC-02"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV33"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G891[AU]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_TabS3_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-T82[057]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G95[05]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-0[23]J"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV3[56]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G892[AU]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_TabS4_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-T83[057]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N95[05]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-01K"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV37"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S9_Adreno_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G960"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; Vulkan, enabled by default
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G965"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-03K"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV39"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Mali_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\-N96[05]F"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Mali_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\-N96[05]X$"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Mali_Vulkan",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\-N96[05][NKLS]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N96[05]"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-01L"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV40"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Lite_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G970[08UW]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Lite_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G970X[CU]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G973[0UW]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G973X[CU]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC-03L"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV41"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G975[0UW]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G975X[CU]"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC-04L"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Galaxy_S10Plus_Adreno_Vulkan_60",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV42"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; Fall back to ES 3.1
+MatchProfile=(Profile="Android_Galaxy_A9_Adreno_LRU",Match=((SoruceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-A920")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G93[05]")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="SC-02")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-02H")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV33")))
+MatchProfile=(Profile="Android_Galaxy_S7_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G891[AU]")))
+MatchProfile=(Profile="Android_Galaxy_TabS3_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-T82[057]")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G95[05]")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-0[23]J")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV3[56]")))
+MatchProfile=(Profile="Android_Galaxy_S8_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G892[AU]")))
+MatchProfile=(Profile="Android_Galaxy_TabS4_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-T83[057]")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N95[05]")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-01K")))
+MatchProfile=(Profile="Android_Galaxy_Note8_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV37")))
+MatchProfile=(Profile="Android_Galaxy_S9_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G960")))
+MatchProfile=(Profile="Android_Galaxy_S9_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-02K")))
+MatchProfile=(Profile="Android_Galaxy_S9_Adreno_LRU",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV38")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-G965")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-03K")))
+MatchProfile=(Profile="Android_Galaxy_S9Plus_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV39")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Mali",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM\\-N96[05]"),(SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SM-N96[05]")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SC\\-01L")))
+MatchProfile=(Profile="Android_Galaxy_Note9_Adreno",Match=((SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="SCV40")))
; Razer Phone detected separately as it's only an Adreno 540 but we want it to use Android_High on Vulkan and Android_Mid otherwise.
; Vulkan, currently disabled unless -detectvulkan is passed.
+MatchProfile=(Profile="Android_RazerPhone_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Razer"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Phone"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; fall back to GL
+MatchProfile=(Profile="Android_RazerPhone",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Razer"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Phone")))
; Matching Pixel devices directly
; Vulkan, currently disabled unless -detectvulkan is passed.
+MatchProfile=(Profile="Android_Pixel_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_PixelXL_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel XL"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Pixel2_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 2"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
+MatchProfile=(Profile="Android_Pixel2XL_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 2 XL"),(SourceType=SRC_AndroidVersion,CompareType=CMP_Regex,MatchString="([0-9]).*"),(SourceType=SRC_PreviousRegexMatch,CompareType=CMP_GreaterEqual,MatchString="8"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; fall back to GL
+MatchProfile=(Profile="Android_Pixel",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel")))
+MatchProfile=(Profile="Android_PixelXL",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel XL")))
+MatchProfile=(Profile="Android_Pixel2",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 2")))
+MatchProfile=(Profile="Android_Pixel2XL_LRU",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 2 XL")))
+MatchProfile=(Profile="Android_Pixel3",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 3")))
+MatchProfile=(Profile="Android_Pixel3XL",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Google"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="Pixel 3 XL")))
; Matching Huawei devices directly (GL)
+MatchProfile=(Profile="Android_Honor_View20_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="PCT-L29")))
+MatchProfile=(Profile="Android_Honor_View20_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="PCT-AL10")))
+MatchProfile=(Profile="Android_Honor_View20_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="PCT-TL10")))
; HUAWEI Mate 20X
+MatchProfile=(Profile="Android_Huawei_Mate20X_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="EVR\\-[AT]L00")))
+MatchProfile=(Profile="Android_Huawei_Mate20X_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="EVR-L29")))
; HUAWEI Mate 20Pro
+MatchProfile=(Profile="Android_Huawei_Mate20Pro",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="LYA\\-AL00P")))
+MatchProfile=(Profile="Android_Huawei_Mate20Pro",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="LYA\\-AL[01]0")))
+MatchProfile=(Profile="Android_Huawei_Mate20Pro",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="LYA-TL00")))
+MatchProfile=(Profile="Android_Huawei_Mate20Pro",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="LYA\\-L[02]9")))
+MatchProfile=(Profile="Android_Huawei_Mate20Pro",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="LYA\\-L0C")))
; HUAWEI Mate 20
+MatchProfile=(Profile="Android_Huawei_Mate20",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="HMA\\-[AT]L00")))
+MatchProfile=(Profile="Android_Huawei_Mate20",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="HUAWEI"),(SourceType=SRC_DeviceModel,CompareType=CMP_Regex,MatchString="HMA\\-L[02]9")))
; Matching Xiaomi devices directly (GL)
+MatchProfile=(Profile="Android_Xiaomi_MI9_60",Match=((SourceType=SRC_DeviceMake,CompareType=CMP_Equal,MatchString="Xiaomi"),(SourceType=SRC_DeviceModel,CompareType=CMP_Equal,MatchString="MI 9")))
; Android 5xx below 530 are based on Android_Lowest
+MatchProfile=(Profile="Android_Adreno51x",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 5[0-2][0-9]")))
; Android 53x and based on Android_Low (eg Adreno Galaxy S7, Tab S3, LG G6, Pixel)
+MatchProfile=(Profile="Android_Adreno53x",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 53[0-9]")))
; Android 54x and above are based on Android_Mid (eg Galaxy S8 Adreno)
+MatchProfile=(Profile="Android_Adreno54x",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 5[4-9][0-9]")))
; Android_Adreno615 is based on Android_Lowest, eg SDM670 devices Oppo R17.
+MatchProfile=(Profile="Android_Adreno615",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 615")))
; Android_Adreno61x are based on Android_Low, eg SDM710 devices like Mi8SE, Oppo R17Pro.
+MatchProfile=(Profile="Android_Adreno61x",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 61[0-9]")))
; Android 6xx are based on Android_High (eg Galaxy S9 Adreno)
+MatchProfile=(Profile="Android_Adreno6xx",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="Adreno \\(TM\\) 6[0-9][0-9]")))
; Mali 8xx devices are based on Android_Lowest (eg Mali Galaxy S7)
+MatchProfile=(Profile="Android_Mali_T8xx",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-T8")))
; Mali G71 devices are based on Android_Low (eg Mali Galaxy S8)
+MatchProfile=(Profile="Android_Mali_G71_MP8",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-G71 MP8")))
+MatchProfile=(Profile="Android_Mali_G71",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-G71")))
; Mali G72 devices are based on Android_Mid (eg Mali Galaxy S9)
+MatchProfile=(Profile="Android_Mali_G72",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-G72")))
; Mali G76 Vulkan, currently disabled unless -detectvulkan is passed.
+MatchProfile=(Profile="Android_Mali_G76_Vulkan",Match=((SourceType=SRC_CommandLine,CompareType=CMP_Equal,MatchString="detectvulkan"),(SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-G76"),(SourceType=SRC_VulkanAvailable,CompareType=CMP_Equal,MatchString="true")))
; Mali G76 devices are based on Android_Mid (Android_Mali_G76_High also available)
+MatchProfile=(Profile="Android_Mali_G76",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Regex,MatchString="^Mali\\-G76")))
; Tegra and IntelHD are should be able to deal with more drawcalls and are based on Android_Low
+MatchProfile=(Profile="Android_TegraK1",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Equal,MatchString="NVIDIA Tegra"),(SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="^OpenGL ES 3\\.")))
+MatchProfile=(Profile="Android_IntelHD_ES3",Match=((SourceType=SRC_GpuFamily,CompareType=CMP_Equal,MatchString="Intel(R) HD Graphics"),(SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="^OpenGL ES 3\\.")))
; Other ES 3.x devices fall back to Android_Lowest
+MatchProfile=(Profile="Android_Lowest",Match=((SourceType=SRC_GlVersion,CompareType=CMP_Regex,MatchString="^OpenGL ES 3\\.")))