17#ifndef USE_STATIC_SHADER_PLATFORM_ENUMS
18#define USE_STATIC_SHADER_PLATFORM_ENUMS 0
25#define SHADER_PARAMETER_STRUCT_ALIGNMENT 16
28#define SHADER_PARAMETER_ARRAY_ELEMENT_ALIGNMENT 16
31#define RHI_RAW_VIEW_ALIGNMENT 16
35#define SHADER_PARAMETER_POINTER_ALIGNMENT sizeof(uint64)
39#ifndef PLATFORM_DISPATCH_INDIRECT_ARGUMENT_BOUNDARY_SIZE
40 #define PLATFORM_DISPATCH_INDIRECT_ARGUMENT_BOUNDARY_SIZE 0
43#ifndef USE_STATIC_SHADER_PLATFORM_INFO
44#define USE_STATIC_SHADER_PLATFORM_INFO 0
48#ifndef RHI_USE_RESOURCE_DEBUG_NAME
49#if (UE_BUILD_SHIPPING || UE_BUILD_TEST)
50 #define RHI_USE_RESOURCE_DEBUG_NAME 0
52 #define RHI_USE_RESOURCE_DEBUG_NAME 1
56#ifndef RHI_USE_SYNC_POINT_DEBUG_NAME
57#if (UE_BUILD_SHIPPING)
58#define RHI_USE_SYNC_POINT_DEBUG_NAME 0
60#define RHI_USE_SYNC_POINT_DEBUG_NAME 1
65#define RHI_RAYTRACING 0
68#ifndef RHI_NEW_GPU_PROFILER
69#define RHI_NEW_GPU_PROFILER 1
72#ifndef GPUPROFILERTRACE_ENABLED
73#if UE_TRACE_ENABLED && !UE_BUILD_SHIPPING
76#define GPUPROFILERTRACE_ENABLED !RHI_NEW_GPU_PROFILER
78#define GPUPROFILERTRACE_ENABLED 0
83#define HAS_GPU_STATS ((STATS || CSV_PROFILER_STATS || GPUPROFILERTRACE_ENABLED) && (!UE_BUILD_SHIPPING))
109 "FDebugName::ToString(TCHAR* Out, uint32 OutSize) is dangerous and can lead to buffer overflow if the provided "
110 "buffer is smaller than FDebugName::StringBufferSize, even if the OutSize parameter indicates the buffer is "
111 "smaller than this value. Use the templated ToString() or ToStringTruncate() functions to format the name "
112 "string into a pre-allocated array, or use the allocating ToString() function that returns an FString.")
127 "FDebugName::ToString(TCHAR (&Out)[N]) requires a buffer of size of at least FDebugName::StringBufferSize. "
128 "Use ToStringTruncate() if a smaller buffer is required and it is safe for the returned string to be truncated.");
142 static_assert(N > 0,
"Out buffer must have at least one element.");
233#if PLATFORM_SUPPORTS_MESH_SHADERS
245 switch (ShaderFrequency)
295 MaxSimultaneousUAVs
UE_DEPRECATED(5.6,
"Do not use MaxSimultaneousUAVs, this is now device reported by GRHIGlobals.MaxSimultaneousUAVs") = 8
746 return ((
UniformBufferIndex & RTD_Mask_UniformBufferIndex) << RTD_Shift_UniformBufferIndex) |
747 ((ResourceIndex & RTD_Mask_ResourceIndex) << RTD_Shift_ResourceIndex) |
748 ((
BindIndex & RTD_Mask_BindIndex) << RTD_Shift_BindIndex);
753 return (Data >> RTD_Shift_UniformBufferIndex) & RTD_Mask_UniformBufferIndex;
758 return (Data >> RTD_Shift_ResourceIndex) & RTD_Mask_ResourceIndex;
763 return (Data >> RTD_Shift_BindIndex) & RTD_Mask_BindIndex;
767 enum EResourceTableDefinitions
769 RTD_NumBits_UniformBufferIndex = 8,
770 RTD_NumBits_ResourceIndex = 16,
771 RTD_NumBits_BindIndex = 8,
773 RTD_Mask_UniformBufferIndex = (1 << RTD_NumBits_UniformBufferIndex) - 1,
774 RTD_Mask_ResourceIndex = (1 << RTD_NumBits_ResourceIndex) - 1,
775 RTD_Mask_BindIndex = (1 << RTD_NumBits_BindIndex) - 1,
777 RTD_Shift_BindIndex = 0,
778 RTD_Shift_ResourceIndex = RTD_Shift_BindIndex + RTD_NumBits_BindIndex,
779 RTD_Shift_UniformBufferIndex = RTD_Shift_ResourceIndex + RTD_NumBits_ResourceIndex,
781 static_assert(RTD_NumBits_UniformBufferIndex + RTD_NumBits_ResourceIndex + RTD_NumBits_BindIndex <=
sizeof(
uint32)* 8,
"RTD_* values must fit in 32 bits");
849static_assert(
PT_Num <= (1 << 8),
"EPrimitiveType doesn't fit in a byte");
979#define BUF_None EBufferUsageFlags::None
980#define BUF_Static EBufferUsageFlags::Static
981#define BUF_Dynamic EBufferUsageFlags::Dynamic
982#define BUF_Volatile EBufferUsageFlags::Volatile
983#define BUF_UnorderedAccess EBufferUsageFlags::UnorderedAccess
984#define BUF_ByteAddressBuffer EBufferUsageFlags::ByteAddressBuffer
985#define BUF_SourceCopy EBufferUsageFlags::SourceCopy
986#define BUF_StreamOutput EBufferUsageFlags::StreamOutput
987#define BUF_DrawIndirect EBufferUsageFlags::DrawIndirect
988#define BUF_ShaderResource EBufferUsageFlags::ShaderResource
989#define BUF_KeepCPUAccessible EBufferUsageFlags::KeepCPUAccessible
990#define BUF_FastVRAM EBufferUsageFlags::FastVRAM
991#define BUF_Transient EBufferUsageFlags::Transient
992#define BUF_Shared EBufferUsageFlags::Shared
993#define BUF_AccelerationStructure EBufferUsageFlags::AccelerationStructure
994#define BUF_RayTracingScratch EBufferUsageFlags::RayTracingScratch
995#define BUF_VertexBuffer EBufferUsageFlags::VertexBuffer
996#define BUF_IndexBuffer EBufferUsageFlags::IndexBuffer
997#define BUF_StructuredBuffer EBufferUsageFlags::StructuredBuffer
998#define BUF_AnyDynamic EBufferUsageFlags::AnyDynamic
999#define BUF_MultiGPUAllocate EBufferUsageFlags::MultiGPUAllocate
1000#define BUF_MultiGPUGraphIgnore EBufferUsageFlags::MultiGPUGraphIgnore
1001#define BUF_NullResource EBufferUsageFlags::NullResource
1002#define BUF_UniformBuffer EBufferUsageFlags::UniformBuffer
1003#define BUF_ReservedResource EBufferUsageFlags::ReservedResource
1053 RRT_Texture2D UE_DEPRECATED(5.7,
"RRT_Texture2D is unused. Remove any remaining uses of it. There is a single RHI texture type which always uses RRT_Texture. RHI texture references use RRT_TextureReference."),
1054 RRT_Texture2DArray UE_DEPRECATED(5.7,
"RRT_Texture2DArray is unused. Remove any remaining uses of it. There is a single RHI texture type which always uses RRT_Texture. RHI texture references use RRT_TextureReference."),
1055 RRT_Texture3D UE_DEPRECATED(5.7,
"RRT_Texture3D is unused. Remove any remaining uses of it. There is a single RHI texture type which always uses RRT_Texture. RHI texture references use RRT_TextureReference."),
1056 RRT_TextureCube UE_DEPRECATED(5.7,
"RRT_TextureCube is unused. Remove any remaining uses of it. There is a single RHI texture type which always uses RRT_Texture. RHI texture references use RRT_TextureReference."),
1191#define TexCreate_None ETextureCreateFlags::None
1192#define TexCreate_RenderTargetable ETextureCreateFlags::RenderTargetable
1193#define TexCreate_ResolveTargetable ETextureCreateFlags::ResolveTargetable
1194#define TexCreate_DepthStencilTargetable ETextureCreateFlags::DepthStencilTargetable
1195#define TexCreate_ShaderResource ETextureCreateFlags::ShaderResource
1196#define TexCreate_SRGB ETextureCreateFlags::SRGB
1197#define TexCreate_CPUWritable ETextureCreateFlags::CPUWritable
1198#define TexCreate_NoTiling ETextureCreateFlags::NoTiling
1199#define TexCreate_VideoDecode ETextureCreateFlags::VideoDecode
1200#define TexCreate_Dynamic ETextureCreateFlags::Dynamic
1201#define TexCreate_InputAttachmentRead ETextureCreateFlags::InputAttachmentRead
1202#define TexCreate_Foveation ETextureCreateFlags::Foveation
1203#define TexCreate_3DTiling ETextureCreateFlags::Tiling3D
1204#define TexCreate_Memoryless ETextureCreateFlags::Memoryless
1205#define TexCreate_GenerateMipCapable ETextureCreateFlags::GenerateMipCapable
1206#define TexCreate_FastVRAMPartialAlloc ETextureCreateFlags::FastVRAMPartialAlloc
1207#define TexCreate_DisableSRVCreation ETextureCreateFlags::DisableSRVCreation
1208#define TexCreate_DisableDCC ETextureCreateFlags::DisableDCC
1209#define TexCreate_UAV ETextureCreateFlags::UAV
1210#define TexCreate_Presentable ETextureCreateFlags::Presentable
1211#define TexCreate_CPUReadback ETextureCreateFlags::CPUReadback
1212#define TexCreate_OfflineProcessed ETextureCreateFlags::OfflineProcessed
1213#define TexCreate_FastVRAM ETextureCreateFlags::FastVRAM
1214#define TexCreate_HideInVisualizeTexture ETextureCreateFlags::HideInVisualizeTexture
1215#define TexCreate_Virtual ETextureCreateFlags::Virtual
1216#define TexCreate_TargetArraySlicesIndependently ETextureCreateFlags::TargetArraySlicesIndependently
1217#define TexCreate_Shared ETextureCreateFlags::Shared
1218#define TexCreate_NoFastClear ETextureCreateFlags::NoFastClear
1219#define TexCreate_DepthStencilResolveTarget ETextureCreateFlags::DepthStencilResolveTarget
1220#define TexCreate_Streamable ETextureCreateFlags::Streamable
1221#define TexCreate_NoFastClearFinalize ETextureCreateFlags::NoFastClearFinalize
1222#define TexCreate_ReduceMemoryWithTilingMode ETextureCreateFlags::ReduceMemoryWithTilingMode
1223#define TexCreate_Transient ETextureCreateFlags::Transient
1224#define TexCreate_AtomicCompatible ETextureCreateFlags::AtomicCompatible
1225#define TexCreate_External ETextureCreateFlags::External
1226#define TexCreate_MultiGPUGraphIgnore ETextureCreateFlags::MultiGPUGraphIgnore
1227#define TexCreate_ReservedResource ETextureCreateFlags::ReservedResource
1228#define TexCreate_ImmediateCommit ETextureCreateFlags::ImmediateCommit
1229#define TexCreate_Invalid ETextureCreateFlags::Invalid
1230#define TexCreate_LossyCompression ETextureCreateFlags::LossyCompression
1231#define TexCreate_LossyCompressionLowBitrate ETextureCreateFlags::LossyCompressionLowBitrate
1725UE_DEPRECATED(5.7,
"GetRHIResourceType(ETextureDimension Dimension) is deprecated. There is a single RHI texture type which always uses RRT_Texture now, which makes this function pointless. Remove any remaining uses of this function.")
1731#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
1732 #define GEOMETRY_SHADER(GeometryShader) (GeometryShader)
1734 #define GEOMETRY_SHADER(GeometryShader) nullptr
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define UE_STATIC_DEPRECATE(Version, bExpression, Message)
Definition CoreMiscDefines.h:420
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define DECLARE_LOG_CATEGORY_EXTERN(CategoryName, DefaultVerbosity, CompileTimeVerbosity)
Definition LogMacros.h:361
#define NAME_NO_NUMBER_INTERNAL
Definition NameTypes.h:157
#define MAX_uint32
Definition NumericLimits.h:21
#define MAX_uint8
Definition NumericLimits.h:19
ERHIUniformBufferFlags
Definition RHIDefinitions.h:704
@ NoEmulatedUniformBuffer
ERangeCompressionMode
Definition RHIDefinitions.h:797
@ RCM_MinMaxNorm
Definition RHIDefinitions.h:803
@ RCM_UNorm
Definition RHIDefinitions.h:799
@ RCM_MinMax
Definition RHIDefinitions.h:805
@ RCM_SNorm
Definition RHIDefinitions.h:801
bool IsBindlessFullyEnabled(ERHIBindlessConfiguration Configuration)
Definition RHIDefinitions.h:1465
EVertexElementType
Definition RHIDefinitions.h:496
@ VET_Short4
Definition RHIDefinitions.h:507
@ VET_Half4
Definition RHIDefinitions.h:510
@ VET_UShort2N
Definition RHIDefinitions.h:514
@ VET_Short2
Definition RHIDefinitions.h:506
@ VET_Float1
Definition RHIDefinitions.h:498
@ VET_UByte4N
Definition RHIDefinitions.h:504
@ VET_Color
Definition RHIDefinitions.h:505
@ VET_Float3
Definition RHIDefinitions.h:500
@ VET_UShort4N
Definition RHIDefinitions.h:515
@ VET_Half2
Definition RHIDefinitions.h:509
@ VET_UShort2
Definition RHIDefinitions.h:512
@ VET_Float4
Definition RHIDefinitions.h:501
@ VET_NumBits
Definition RHIDefinitions.h:520
@ VET_UByte4
Definition RHIDefinitions.h:503
@ VET_PackedNormal
Definition RHIDefinitions.h:502
@ VET_MAX
Definition RHIDefinitions.h:518
@ VET_Short2N
Definition RHIDefinitions.h:508
@ VET_UInt
Definition RHIDefinitions.h:517
@ VET_Short4N
Definition RHIDefinitions.h:511
@ VET_UShort4
Definition RHIDefinitions.h:513
@ VET_URGB10A2N
Definition RHIDefinitions.h:516
@ VET_None
Definition RHIDefinitions.h:497
@ VET_Float2
Definition RHIDefinitions.h:499
bool IsGeometryPipelineShaderFrequency(EShaderFrequency Frequency)
Definition RHIDefinitions.h:1656
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_NumGraphicsFrequencies
Definition RHIDefinitions.h:219
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
@ SF_Amplification
Definition RHIDefinitions.h:205
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_NumBits
Definition RHIDefinitions.h:224
@ SF_Mesh
Definition RHIDefinitions.h:204
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_RayGen
Definition RHIDefinitions.h:209
@ SF_RayCallable
Definition RHIDefinitions.h:212
@ SF_RayMiss
Definition RHIDefinitions.h:210
@ SF_RayHitGroup
Definition RHIDefinitions.h:211
@ SF_WorkGraphRoot
Definition RHIDefinitions.h:213
@ SF_WorkGraphComputeNode
Definition RHIDefinitions.h:214
@ SF_Pixel
Definition RHIDefinitions.h:206
@ SF_NumStandardFrequencies
Definition RHIDefinitions.h:222
@ MAX_UNIFORM_BUFFER_STATIC_SLOTS
Definition RHIDefinitions.h:727
ESamplerAddressMode
Definition RHIDefinitions.h:339
@ ESamplerAddressMode_NumBits
Definition RHIDefinitions.h:347
@ AM_Mirror
Definition RHIDefinitions.h:342
@ AM_Border
Definition RHIDefinitions.h:344
@ AM_Wrap
Definition RHIDefinitions.h:340
@ ESamplerAddressMode_Num
Definition RHIDefinitions.h:346
@ AM_Clamp
Definition RHIDefinitions.h:341
ERHIDescriptorTypeMask
Definition RHIDefinitions.h:1367
EResourceTransitionFlags
Definition RHIDefinitions.h:1517
ERHIDescriptorType
Definition RHIDefinitions.h:1348
@ ShaderArrayElementAlignBytes
Definition RHIDefinitions.h:282
EGpuVendorId RHIConvertToGpuVendorId(uint32 VendorId)
Definition RHIDefinitions.h:1626
bool IsRDGResourceAccessType(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1565
ERHIResourceType
Definition RHIDefinitions.h:1030
@ RRT_SamplerState
Definition RHIDefinitions.h:1033
@ RRT_Num
Definition RHIDefinitions.h:1076
@ RRT_RayTracingAccelerationStructure
Definition RHIDefinitions.h:1065
@ RRT_RayTracingShader
Definition RHIDefinitions.h:1043
@ RRT_AmplificationShader
Definition RHIDefinitions.h:1040
@ RRT_PixelShader
Definition RHIDefinitions.h:1041
@ RRT_RenderQuery
Definition RHIDefinitions.h:1060
@ RRT_WorkGraphShader
Definition RHIDefinitions.h:1071
@ RRT_DepthStencilState
Definition RHIDefinitions.h:1035
@ RRT_ShaderBundle
Definition RHIDefinitions.h:1070
@ RRT_ShaderLibrary
Definition RHIDefinitions.h:1069
@ RRT_TextureReference
Definition RHIDefinitions.h:1057
@ RRT_CustomPresent
Definition RHIDefinitions.h:1068
@ RRT_UniformBufferLayout
Definition RHIDefinitions.h:1049
@ RRT_RenderQueryPool
Definition RHIDefinitions.h:1061
@ UE_DEPRECATED
Definition RHIDefinitions.h:295
@ RRT_BlendState
Definition RHIDefinitions.h:1036
@ RRT_VertexShader
Definition RHIDefinitions.h:1038
@ RRT_RayTracingPipelineState
Definition RHIDefinitions.h:1047
@ RRT_BoundShaderState
Definition RHIDefinitions.h:1048
@ RRT_UniformBuffer
Definition RHIDefinitions.h:1050
@ RRT_VertexDeclaration
Definition RHIDefinitions.h:1037
@ RRT_StagingBuffer
Definition RHIDefinitions.h:1067
@ RRT_RasterizerState
Definition RHIDefinitions.h:1034
@ RRT_Buffer
Definition RHIDefinitions.h:1051
@ RRT_ComputePipelineState
Definition RHIDefinitions.h:1046
@ RRT_GeometryShader
Definition RHIDefinitions.h:1042
@ RRT_ResourceCollection
Definition RHIDefinitions.h:1074
@ RRT_Viewport
Definition RHIDefinitions.h:1062
@ RRT_StreamSourceSlot
Definition RHIDefinitions.h:1073
@ RRT_Texture
Definition RHIDefinitions.h:1052
@ RRT_UnorderedAccessView
Definition RHIDefinitions.h:1063
@ RRT_ShaderResourceView
Definition RHIDefinitions.h:1064
@ RRT_MeshShader
Definition RHIDefinitions.h:1039
@ RRT_WorkGraphPipelineState
Definition RHIDefinitions.h:1072
@ RRT_ComputeShader
Definition RHIDefinitions.h:1044
@ RRT_GPUFence
Definition RHIDefinitions.h:1059
@ RRT_None
Definition RHIDefinitions.h:1031
@ RRT_RayTracingShaderBindingTable
Definition RHIDefinitions.h:1066
@ RRT_GraphicsPipelineState
Definition RHIDefinitions.h:1045
@ RRT_TimestampCalibrationQuery
Definition RHIDefinitions.h:1058
ERequestedGPUCrash
Definition RHIDefinitions.h:1529
EBlendOperation
Definition RHIDefinitions.h:459
@ EBlendOperation_Num
Definition RHIDefinitions.h:466
@ EBlendOperation_NumBits
Definition RHIDefinitions.h:467
@ BO_Min
Definition RHIDefinitions.h:462
@ BO_Add
Definition RHIDefinitions.h:460
@ BO_Subtract
Definition RHIDefinitions.h:461
@ BO_ReverseSubtract
Definition RHIDefinitions.h:464
@ BO_Max
Definition RHIDefinitions.h:463
ESimpleRenderTargetMode
Definition RHIDefinitions.h:1291
@ EUninitializedColorExistingDepth
@ EExistingContents_NoDepthStore
@ EClearColorExistingDepth
@ EExistingColorAndClearDepth
@ EUninitializedColorClearDepth
@ EExistingColorAndDepthAndClearStencil
@ EUninitializedColorAndDepth
@ MaxSimultaneousRenderTargets_NumBits
Definition RHIDefinitions.h:288
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
EBufferUsageFlags
Definition RHIDefinitions.h:892
EUniformBufferUsage
Definition RHIDefinitions.h:536
@ UniformBuffer_MultiFrame
Definition RHIDefinitions.h:542
@ UniformBuffer_SingleDraw
Definition RHIDefinitions.h:538
@ UniformBuffer_SingleFrame
Definition RHIDefinitions.h:540
EVRSImageDataType
Definition RHIDefinitions.h:882
@ VRSImage_Fractional
Definition RHIDefinitions.h:885
@ VRSImage_Palette
Definition RHIDefinitions.h:884
@ VRSImage_NotSupported
Definition RHIDefinitions.h:883
@ MaxVertexElementCount
Definition RHIDefinitions.h:276
@ MaxVertexElementCount_NumBits
Definition RHIDefinitions.h:277
ETextureDimension
Definition RHIDefinitions.h:1081
EStencilOp
Definition RHIDefinitions.h:443
@ SO_Invert
Definition RHIDefinitions.h:449
@ SO_Zero
Definition RHIDefinitions.h:445
@ EStencilOp_NumBits
Definition RHIDefinitions.h:454
@ SO_Replace
Definition RHIDefinitions.h:446
@ EStencilOp_Num
Definition RHIDefinitions.h:453
@ SO_Increment
Definition RHIDefinitions.h:450
@ SO_Keep
Definition RHIDefinitions.h:444
@ SO_SaturatedDecrement
Definition RHIDefinitions.h:448
@ SO_SaturatedIncrement
Definition RHIDefinitions.h:447
@ SO_Decrement
Definition RHIDefinitions.h:451
bool IsBindlessEnabledForRayTracing(ERHIBindlessConfiguration Configuration)
Definition RHIDefinitions.h:1455
bool IsShaderParameterTypeForUniformBufferLayout(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1597
ERasterizerCullMode
Definition RHIDefinitions.h:369
@ ERasterizerCullMode_Num
Definition RHIDefinitions.h:374
@ ERasterizerCullMode_NumBits
Definition RHIDefinitions.h:375
@ CM_CCW
Definition RHIDefinitions.h:372
@ CM_CW
Definition RHIDefinitions.h:371
@ CM_None
Definition RHIDefinitions.h:370
ERHITransitionCreateFlags
Definition RHIDefinitions.h:1495
ECubeFace
Definition RHIDefinitions.h:525
@ CubeFace_NegX
Definition RHIDefinitions.h:527
@ CubeFace_MAX
Definition RHIDefinitions.h:532
@ CubeFace_PosX
Definition RHIDefinitions.h:526
@ CubeFace_NegY
Definition RHIDefinitions.h:529
@ CubeFace_NegZ
Definition RHIDefinitions.h:531
@ CubeFace_PosZ
Definition RHIDefinitions.h:530
@ CubeFace_PosY
Definition RHIDefinitions.h:528
EStencilMask
Definition RHIDefinitions.h:428
@ SM_255
Definition RHIDefinitions.h:430
@ SM_32
Definition RHIDefinitions.h:436
@ SM_4
Definition RHIDefinitions.h:433
@ SM_64
Definition RHIDefinitions.h:437
@ SM_1
Definition RHIDefinitions.h:431
@ SM_Default
Definition RHIDefinitions.h:429
@ SM_8
Definition RHIDefinitions.h:434
@ SM_128
Definition RHIDefinitions.h:438
@ SM_2
Definition RHIDefinitions.h:432
@ SM_16
Definition RHIDefinitions.h:435
@ SM_Count
Definition RHIDefinitions.h:439
EResourceLockMode
Definition RHIDefinitions.h:785
@ RLM_WriteOnly
Definition RHIDefinitions.h:787
@ RLM_ReadOnly
Definition RHIDefinitions.h:786
@ RLM_Num
Definition RHIDefinitions.h:789
@ RLM_WriteOnly_NoOverwrite
Definition RHIDefinitions.h:788
uint8 FUniformBufferStaticSlot
Definition RHIDefinitions.h:722
ESyncComputeBudget
Definition RHIDefinitions.h:1331
bool IsShaderParameterTypeRHIResource(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1589
EUniformBufferBaseType
Definition RHIDefinitions.h:634
@ UBMT_SRV
Definition RHIDefinitions.h:648
@ UBMT_UAV
Definition RHIDefinitions.h:649
@ UBMT_BOOL
Definition RHIDefinitions.h:639
@ UBMT_FLOAT32
Definition RHIDefinitions.h:644
@ EUniformBufferBaseType_NumBits
Definition RHIDefinitions.h:680
@ UBMT_RDG_BUFFER_UAV
Definition RHIDefinitions.h:662
@ UBMT_REFERENCED_STRUCT
Definition RHIDefinitions.h:672
@ UBMT_RENDER_TARGET_BINDING_SLOTS
Definition RHIDefinitions.h:675
@ UBMT_RDG_UNIFORM_BUFFER
Definition RHIDefinitions.h:663
@ UBMT_RDG_TEXTURE_NON_PIXEL_SRV
Definition RHIDefinitions.h:657
@ UBMT_RDG_BUFFER_ACCESS
Definition RHIDefinitions.h:659
@ UBMT_RESOURCE_COLLECTION
Definition RHIDefinitions.h:677
@ UBMT_NESTED_STRUCT
Definition RHIDefinitions.h:666
@ UBMT_UINT32
Definition RHIDefinitions.h:643
@ UBMT_RDG_TEXTURE
Definition RHIDefinitions.h:653
@ UBMT_RDG_BUFFER_ACCESS_ARRAY
Definition RHIDefinitions.h:660
@ UBMT_RDG_TEXTURE_SRV
Definition RHIDefinitions.h:656
@ EUniformBufferBaseType_Num
Definition RHIDefinitions.h:679
@ UBMT_RDG_BUFFER_SRV
Definition RHIDefinitions.h:661
@ UBMT_INVALID
Definition RHIDefinitions.h:635
@ UBMT_INT32
Definition RHIDefinitions.h:642
@ UBMT_INCLUDED_STRUCT
Definition RHIDefinitions.h:669
@ UBMT_RDG_TEXTURE_ACCESS_ARRAY
Definition RHIDefinitions.h:655
@ UBMT_RDG_TEXTURE_ACCESS
Definition RHIDefinitions.h:654
@ UBMT_TEXTURE
Definition RHIDefinitions.h:647
@ UBMT_RDG_TEXTURE_UAV
Definition RHIDefinitions.h:658
@ UBMT_SAMPLER
Definition RHIDefinitions.h:650
ECompareFunction
Definition RHIDefinitions.h:406
@ CF_DepthNear
Definition RHIDefinitions.h:421
@ CF_Never
Definition RHIDefinitions.h:413
@ CF_LessEqual
Definition RHIDefinitions.h:408
@ CF_Less
Definition RHIDefinitions.h:407
@ CF_NotEqual
Definition RHIDefinitions.h:412
@ ECompareFunction_Num
Definition RHIDefinitions.h:416
@ CF_Equal
Definition RHIDefinitions.h:411
@ CF_Greater
Definition RHIDefinitions.h:409
@ CF_DepthFartherOrEqual
Definition RHIDefinitions.h:422
@ CF_DepthFarther
Definition RHIDefinitions.h:423
@ CF_DepthNearOrEqual
Definition RHIDefinitions.h:420
@ ECompareFunction_NumBits
Definition RHIDefinitions.h:417
@ CF_Always
Definition RHIDefinitions.h:414
@ CF_GreaterEqual
Definition RHIDefinitions.h:410
EClearDepthStencil
Definition RHIDefinitions.h:1307
bool IsUniformBufferStaticSlotValid(const FUniformBufferStaticSlot Slot)
Definition RHIDefinitions.h:731
EVRSRateCombiner
Definition RHIDefinitions.h:873
@ VRSRB_Override
Definition RHIDefinitions.h:875
@ VRSRB_Min
Definition RHIDefinitions.h:876
@ VRSRB_Max
Definition RHIDefinitions.h:877
@ VRSRB_Passthrough
Definition RHIDefinitions.h:874
@ VRSRB_Sum
Definition RHIDefinitions.h:878
EUniformBufferBindingFlags
Definition RHIDefinitions.h:686
bool IsRayTracingShaderFrequency(EShaderFrequency Frequency)
Definition RHIDefinitions.h:1679
ERasterizerDepthClipMode
Definition RHIDefinitions.h:380
ERHIBindlessConfiguration
Definition RHIDefinitions.h:1432
ERHIZBuffer
Definition RHIDefinitions.h:299
ERHIDescriptorHeapType
Definition RHIDefinitions.h:1338
ERHIResourceType GetRHIResourceType(ETextureDimension)
Definition RHIDefinitions.h:1726
bool IsBindlessEnabledForAnyGraphics(ERHIBindlessConfiguration Configuration)
Definition RHIDefinitions.h:1460
constexpr ERHIDescriptorTypeMask RHIDescriptorTypeMaskFromType(ERHIDescriptorType InType)
Definition RHIDefinitions.h:1391
bool IsWorkGraphShaderFrequency(EShaderFrequency Frequency)
Definition RHIDefinitions.h:1702
ESamplerFilter
Definition RHIDefinitions.h:326
@ SF_AnisotropicPoint
Definition RHIDefinitions.h:330
@ ESamplerFilter_Num
Definition RHIDefinitions.h:333
@ SF_Bilinear
Definition RHIDefinitions.h:328
@ SF_AnisotropicLinear
Definition RHIDefinitions.h:331
@ SF_Point
Definition RHIDefinitions.h:327
@ SF_Trilinear
Definition RHIDefinitions.h:329
@ ESamplerFilter_NumBits
Definition RHIDefinitions.h:334
EVRSAxisShadingRate
Definition RHIDefinitions.h:853
@ VRSASR_1X
Definition RHIDefinitions.h:854
@ VRSASR_2X
Definition RHIDefinitions.h:855
@ VRSASR_4X
Definition RHIDefinitions.h:856
EShaderCodeResourceBindingType
Definition RHIDefinitions.h:553
@ RaytracingAccelerationStructure
@ RasterizerOrderedTexture2D
bool IsBindlessDisabled(ERHIBindlessConfiguration Configuration)
Definition RHIDefinitions.h:1445
bool IsValidGraphicsFrequency(EShaderFrequency InShaderFrequency)
Definition RHIDefinitions.h:228
bool IsBindlessEnabledForOnlyRayTracing(ERHIBindlessConfiguration Configuration)
Definition RHIDefinitions.h:1450
EPrimitiveTopologyType
Definition RHIDefinitions.h:809
ESamplerCompareFunction
Definition RHIDefinitions.h:352
@ SCF_Never
Definition RHIDefinitions.h:353
@ SCF_Less
Definition RHIDefinitions.h:354
EAsyncComputeBudget
Definition RHIDefinitions.h:1317
ETextureReallocationStatus
Definition RHIDefinitions.h:1243
@ TexRealloc_Failed
Definition RHIDefinitions.h:1245
@ TexRealloc_InProgress
Definition RHIDefinitions.h:1246
@ TexRealloc_Succeeded
Definition RHIDefinitions.h:1244
ERenderTargetStoreAction
Definition RHIDefinitions.h:1272
bool IsShaderParameterTypeIgnoredByRHI(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1612
ERHIStaticShaderBindingLayoutSupport
Definition RHIDefinitions.h:193
EUniformBufferValidation
Definition RHIDefinitions.h:546
ERHIInterfaceType
Definition RHIDefinitions.h:157
ETextureCreateFlags
Definition RHIDefinitions.h:1091
@ TargetArraySlicesIndependently
@ DepthStencilResolveTarget
@ ReduceMemoryWithTilingMode
@ LossyCompressionLowBitrate
@ ForceIntoNonStreamingMemoryTracking
ERenderQueryType
Definition RHIDefinitions.h:258
@ RQT_Undefined
Definition RHIDefinitions.h:260
@ RQT_AbsoluteTime
Definition RHIDefinitions.h:264
@ RQT_Occlusion
Definition RHIDefinitions.h:262
bool IsRDGTextureReferenceShaderParameterType(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1543
EBlendFactor
Definition RHIDefinitions.h:472
@ BF_DestColor
Definition RHIDefinitions.h:481
@ BF_SourceAlpha
Definition RHIDefinitions.h:477
@ BF_ConstantBlendFactor
Definition RHIDefinitions.h:483
@ BF_InverseSource1Color
Definition RHIDefinitions.h:486
@ BF_One
Definition RHIDefinitions.h:474
@ EBlendFactor_NumBits
Definition RHIDefinitions.h:491
@ BF_Zero
Definition RHIDefinitions.h:473
@ BF_InverseConstantBlendFactor
Definition RHIDefinitions.h:484
@ BF_InverseDestColor
Definition RHIDefinitions.h:482
@ EBlendFactor_Num
Definition RHIDefinitions.h:490
@ BF_Source1Color
Definition RHIDefinitions.h:485
@ BF_InverseSourceColor
Definition RHIDefinitions.h:476
@ BF_InverseSourceAlpha
Definition RHIDefinitions.h:478
@ BF_InverseSource1Alpha
Definition RHIDefinitions.h:488
@ BF_InverseDestAlpha
Definition RHIDefinitions.h:480
@ BF_DestAlpha
Definition RHIDefinitions.h:479
@ BF_Source1Alpha
Definition RHIDefinitions.h:487
@ BF_SourceColor
Definition RHIDefinitions.h:475
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
@ MAX_TEXTURE_MIP_COUNT
Definition RHIDefinitions.h:268
bool IsComputeShaderFrequency(EShaderFrequency ShaderFrequency)
Definition RHIDefinitions.h:243
EColorWriteMask
Definition RHIDefinitions.h:390
@ CW_RGBA
Definition RHIDefinitions.h:398
@ CW_RGB
Definition RHIDefinitions.h:397
@ CW_NONE
Definition RHIDefinitions.h:396
@ CW_RG
Definition RHIDefinitions.h:399
@ CW_BA
Definition RHIDefinitions.h:400
@ EColorWriteMask_NumBits
Definition RHIDefinitions.h:402
@ CW_ALPHA
Definition RHIDefinitions.h:394
@ CW_GREEN
Definition RHIDefinitions.h:392
@ CW_BLUE
Definition RHIDefinitions.h:393
@ CW_RED
Definition RHIDefinitions.h:391
EAsyncComputePriority
Definition RHIDefinitions.h:1234
@ AsyncComputePriority_High
Definition RHIDefinitions.h:1236
@ AsyncComputePriority_Default
Definition RHIDefinitions.h:1235
@ MAX_MESH_LOD_COUNT
Definition RHIDefinitions.h:271
bool IsRDGBufferReferenceShaderParameterType(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1555
EColorSpaceAndEOTF
Definition RHIDefinitions.h:1471
EGpuVendorId
Definition RHIDefinitions.h:1006
#define SHADER_PARAMETER_POINTER_ALIGNMENT
Definition RHIDefinitions.h:35
bool IsResourceBindingTypeSRV(EShaderCodeResourceBindingType Type)
Definition RHIDefinitions.h:595
ERasterizerFillMode
Definition RHIDefinitions.h:358
@ FM_Point
Definition RHIDefinitions.h:359
@ ERasterizerFillMode_Num
Definition RHIDefinitions.h:363
@ FM_Solid
Definition RHIDefinitions.h:361
@ FM_Wireframe
Definition RHIDefinitions.h:360
@ ERasterizerFillMode_NumBits
Definition RHIDefinitions.h:364
bool IsRDGResourceReferenceShaderParameterType(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1575
bool IsShaderParameterTypeReadOnlyRHIResource(EUniformBufferBaseType BaseType)
Definition RHIDefinitions.h:1580
EPrimitiveType
Definition RHIDefinitions.h:822
@ PT_RectList
Definition RHIDefinitions.h:844
@ PT_NumBits
Definition RHIDefinitions.h:847
@ PT_PointList
Definition RHIDefinitions.h:837
@ PT_LineList
Definition RHIDefinitions.h:830
@ PT_TriangleList
Definition RHIDefinitions.h:824
@ PT_Num
Definition RHIDefinitions.h:846
@ PT_QuadList
Definition RHIDefinitions.h:834
@ PT_TriangleStrip
Definition RHIDefinitions.h:827
EVRSShadingRate
Definition RHIDefinitions.h:860
@ VRSSR_2x1
Definition RHIDefinitions.h:863
@ VRSSR_Last
Definition RHIDefinitions.h:869
@ VRSSR_1x2
Definition RHIDefinitions.h:862
@ VRSSR_2x4
Definition RHIDefinitions.h:865
@ VRSSR_1x1
Definition RHIDefinitions.h:861
@ VRSSR_4x4
Definition RHIDefinitions.h:867
@ VRSSR_4x2
Definition RHIDefinitions.h:866
@ VRSSR_2x2
Definition RHIDefinitions.h:864
ERHIFeatureSupport
Definition RHIDefinitions.h:169
Definition RHIDefinitions.h:95
RHI_API FDebugName()
Definition RHI.cpp:2129
uint32 ToString(TCHAR(&Out)[N]) const
Definition RHIDefinitions.h:124
return ToStringInternal(Out, OutSize)
RHI_API void AppendString(FStringBuilderBase &Builder) const
Definition RHI.cpp:2192
uint32 ToStringTruncate(TCHAR(&Out)[N]) const
Definition RHIDefinitions.h:140
static constexpr uint32 StringBufferSize
Definition RHIDefinitions.h:98
bool IsNone() const
Definition RHIDefinitions.h:146
RHI_API FString ToString() const
Definition RHI.cpp:2154
RHI_API FDebugName & operator=(FName Other)
Definition RHI.cpp:2147
UE_DEPRECATED(5.6, "FDebugName::ToString(TCHAR* Out, uint32 OutSize) is dangerous and can lead to buffer overflow if the provided " "buffer is smaller than FDebugName::StringBufferSize, even if the OutSize parameter indicates the buffer is " "smaller than this value. Use the templated ToString() or ToStringTruncate() functions to format the name " "string into a pre-allocated array, or use the allocating ToString() function that returns an FString.") uint32 ToString(TCHAR *Out
Definition NameTypes.h:617
FORCEINLINE bool IsNone() const
Definition NameTypes.h:827
static constexpr uint32 StringBufferSize
Definition NameTypes.h:708
Definition RHIDefinitions.h:315
Type
Definition RHIDefinitions.h:317
@ Forward
Definition RHIDefinitions.h:319
@ Mobile
Definition RHIDefinitions.h:320
@ Deferred
Definition RHIDefinitions.h:318
@ Num
Definition RHIDefinitions.h:321
U16 Index
Definition radfft.cpp:71
Definition RHIDefinitions.h:1401
uint32 GetIndex() const
Definition RHIDefinitions.h:1410
FRHIDescriptorHandle(ERHIDescriptorType InType, uint32 InIndex)
Definition RHIDefinitions.h:1404
FRHIDescriptorHandle()=default
ERHIDescriptorType GetType() const
Definition RHIDefinitions.h:1415
bool IsValid() const
Definition RHIDefinitions.h:1420
Definition RHIDefinitions.h:737
static uint32 Create(uint16 UniformBufferIndex, uint16 ResourceIndex, uint16 BindIndex)
Definition RHIDefinitions.h:744
static uint16 GetBindIndex(uint32 Data)
Definition RHIDefinitions.h:761
static uint16 GetUniformBufferIndex(uint32 Data)
Definition RHIDefinitions.h:751
static constexpr uint32 GetEndOfStreamToken()
Definition RHIDefinitions.h:739
static uint16 GetResourceIndex(uint32 Data)
Definition RHIDefinitions.h:756
Definition RHIDefinitions.h:1739
uint32 RefreshRate
Definition RHIDefinitions.h:1742
uint32 Width
Definition RHIDefinitions.h:1740
uint32 Height
Definition RHIDefinitions.h:1741
Definition RHIDefinitions.h:1746
uint16 BindPoint
Definition RHIDefinitions.h:1747
uint16 Stride
Definition RHIDefinitions.h:1748
Definition RHIDefinitions.h:1752
EShaderCodeResourceBindingType Type
Definition RHIDefinitions.h:1754
uint16 BindPoint
Definition RHIDefinitions.h:1753
Definition RHIDefinitions.h:1758
uint16 BindPoint
Definition RHIDefinitions.h:1759
uint32 Size
Definition RHIDefinitions.h:1760