UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
DataDrivenShaderPlatformInfo.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RHIDefinitions.h"
6#include "RHIShaderPlatform.h"
7#include "RHIFeatureLevel.h"
8#include "UObject/NameTypes.h"
9
10class FText;
11
12extern RHI_API const FName LANGUAGE_D3D;
13extern RHI_API const FName LANGUAGE_Metal;
14extern RHI_API const FName LANGUAGE_OpenGL;
15extern RHI_API const FName LANGUAGE_Vulkan;
16extern RHI_API const FName LANGUAGE_Sony;
18
20{
21 FName Name;
22 FName PlatformName;
23 FName Language;
24 ERHIFeatureLevel::Type MaxFeatureLevel;
25 FName ShaderFormat;
26 uint32 ShaderPropertiesHash;
27 uint32 bIsMobile : 1;
28 uint32 bIsMetalMRT : 1;
29 uint32 bIsPC : 1;
30 uint32 bIsConsole : 1;
31 uint32 bIsAndroidOpenGLES : 1;
32
33 uint32 bSupportsDebugViewShaders : 1;
34 uint32 bSupportsMobileMultiView : 1;
35 uint32 bSupportsArrayTextureCompression : 1;
36 uint32 bSupportsDistanceFields : 1; // used for DFShadows and DFAO - since they had the same checks
37 uint32 bSupportsDiaphragmDOF : 1;
38 uint32 bSupportsRGBColorBuffer : 1;
39 uint32 bSupportsPercentageCloserShadows : 1;
40 uint32 bSupportsIndexBufferUAVs : 1;
41 uint32 bSupportsInstancedStereo : 1;
42 uint32 SupportsMultiViewport : int32(ERHIFeatureSupport::NumBits);
43 uint32 bSupportsMSAA : 1;
44 uint32 bSupports4ComponentUAVReadWrite : 1;
45 uint32 bSupportsShaderRootConstants : 1;
46 uint32 bSupportsShaderBundleDispatch : 1;
47 uint32 bSupportsRenderTargetWriteMask : 1;
48 uint32 bSupportsRayTracing : 1;
49 uint32 bSupportsRayTracingCallableShaders : 1;
50 uint32 bSupportsRayTracingProceduralPrimitive : 1;
51 uint32 bSupportsRayTracingTraversalStatistics : 1;
52 uint32 bSupportsRayTracingIndirectInstanceData : 1; // Whether instance transforms can be copied from the GPU to the TLAS instances buffer
53 uint32 bSupportsRayTracingClusterOps : 1; // Accelerated building and ray tracing of Nanite clusters
54 uint32 bSupportsPathTracing : 1; // Whether real-time path tracer is supported on this platform (avoids compiling unnecessary shaders)
55 uint32 bSupportsShaderExecutionReordering : 1; // Does the platform support Shader Execution Reordering extensions?
56 uint32 bSupportsGPUScene : 1;
57 uint32 bSupportsUnrestrictedHalfFloatBuffers : 1;
58 uint32 bSupportsPrimitiveShaders : 1;
59 uint32 bSupportsUInt64ImageAtomics : 1;
60 uint32 bRequiresVendorExtensionsForAtomics : 1;
61 uint32 bSupportsNanite : 1;
62 uint32 bSupportsLumenGI : 1;
63 uint32 bSupportsSSDIndirect : 1;
64 uint32 bSupportsTemporalHistoryUpscale : 1;
65 uint32 bSupportsRTIndexFromVS : 1;
66 uint32 bSupportsWaveOperations : int32(ERHIFeatureSupport::NumBits);
67 uint32 bSupportsWavePermute : 1;
68 uint32 MinimumWaveSize : 8;
69 uint32 MaximumWaveSize : 8;
70 uint32 bSupportsIntrinsicWaveOnce : 1;
71 uint32 bSupportsConservativeRasterization : 1;
72 uint32 bRequiresExplicit128bitRT : 1;
73 uint32 bSupportsGen5TemporalAA : 1;
74 uint32 bTargetsTiledGPU : 1;
75 uint32 bNeedsOfflineCompiler : 1;
76 uint32 bSupportsComputeFramework : 1;
77 uint32 bSupportsAnisotropicMaterials : 1;
78 uint32 bSupportsDualSourceBlending : 1;
79 uint32 bRequiresGeneratePrevTransformBuffer : 1;
80 uint32 bRequiresRenderTargetDuringRaster : 1;
81 uint32 bRequiresDisableForwardLocalLights : 1;
82 uint32 bCompileSignalProcessingPipeline : 1;
83 uint32 bSupportsMeshShadersTier0 : 1;
84 uint32 bSupportsMeshShadersTier1 : 1;
85 uint32 bSupportsMeshShadersWithClipDistance : 1;
86 uint32 MaxMeshShaderThreadGroupSize : 10;
87 uint32 bRequiresUnwrappedMeshShaderArgs : 1;
88 uint32 bSupportsPerPixelDBufferMask : 1;
89 uint32 bIsHlslcc : 1;
90 uint32 bSupportsDxc : 1; // Whether DirectXShaderCompiler (DXC) is supported
91 uint32 bIsSPIRV : 1;
92 uint32 bSupportsVariableRateShading : 1;
93 uint32 NumberOfComputeThreads : 10;
94 uint32 bWaterUsesSimpleForwardShading : 1;
95 uint32 bSupportsHairStrandGeometry : 1;
96 uint32 bSupportsDOFHybridScattering : 1;
97 uint32 bNeedsExtraMobileFrames : 1;
98 uint32 bSupportsHZBOcclusion : 1;
99 uint32 bSupportsWaterIndirectDraw : 1;
100 uint32 bSupportsAsyncPipelineCompilation : 1;
101 uint32 bSupportsVertexShaderSRVs : 1; // Whether SRVs can be bound to vertex shaders (may be independent from ManualVertexFetch)
102 uint32 bSupportsVertexShaderUAVs : int32(ERHIFeatureSupport::NumBits); // Whether UAVs can be bound to vertex shaders. Requires run-time check of GRHIGlobals.SupportsVertexShaderUAVs.
103 uint32 bSupportsTypedBufferSRVs : 1; // Buffer<>, texelbuffer/texture buffer, SRV with Format
104 uint32 bSupportsManualVertexFetch : 1;
105 uint32 bRequiresReverseCullingOnMobile : 1;
106 uint32 bOverrideFMaterial_NeedsGBufferEnabled : 1;
107 uint32 bSupportsFFTBloom : 1;
108 uint32 bSupportsInlineRayTracing : 1;
109 uint32 bInlineRayTracingRequiresBindless : 1;
110 uint32 bSupportsRayTracingShaders : 1;
111 uint32 bSupportsVertexShaderLayer : 1;
112 uint32 bSupportsBindless : 1;
113 uint32 StaticShaderBindingLayoutSupport : int32(ERHIStaticShaderBindingLayoutSupport::NumBits);
114 uint32 bSupportsVolumeTextureAtomics : 1;
115 uint32 bSupportsROV : 1;
116 uint32 bSupportsOIT : 1;
117 uint32 bSupportsRealTypes : int32(ERHIFeatureSupport::NumBits);
118 uint32 EnablesHLSL2021ByDefault : 2; // 0: disabled, 1: global shaders only, 2: all shaders
119 uint32 bSupportsSceneDataCompressedTransforms : 1;
120 uint32 bIsPreviewPlatform : 1;
121 uint32 bSupportsSwapchainUAVs : 1;
122 uint32 bSupportsClipDistance : 1;
123 uint32 bSupportsNNEShaders: 1;
124 uint32 bSupportsShaderPipelines : 1;
125 uint32 bSupportsUniformBufferObjects : 1;
126 uint32 bRequiresBindfulUtilityShaders : 1;
127 uint32 MaxSamplers : 8;
128 uint32 SupportsBarycentricsIntrinsics : 1;
129 uint32 SupportsBarycentricsSemantic : int32(ERHIFeatureSupport::NumBits);
130 uint32 bSupportsWave64 : 1;
131 uint32 bSupportsIndependentSamplers : 1;
132 uint32 bSupportsWorkGraphs : 1;
133 uint32 bSupportsWorkGraphsTier1_1 : 1;
134 uint32 bSupportsDLSSShaders : 1;
135 uint32 bSupportsAdaptiveGBuffer : 1;
136
137 // NOTE: When adding fields, you must also add to ParseDataDrivenShaderInfo!
138 uint32 bContainsValidPlatformInfo : 1;
139
141 {
142 FMemory::Memzero(this, sizeof(*this));
143
144 SetDefaultValues();
145 }
146
148
149 RHI_API void SetDefaultValues();
150
151public:
152 RHI_API static void Initialize();
153 RHI_API static const EShaderPlatform GetShaderPlatformFromName(const FName ShaderPlatformName);
154
155 static inline const FName GetName(const FStaticShaderPlatform Platform)
156 {
158 return Infos[Platform].Name;
159 }
160
162 {
164 return Infos[Platform].PlatformName;
165 }
166
168 {
170 return Infos[Platform].ShaderFormat;
171 }
172
174 {
176 return Infos[Platform].ShaderPropertiesHash;
177 }
178
179 static inline const bool GetIsLanguageD3D(const FStaticShaderPlatform Platform)
180 {
182 return Infos[Platform].Language == LANGUAGE_D3D;
183 }
184
185 static inline const bool GetIsLanguageMetal(const FStaticShaderPlatform Platform)
186 {
188 return Infos[Platform].Language == LANGUAGE_Metal;
189 }
190
191 static inline const bool GetIsLanguageOpenGL(const FStaticShaderPlatform Platform)
192 {
194 return Infos[Platform].Language == LANGUAGE_OpenGL;
195 }
196
197 static inline const bool GetIsLanguageVulkan(const FStaticShaderPlatform Platform)
198 {
200 return Infos[Platform].Language == LANGUAGE_Vulkan;
201 }
202
203 static inline const bool GetIsLanguageSony(const FStaticShaderPlatform Platform)
204 {
206 return Infos[Platform].Language == LANGUAGE_Sony;
207 }
208
210 {
212 return Infos[Platform].Language == LANGUAGE_Nintendo;
213 }
214
216 {
217 if(IsValid(Platform))
218 {
219 return Infos[Platform].Language;
220 }
221 return NAME_None;
222 }
223
225 {
227 return Infos[Platform].MaxFeatureLevel;
228 }
229
230 static inline const bool GetIsMobile(const FStaticShaderPlatform Platform)
231 {
233 return Infos[Platform].bIsMobile;
234 }
235
236 static inline const bool GetIsMetalMRT(const FStaticShaderPlatform Platform)
237 {
239 return Infos[Platform].bIsMetalMRT;
240 }
241
242 static inline const bool GetIsPC(const FStaticShaderPlatform Platform)
243 {
245 return Infos[Platform].bIsPC;
246 }
247
248 static inline const bool GetIsConsole(const FStaticShaderPlatform Platform)
249 {
251 return Infos[Platform].bIsConsole;
252 }
253
255 {
257 return Infos[Platform].bIsAndroidOpenGLES;
258 }
259
261 {
263 return Infos[Platform].bSupportsDebugViewShaders;
264 }
265
267 {
269 return Infos[Platform].bSupportsMobileMultiView;
270 }
271
273 {
275 return Infos[Platform].bSupportsArrayTextureCompression;
276 }
277
279 {
281 return Infos[Platform].bSupportsDistanceFields;
282 }
283
285 {
287 return Infos[Platform].bSupportsDiaphragmDOF;
288 }
289
291 {
293 return Infos[Platform].bSupportsRGBColorBuffer;
294 }
295
297 {
299 return Infos[Platform].bSupportsPercentageCloserShadows;
300 }
301
303 {
305 return Infos[Platform].bSupportsIndexBufferUAVs;
306 }
307
309 {
311 return Infos[Platform].bSupportsInstancedStereo;
312 }
313
315 {
317 return ERHIFeatureSupport(Infos[Platform].SupportsMultiViewport);
318 }
319
320 static inline const bool GetSupportsMSAA(const FStaticShaderPlatform Platform)
321 {
323 return Infos[Platform].bSupportsMSAA;
324 }
325
327 {
329 return Infos[Platform].bSupports4ComponentUAVReadWrite;
330 }
331
333 {
335 return Infos[Platform].bSupportsSwapchainUAVs;
336 }
337
339 {
341 return Infos[Platform].bSupportsShaderRootConstants;
342 }
343
345 {
347 return Infos[Platform].bSupportsShaderBundleDispatch;
348 }
349
351 {
353 return Infos[Platform].bSupportsRenderTargetWriteMask;
354 }
355
357 {
359 return Infos[Platform].bSupportsSceneDataCompressedTransforms;
360 }
361
363 {
365 return Infos[Platform].bSupportsRayTracing;
366 }
367
369 {
371 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingShaders;
372 }
373
375 {
377 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsInlineRayTracing;
378 }
379
381 {
383 return Infos[Platform].bInlineRayTracingRequiresBindless;
384 }
385
387 {
389 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingCallableShaders;
390 }
391
393 {
395 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingProceduralPrimitive;
396 }
397
399 {
401 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingTraversalStatistics;
402 }
403
405 {
407 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingIndirectInstanceData;
408 }
409
411 {
413 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsRayTracingClusterOps;
414 }
415
417 {
419 return Infos[Platform].bSupportsRayTracing && Infos[Platform].bSupportsPathTracing;
420 }
421
423 {
425 return Infos[Platform].bSupportsShaderExecutionReordering;
426 }
427
429 {
431 return Infos[Platform].bSupportsComputeFramework;
432 }
433
435 {
437 return Infos[Platform].bSupportsAnisotropicMaterials;
438 }
439
440 static inline const bool GetTargetsTiledGPU(const FStaticShaderPlatform Platform)
441 {
443 return Infos[Platform].bTargetsTiledGPU;
444 }
445
447 {
449 return Infos[Platform].bNeedsOfflineCompiler;
450 }
451
453 {
455 return Infos[Platform].bSupportsUnrestrictedHalfFloatBuffers;
456 }
457
459 {
461 return ERHIFeatureSupport(Infos[Platform].bSupportsWaveOperations);
462 }
463
465 {
467 return Infos[Platform].bSupportsWavePermute;
468 }
469
471 {
473 return Infos[Platform].MinimumWaveSize;
474 }
475
477 {
479 return Infos[Platform].MaximumWaveSize;
480 }
481
483 {
485 return Infos[Platform].bSupportsTemporalHistoryUpscale;
486 }
487
488 static inline const bool GetSupportsGPUScene(const FStaticShaderPlatform Platform)
489 {
491 return Infos[Platform].bSupportsGPUScene;
492 }
493
495 {
497 return Infos[Platform].bRequiresExplicit128bitRT;
498 }
499
501 {
503 return Infos[Platform].bSupportsPrimitiveShaders;
504 }
505
507 {
509 return Infos[Platform].bSupportsUInt64ImageAtomics;
510 }
511
513 {
515 return Infos[Platform].bRequiresVendorExtensionsForAtomics;
516 }
517
518 static inline const bool GetSupportsNanite(const FStaticShaderPlatform Platform)
519 {
521 return Infos[Platform].bSupportsNanite;
522 }
523
524 static inline const bool GetSupportsLumenGI(const FStaticShaderPlatform Platform)
525 {
527 return Infos[Platform].bSupportsLumenGI;
528 }
529
531 {
533 return Infos[Platform].bSupportsSSDIndirect;
534 }
535
537 {
539 return Infos[Platform].bSupportsRTIndexFromVS;
540 }
541
543 {
545 return Infos[Platform].bSupportsIntrinsicWaveOnce;
546 }
547
549 {
551 return Infos[Platform].bSupportsConservativeRasterization;
552 }
553
555 {
557 return Infos[Platform].bSupportsGen5TemporalAA;
558 }
559
561 {
563 return Infos[Platform].bSupportsDualSourceBlending;
564 }
565
567 {
569 return Infos[Platform].bRequiresGeneratePrevTransformBuffer;
570 }
571
573 {
575 return Infos[Platform].bRequiresRenderTargetDuringRaster;
576 }
577
579 {
581 return Infos[Platform].bRequiresDisableForwardLocalLights;
582 }
583
585 {
587 return Infos[Platform].bCompileSignalProcessingPipeline;
588 }
589
591 {
593 return Infos[Platform].bSupportsMeshShadersTier0;
594 }
595
597 {
599 return Infos[Platform].bSupportsMeshShadersTier1;
600 }
601
603 {
605 return Infos[Platform].bSupportsMeshShadersWithClipDistance;
606 }
607
609 {
611 return Infos[Platform].MaxMeshShaderThreadGroupSize;
612 }
613
615 {
617 return Infos[Platform].bRequiresUnwrappedMeshShaderArgs;
618 }
619
621 {
623 return Infos[Platform].bSupportsPerPixelDBufferMask;
624 }
625
626 static inline const bool GetIsHlslcc(const FStaticShaderPlatform Platform)
627 {
629 return Infos[Platform].bIsHlslcc;
630 }
631
632 static inline const bool GetSupportsDxc(const FStaticShaderPlatform Platform)
633 {
635 return Infos[Platform].bSupportsDxc;
636 }
637
638 static inline const bool GetIsSPIRV(const FStaticShaderPlatform Platform)
639 {
641 return Infos[Platform].bIsSPIRV;
642 }
643
645 {
647 return Infos[Platform].bSupportsVariableRateShading;
648 }
649
651 {
653 return Infos[Platform].NumberOfComputeThreads;
654 }
655
657 {
659 return Infos[Platform].bWaterUsesSimpleForwardShading;
660 }
661
663 {
665 return Infos[Platform].bSupportsHairStrandGeometry;
666 }
667
669 {
671 return Infos[Platform].bSupportsDOFHybridScattering;
672 }
673
675 {
677 return Infos[Platform].bNeedsExtraMobileFrames;
678 }
679
681 {
683 return Infos[Platform].bSupportsHZBOcclusion;
684 }
685
687 {
689 return Infos[Platform].bSupportsWaterIndirectDraw;
690 }
691
693 {
695 return Infos[Platform].bSupportsAsyncPipelineCompilation;
696 }
697
699 {
701 return Infos[Platform].bSupportsVertexShaderSRVs;
702 }
703
705 {
707 return ERHIFeatureSupport(Infos[Platform].bSupportsVertexShaderUAVs);
708 }
709
711 {
713 return Infos[Platform].bSupportsTypedBufferSRVs;
714 }
715
717 {
719 return Infos[Platform].bSupportsManualVertexFetch;
720 }
721
723 {
725 return Infos[Platform].bRequiresReverseCullingOnMobile;
726 }
727
729 {
731 return Infos[Platform].bOverrideFMaterial_NeedsGBufferEnabled;
732 }
733
734 static inline const bool GetSupportsFFTBloom(const FStaticShaderPlatform Platform)
735 {
737 return Infos[Platform].bSupportsFFTBloom;
738 }
739
741 {
743 return Infos[Platform].bSupportsVertexShaderLayer;
744 }
745
746 static inline const bool GetSupportsBindless(const FStaticShaderPlatform Platform)
747 {
749 return Infos[Platform].bSupportsBindless;
750 }
751
753 UE_DEPRECATED(5.7, "GetBindlessSupport is now GetSupportsBindless")
755 {
756 return GetSupportsBindless(Platform) ? ERHIBindlessSupport::AllShaderTypes : ERHIBindlessSupport::Unsupported;
757 }
759
761 {
763 return static_cast<ERHIStaticShaderBindingLayoutSupport>(Infos[Platform].StaticShaderBindingLayoutSupport);
764 }
765
767 {
768 return Infos[Platform].bSupportsVolumeTextureAtomics;
769 }
770
772 {
773 return Infos[Platform].bSupportsShaderPipelines;
774 }
775
776 static inline const bool GetSupportsROV(const FStaticShaderPlatform Platform)
777 {
778 return Infos[Platform].bSupportsROV;
779 }
780
781 static inline const bool GetSupportsOIT(const FStaticShaderPlatform Platform)
782 {
783 return Infos[Platform].bSupportsOIT;
784 }
785
787 {
788 return Infos[Platform].bIsPreviewPlatform;
789 }
790
792 {
793 return ERHIFeatureSupport(Infos[Platform].bSupportsRealTypes);
794 }
795
797 {
798 return Infos[Platform].EnablesHLSL2021ByDefault;
799 }
800
802 {
804 return Infos[Platform].bSupportsClipDistance;
805 }
806
808 {
810 return Infos[Platform].bSupportsNNEShaders;
811 }
812
814 {
816 return Infos[Platform].bSupportsUniformBufferObjects;
817 }
818
820 {
822 return Infos[Platform].bRequiresBindfulUtilityShaders;
823 }
824
826 {
828 return Infos[Platform].MaxSamplers;
829 }
830
832 {
834 return Infos[Platform].SupportsBarycentricsIntrinsics;
835 }
836
838 {
840 return ERHIFeatureSupport(Infos[Platform].SupportsBarycentricsSemantic);
841 }
842
843 static inline const bool GetSupportsWave64(const FStaticShaderPlatform Platform)
844 {
846 return Infos[Platform].bSupportsWave64;
847 }
848
850 {
852 return Infos[Platform].bSupportsIndependentSamplers;
853 }
854
856 {
858 return Infos[Platform].bSupportsWorkGraphs;
859 }
860
862 {
864 return Infos[Platform].bSupportsWorkGraphsTier1_1;
865 }
866
868 {
870 return Infos[Platform].bSupportsDLSSShaders;
871 }
872
874 {
876 return Infos[Platform].bSupportsAdaptiveGBuffer;
877 }
878
879 static inline const bool IsValid(const FStaticShaderPlatform Platform)
880 {
881 return Infos[Platform].bContainsValidPlatformInfo;
882 }
883
884#if WITH_EDITOR
885 RHI_API static void UpdatePreviewPlatforms();
886 RHI_API static FText GetFriendlyName(const FStaticShaderPlatform Platform, FName DeviceProfileName = NAME_None);
890
892#endif
893
894 static inline const void OverrideShaderFormatForShaderPlatform(const FStaticShaderPlatform Platform, FName ShaderFormat)
895 {
897 Infos[Platform].ShaderFormat = ShaderFormat;
898 }
899
900private:
901 RHI_API static void ParseDataDrivenShaderInfo(const FConfigSection& Section, uint32 Index);
902
904};
905
906#if USE_STATIC_SHADER_PLATFORM_ENUMS || USE_STATIC_FEATURE_LEVEL_ENUMS || USE_STATIC_SHADER_PLATFORM_INFO
907
908#define IMPLEMENT_DDPSPI_SETTING_WITH_RETURN_TYPE(ReturnType, Function, Value) \
909 static inline const ReturnType Function(const FStaticShaderPlatform Platform) \
910 { \
911 checkSlow(!FGenericDataDrivenShaderPlatformInfo::IsValid(Platform) || FGenericDataDrivenShaderPlatformInfo::Function(Platform) == Value); \
912 return Value; \
913 }
914#define IMPLEMENT_DDPSPI_SETTING(Function, Value) IMPLEMENT_DDPSPI_SETTING_WITH_RETURN_TYPE(bool, Function, Value)
915
916#include COMPILED_PLATFORM_HEADER(DataDrivenShaderPlatformInfo.inl)
917
918#else
920#endif
921
926
932
937
942
948
953
959
965
970
971// @todo: data drive uses of this function
976
981
982// @todo: data drive uses of this function
984{
986 // return FDataDrivenShaderPlatformInfo::GetIsLanguageVulkan(Platform)
987 // && FDataDrivenShaderPlatformInfo::GetMaxFeatureLevel(Platform) == ERHIFeatureLevel::SM5
988 // && FDataDrivenShaderPlatformInfo::GetIsMobile(Platform);
989}
990
991// @todo: data drive uses of this function
993{
994 return Platform == SP_METAL_SM5_IOS;
995 // return FDataDrivenShaderPlatformInfo::GetIsLanguageMetal(Platform)
996 // && FDataDrivenShaderPlatformInfo::GetMaxFeatureLevel(Platform) == ERHIFeatureLevel::SM5
997 // && FDataDrivenShaderPlatformInfo::GetIsMobile(Platform);
998}
999
1004
1006{
1008 //&& FDataDrivenShaderPlatformInfo::GetIsMobile(Platform)
1009 // This was limited to the ES3_1 platforms when hard coded
1011}
1012
1017
1022
1027
1028/* Returns true if the shader platform Platform is used to simulate a mobile feature level on a PC platform. */
1033
1034#if WITH_EDITOR
1036{
1038 {
1039 return FDataDrivenShaderPlatformInfo::GetPreviewShaderPlatformParent(Platform);
1040 }
1041
1042 return Platform;
1043}
1044#endif // WITH_EDITOR
1045
1051
1053{
1054 // Metal mobile devices and Android ES3.1 need to handle MSAA and resolve textures internally (unless RHICreateTexture2D was changed to take an optional resolve target)
1056}
1057
1066
1071
1076
1081
1086
1088{
1089 // Check if the platform supports dual src blending from DDPI
1091}
1092
1093// helper to check that the shader platform supports creating a UAV off an index buffer.
1098
1099
1100
1105
1114
1116{
1117 // @todo platplug: Maybe this should become bDisallowMSAA to default of 0 is a better default (since now MSAA is opt-out more than opt-in)
1119}
1120
1125
1127inline bool RHISupportsVolumeTextures(const FStaticFeatureLevel FeatureLevel)
1128{
1129 return FeatureLevel >= ERHIFeatureLevel::SM5;
1130}
1131
1136
1141{
1143 && (!IsMetalPlatform(Platform) || RHISupportsVertexShaderLayer(Platform)) // For Metal only shader platforms & versions that support vertex-shader-layer can render to volume textures - this is a compile/cook time check.
1144 && !IsOpenGLPlatform(Platform); // Apparently, some OpenGL 3.3 cards support SM4 but can't render to volume textures
1145}
1146
1148{
1149 // Must match usf PLATFORM_SUPPORTS_4COMPONENT_UAV_READ_WRITE
1150 // D3D11 does not support multi-component loads from a UAV: "error X3676: typed UAV loads are only allowed for single-component 32-bit element types"
1152}
1153
1160
1165
1173
1183
1191
1199
1207
1215
1223
1228
1236
1242
1248
1254
1260
1262UE_DEPRECATED(5.7, "RHIGetBindlessSupport is deprecated in favor of FDataDrivenShaderPlatformInfo::GetSupportsBindless")
1268
1274
1279
1285
1291
#define check(expr)
Definition AssertionMacros.h:314
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
bool RHISupportsMSAA(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1115
bool IsMetalMobileSM5Platform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:992
bool RHIHasTiledGPU(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1067
bool RHISupportsConservativeRasterization(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1256
bool RHISupportsShaderBundleDispatch(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1244
bool RHISupportsVolumeTextures(const FStaticFeatureLevel FeatureLevel)
Definition DataDrivenShaderPlatformInfo.h:1127
bool RHISupportsRenderTargetWriteMask(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1250
bool RHISupportsNativeShaderLibraries(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1077
bool RHISupportsIndexBufferUAVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1094
bool RHISupportsManualVertexFetch(const FStaticShaderPlatform InShaderPlatform)
Definition DataDrivenShaderPlatformInfo.h:1156
bool RHISupportsRayTracingShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1187
FStaticFeatureLevel GetMaxSupportedFeatureLevel(const FStaticShaderPlatform InShaderPlatform)
Definition DataDrivenShaderPlatformInfo.h:1023
bool IsVulkanMobileSM5Platform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:983
RHI_API const FName LANGUAGE_Nintendo
bool IsMetalMobilePlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:943
bool RHISupportsWorkGraphs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1287
RHI_API const FName LANGUAGE_D3D
bool IsAndroidPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:972
bool IsVulkanMobilePlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1005
bool RHISupportsVolumeTextureAtomics(EShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1275
bool RHISupportsMobileMultiView(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1072
bool IsD3DPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1013
bool IsMetalPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:938
bool IsSimulatedPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1029
bool RHISupportsWorkGraphsTier1_1(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1292
bool RHISupportsSeparateMSAAAndResolveTextures(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1052
uint32 RHIMaxMeshShaderThreadGroupSize(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1224
bool RHISupportsAbsoluteVertexID(const FStaticShaderPlatform InShaderPlatform)
Definition DataDrivenShaderPlatformInfo.h:1169
bool RHISupportsGeometryShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1058
bool IsFeatureLevelSupported(const FStaticShaderPlatform InShaderPlatform, ERHIFeatureLevel::Type InFeatureLevel)
Definition DataDrivenShaderPlatformInfo.h:1047
bool RHISupportsShaderPipelines(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1082
bool IsMobilePlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:928
bool RHIVolumeTextureRenderingSupportGuaranteed(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1140
RHI_API const FName LANGUAGE_Metal
bool RHISupportsMultiViewport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1110
bool RHISupports4ComponentUAVReadWrite(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1147
bool IsOpenGLPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:933
bool RHISupportsDualSourceBlending(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1087
bool IsMetalMRTPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:949
bool IsConsolePlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:966
bool RHISupportsWaveSize64(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1281
bool IsHlslccShaderPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1018
bool RHISupportsMeshShadersTier0(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1211
bool RHISupportsInstancedStereo(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1101
PRAGMA_ENABLE_DEPRECATION_WARNINGS ERHIStaticShaderBindingLayoutSupport RHIGetStaticShaderBindingLayoutSupport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1270
bool IsMetalSM6Platform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:960
bool RHISupportsBufferLoadTypeConversion(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1121
bool IsPCPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:922
bool RHISupportsWaveOperations(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1232
bool RHISupportsSwapchainUAVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1161
bool RHISupportsInlineRayTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1195
RHI_API const FName LANGUAGE_Sony
bool RHISupportsRayTracingCallableShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1203
bool RHISupportsVertexShaderLayer(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1132
bool RHISupportsMeshShadersTier1(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1219
bool RHISupportsRayTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1179
PRAGMA_DISABLE_DEPRECATION_WARNINGS ERHIBindlessSupport RHIGetBindlessSupport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1263
RHI_API const FName LANGUAGE_OpenGL
bool RHISupportsShaderRootConstants(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1238
RHI_API const FName LANGUAGE_Vulkan
bool IsMetalSM5Platform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:954
bool IsAndroidOpenGLESPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:1000
bool IsVulkanPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:977
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
const bool
Definition NetworkReplayStreaming.h:178
ERHIStaticShaderBindingLayoutSupport
Definition RHIDefinitions.h:193
ERHIFeatureSupport
Definition RHIDefinitions.h:169
EShaderPlatform
Definition RHIShaderPlatform.h:11
@ SP_VULKAN_SM5_ANDROID
Definition RHIShaderPlatform.h:46
@ SP_VULKAN_ES3_1_ANDROID
Definition RHIShaderPlatform.h:22
@ SP_METAL_SM5_IOS
Definition RHIShaderPlatform.h:15
@ SP_OPENGL_ES3_1_ANDROID
Definition RHIShaderPlatform.h:25
@ SP_NumPlatforms
Definition RHIShaderPlatform.h:55
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition ConfigCacheIni.h:407
Definition AndroidDataDrivenShaderPlatformInfo.inl:6
Definition DataDrivenShaderPlatformInfo.h:20
static const FName GetShaderFormat(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:167
static RHI_API void Initialize()
Definition DataDrivenShaderPlatformInfo.cpp:342
static const ERHIFeatureSupport GetSupportsWaveOperations(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:458
static const bool GetSupportsRayTracingCallableShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:386
static const bool GetSupportsRenderTargetWriteMask(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:350
static const bool GetIsPreviewPlatform(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:786
static const bool GetIsSPIRV(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:638
static const bool GetSupportsMeshShadersTier1(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:596
static const bool GetSupportsHZBOcclusion(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:680
static const bool GetSupportsMobileMultiView(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:266
static const ERHIFeatureLevel::Type GetMaxFeatureLevel(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:224
static const bool GetSupportsNNEShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:807
static const bool GetSupportsDistanceFields(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:278
static const bool GetSupportsRayTracingTraversalStatistics(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:398
static const bool GetSupportsRayTracingIndirectInstanceData(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:404
static const bool GetSupportsUInt64ImageAtomics(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:506
static const bool GetSupportsOIT(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:781
static const bool GetSupportsMeshShadersWithClipDistance(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:602
static const bool GetSupportsNanite(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:518
static const bool GetIsMetalMRT(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:236
static PRAGMA_ENABLE_DEPRECATION_WARNINGS const ERHIStaticShaderBindingLayoutSupport GetStaticShaderBindingLayoutSupport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:760
static const bool GetSupportsTypedBufferSRVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:710
static const bool GetSupportsVertexShaderLayer(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:740
static const bool IsValid(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:879
static const bool GetSupportsPerPixelDBufferMask(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:620
static const bool GetSupportsPercentageCloserShadows(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:296
static const bool GetWaterUsesSimpleForwardShading(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:656
static const bool GetIsLanguageNintendo(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:209
static const bool GetSupportsRTIndexFromVS(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:536
static const bool GetRequiresExplicit128bitRT(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:494
static const bool GetSupportsShaderExecutionReordering(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:422
static const bool GetOverrideFMaterial_NeedsGBufferEnabled(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:728
static const bool GetSupportsInlineRayTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:374
static const bool GetRequiresRenderTargetDuringRaster(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:572
static const bool GetSupportsWorkGraphsTier1_1(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:861
static const bool GetRequiresReverseCullingOnMobile(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:722
static const bool GetSupportsFFTBloom(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:734
static const void OverrideShaderFormatForShaderPlatform(const FStaticShaderPlatform Platform, FName ShaderFormat)
Definition DataDrivenShaderPlatformInfo.h:894
static const bool GetSupportsSwapchainUAVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:332
static const bool GetSupportsMSAA(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:320
static const bool GetCompileSignalProcessingPipeline(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:584
static const bool GetSupportsRayTracingShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:368
static const bool GetRequiresUnwrappedMeshShaderArgs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:614
static const bool GetSupportsDualSourceBlending(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:560
static const bool GetIsLanguageD3D(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:179
static const bool GetSupportsComputeFramework(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:428
static const bool GetSupportsIndependentSamplers(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:849
static const bool GetIsConsole(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:248
static const bool GetSupportsIndexBufferUAVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:302
static const bool GetSupports4ComponentUAVReadWrite(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:326
static const bool GetSupportsDiaphragmDOF(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:284
static const ERHIFeatureSupport GetSupportsMultiViewport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:314
static const bool GetIsLanguageMetal(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:185
static const ERHIFeatureSupport GetSupportsRealTypes(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:791
static const bool GetSupportsAnisotropicMaterials(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:434
static const bool GetIsLanguageVulkan(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:197
static const bool GetRequiresBindfulUtilityShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:819
static const bool GetSupportsIntrinsicWaveOnce(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:542
static PRAGMA_DISABLE_DEPRECATION_WARNINGS const ERHIBindlessSupport GetBindlessSupport(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:754
static const bool GetIsMobile(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:230
static const uint32 GetMaxSamplers(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:825
static const bool GetSupportsPathTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:416
static const FName GetName(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:155
static const bool GetSupportsRGBColorBuffer(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:290
static const bool GetRequiresBindlessForInlineRayTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:380
static const bool GetSupportsLumenGI(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:524
static const bool GetSupportsBarycentricsIntrinsics(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:831
static const bool GetSupportsROV(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:776
static const bool GetSupportsConservativeRasterization(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:548
static const bool GetSupportsVolumeTextureAtomics(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:766
static const bool GetIsHlslcc(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:626
static const bool GetSupportsVariableRateShading(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:644
static const bool GetSupportsPrimitiveShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:500
static const bool GetSupportsSSDIndirect(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:530
static const bool GetSupportsManualVertexFetch(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:716
static const bool GetSupportsPipelineShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:771
static const bool GetSupportsUnrestrictedHalfFloatBuffers(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:452
static const bool GetIsLanguageSony(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:203
static const bool GetSupportsWorkGraphs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:855
static const bool GetSupportsVertexShaderSRVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:698
static const bool GetSupportsShaderRootConstants(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:338
static const bool GetSupportsShaderBundleDispatch(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:344
static const bool GetSupportsHairStrandGeometry(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:662
static const uint32 GetEnablesHLSL2021ByDefault(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:796
static const uint32 GetMaxMeshShaderThreadGroupSize(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:608
static const bool GetRequiresGeneratePrevTransformBuffer(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:566
static const bool GetSupportsArrayTextureCompression(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:272
static const bool GetNeedsOfflineCompiler(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:446
static const bool GetSupportsDxc(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:632
static const bool GetSupportsAdaptiveGBuffer(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:873
static const bool GetSupportsMeshShadersTier0(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:590
static const bool GetSupportsUniformBufferObjects(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:813
static const bool GetSupportsWave64(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:843
static const bool GetSupportsWaterIndirectDraw(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:686
static const FName GetLanguage(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:215
static const bool GetRequiresDisableForwardLocalLights(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:578
static const bool GetIsAndroidOpenGLES(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:254
static const bool GetTargetsTiledGPU(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:440
static const bool GetSupportsDLSSShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:867
static const bool GetSupportsRayTracingClusterOps(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:410
static const bool GetIsPC(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:242
static uint32 GetShaderPlatformPropertiesHash(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:173
static const bool GetSupportsClipDistance(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:801
static const bool GetSupportSceneDataCompressedTransforms(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:356
static const uint32 GetMinimumWaveSize(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:470
static const bool GetSupportsRayTracing(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:362
static const bool GetSupportsGen5TemporalAA(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:554
static const bool GetSupportsAsyncPipelineCompilation(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:692
static const bool GetSupportsDebugViewShaders(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:260
static const uint32 GetNumberOfComputeThreads(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:650
static const bool GetIsLanguageOpenGL(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:191
static const bool GetSupportsInstancedStereo(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:308
static const ERHIFeatureSupport GetSupportsBarycentricsSemantic(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:837
static const bool GetSupportsWavePermute(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:464
static const bool GetSupportsTemporalHistoryUpscale(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:482
static const bool GetSupportsDOFHybridScattering(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:668
static const bool GetSupportsRayTracingProceduralPrimitive(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:392
static const uint32 GetMaximumWaveSize(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:476
static const FName GetPlatformName(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:161
static const bool GetSupportsBindless(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:746
static const ERHIFeatureSupport GetSupportsVertexShaderUAVs(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:704
static const bool GetNeedsExtraMobileFrames(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:674
static RHI_API const EShaderPlatform GetShaderPlatformFromName(const FName ShaderPlatformName)
Definition DataDrivenShaderPlatformInfo.cpp:645
static const bool GetRequiresVendorExtensionsForAtomics(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:512
static const bool GetSupportsGPUScene(const FStaticShaderPlatform Platform)
Definition DataDrivenShaderPlatformInfo.h:488
Definition NameTypes.h:617
Definition Text.h:385
Definition AndroidPlatformMisc.h:14
Definition UnrealString.h.inl:34
Type
Definition RHIFeatureLevel.h:20
@ SM5
Definition RHIFeatureLevel.h:42
@ SM6
Definition RHIFeatureLevel.h:52
@ ES3_1
Definition RHIFeatureLevel.h:25
U16 Index
Definition radfft.cpp:71
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition AndroidStaticFeatureLevel.inl:12
Definition AndroidStaticShaderPlatform.inl:18