@@ -134,18 +134,21 @@ public static VolumeFeatures volumeFeatures
134
134
private static VolumeFeatures s_VolumeFeatures ;
135
135
private static List < ShaderFeatures > s_SupportedFeaturesList = new ( ) ;
136
136
137
- // Helper calss to detect XR build targets at build time.
138
- internal sealed class XRPlatformBuildTimeDetect
137
+ // Helper class to detect XR build targets at build time.
138
+ internal sealed class PlatformBuildTimeDetect
139
139
{
140
- private static XRPlatformBuildTimeDetect xrPlatformInfo ;
140
+ private static PlatformBuildTimeDetect s_PlatformInfo ;
141
141
internal bool isStandaloneXR { get ; private set ; }
142
142
internal bool isHololens { get ; private set ; }
143
143
internal bool isQuest { get ; private set ; }
144
+ internal bool isSwitch { get ; private set ; }
144
145
145
- private XRPlatformBuildTimeDetect ( )
146
+ private PlatformBuildTimeDetect ( )
146
147
{
148
+ BuildTargetGroup buildTargetGroup = BuildPipeline . GetBuildTargetGroup ( EditorUserBuildSettings . activeBuildTarget ) ;
149
+ isSwitch = buildTargetGroup == BuildTargetGroup . Switch ;
150
+
147
151
#if XR_MANAGEMENT_4_0_1_OR_NEWER
148
- var buildTargetGroup = BuildPipeline . GetBuildTargetGroup ( EditorUserBuildSettings . activeBuildTarget ) ;
149
152
var buildTargetSettings = XRGeneralSettingsPerBuildTarget . XRGeneralSettingsForBuildTarget ( buildTargetGroup ) ;
150
153
if ( buildTargetSettings != null && buildTargetSettings . AssignedSettings != null && buildTargetSettings . AssignedSettings . activeLoaders . Count > 0 )
151
154
{
@@ -156,17 +159,17 @@ private XRPlatformBuildTimeDetect()
156
159
#endif
157
160
}
158
161
159
- internal static XRPlatformBuildTimeDetect GetInstance ( )
162
+ internal static PlatformBuildTimeDetect GetInstance ( )
160
163
{
161
- if ( xrPlatformInfo == null )
162
- xrPlatformInfo = new XRPlatformBuildTimeDetect ( ) ;
164
+ if ( s_PlatformInfo == null )
165
+ s_PlatformInfo = new PlatformBuildTimeDetect ( ) ;
163
166
164
- return xrPlatformInfo ;
167
+ return s_PlatformInfo ;
165
168
}
166
169
167
170
internal static void ClearInstance ( )
168
171
{
169
- xrPlatformInfo = null ;
172
+ s_PlatformInfo = null ;
170
173
}
171
174
}
172
175
@@ -207,7 +210,7 @@ public void OnPreprocessBuild(BuildReport report)
207
210
// Called after the build has finished...
208
211
public void OnPostprocessBuild ( BuildReport report )
209
212
{
210
- XRPlatformBuildTimeDetect . ClearInstance ( ) ;
213
+ PlatformBuildTimeDetect . ClearInstance ( ) ;
211
214
#if PROFILE_BUILD
212
215
Profiler . enabled = false ;
213
216
#endif
@@ -237,13 +240,9 @@ private static void GatherShaderFeatures(bool isDevelopmentBuild)
237
240
private static void GetGlobalAndPlatformSettings ( bool isDevelopmentBuild )
238
241
{
239
242
if ( GraphicsSettings . TryGetRenderPipelineSettings < ShaderStrippingSetting > ( out var shaderStrippingSettings ) )
240
- {
241
243
s_StripDebugDisplayShaders = ! isDevelopmentBuild || shaderStrippingSettings . stripRuntimeDebugShaders ;
242
- }
243
244
else
244
- {
245
245
s_StripDebugDisplayShaders = true ;
246
- }
247
246
248
247
if ( GraphicsSettings . TryGetRenderPipelineSettings < URPShaderStrippingSetting > ( out var urpShaderStrippingSettings ) )
249
248
{
@@ -252,30 +251,29 @@ private static void GetGlobalAndPlatformSettings(bool isDevelopmentBuild)
252
251
s_StripScreenCoordOverrideVariants = urpShaderStrippingSettings . stripScreenCoordOverrideVariants ;
253
252
}
254
253
255
- #if XR_MANAGEMENT_4_0_1_OR_NEWER
256
- // XR Stripping
257
- XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget . XRGeneralSettingsForBuildTarget ( BuildPipeline . GetBuildTargetGroup ( EditorUserBuildSettings . activeBuildTarget ) ) ;
258
- s_StripXRVariants = generalSettings == null || generalSettings . Manager == null || generalSettings . Manager . activeLoaders . Count <= 0 ;
254
+ PlatformBuildTimeDetect platformBuildTimeDetect = PlatformBuildTimeDetect . GetInstance ( ) ;
255
+ bool isShaderAPIMobileDefined = GraphicsSettings . HasShaderDefine ( BuiltinShaderDefine . SHADER_API_MOBILE ) ;
256
+ if ( platformBuildTimeDetect . isSwitch || isShaderAPIMobileDefined )
257
+ s_UseSHPerVertexForSHAuto = true ;
259
258
260
- if ( XRPlatformBuildTimeDetect . GetInstance ( ) . isStandaloneXR )
261
- s_StripDebugDisplayShaders = true ;
259
+ // XR Stripping
260
+ #if XR_MANAGEMENT_4_0_1_OR_NEWER
261
+ BuildTargetGroup buildTargetGroup = BuildPipeline . GetBuildTargetGroup ( EditorUserBuildSettings . activeBuildTarget ) ;
262
+ XRGeneralSettings generalSettings = XRGeneralSettingsPerBuildTarget . XRGeneralSettingsForBuildTarget ( buildTargetGroup ) ;
263
+ s_StripXRVariants = generalSettings == null || generalSettings . Manager == null || generalSettings . Manager . activeLoaders . Count <= 0 ;
262
264
263
- if ( XRPlatformBuildTimeDetect . GetInstance ( ) . isHololens )
264
- {
265
- s_KeepOffVariantForAdditionalLights = true ;
266
- s_UseSoftShadowQualityLevelKeywords = true ;
267
- s_UseSHPerVertexForSHAuto = true ;
268
- }
265
+ if ( platformBuildTimeDetect . isStandaloneXR )
266
+ s_StripDebugDisplayShaders = true ;
269
267
270
- if ( XRPlatformBuildTimeDetect . GetInstance ( ) . isQuest )
271
- {
272
- s_KeepOffVariantForAdditionalLights = true ;
273
- s_UseSoftShadowQualityLevelKeywords = true ;
274
- s_UseSHPerVertexForSHAuto = true ;
275
- }
268
+ if ( platformBuildTimeDetect . isHololens || platformBuildTimeDetect . isQuest )
269
+ {
270
+ s_KeepOffVariantForAdditionalLights = true ;
271
+ s_UseSoftShadowQualityLevelKeywords = true ;
272
+ s_UseSHPerVertexForSHAuto = true ;
273
+ }
276
274
#else
277
- s_UseSoftShadowQualityLevelKeywords = false ;
278
- s_StripXRVariants = true ;
275
+ s_UseSoftShadowQualityLevelKeywords = false ;
276
+ s_StripXRVariants = true ;
279
277
#endif
280
278
}
281
279
0 commit comments