8#include "Containers/Array.h"
65 RHI_API void MarkForDelete()
const;
75 int32 NewValue = AtomicFlags.AddRef(std::memory_order_acquire);
82 int32 NewValue = AtomicFlags.Release(std::memory_order_release);
95 int32 CurrentValue = AtomicFlags.GetNumRefs(std::memory_order_relaxed);
97 return uint32(CurrentValue);
102 return AtomicFlags.IsValid(std::memory_order_relaxed);
107 ensureMsgf(
IsValid(),
TEXT(
"Resource is already marked for deletion. This call is a no-op. DisableLifetimeExtension must be called while still holding a live reference."));
108 bAllowExtendLifetime =
false;
115#if RHI_ENABLE_RESOURCE_INFO
124#if RHI_ENABLE_RESOURCE_INFO
129#if RHI_ENABLE_RESOURCE_INFO
143 static constexpr uint32 MarkedForDeleteBit = 1 << 30;
144 static constexpr uint32 DeletingBit = 1 << 31;
145 static constexpr uint32 NumRefsMask = ~(MarkedForDeleteBit | DeletingBit);
147 std::atomic_uint Packed = { 0 };
155 checkf(NumRefs < NumRefsMask,
TEXT(
"Reference count has overflowed."));
164 checkf(NumRefs >= 0,
TEXT(
"Reference count has underflowed."));
168 bool MarkForDelete(std::memory_order MemoryOrder)
172 return (
OldPacked & MarkedForDeleteBit) != 0;
175 bool UnmarkForDelete(std::memory_order MemoryOrder)
194 Packed.fetch_or(DeletingBit, std::memory_order_acquire);
200 UnmarkForDelete(std::memory_order_release);
205 bool IsValid(std::memory_order MemoryOrder)
211 bool IsMarkedForDelete(std::memory_order MemoryOrder)
213 return (Packed.load(MemoryOrder) & MarkedForDeleteBit) != 0;
216 int32 GetNumRefs(std::memory_order MemoryOrder)
218 return Packed.load(MemoryOrder) & NumRefsMask;
221 mutable FAtomicFlags AtomicFlags;
224 uint8 bCommitted : 1;
225 uint8 bAllowExtendLifetime : 1;
226#if RHI_ENABLE_RESOURCE_INFO
393 UE_DEPRECATED(5.6,
"Please use FRHIBufferCreateDesc for creating buffers with Resource Arrays")
402 const
TCHAR* DebugName;
425 DepthNop_StencilNop = DepthNop + StencilNop,
426 DepthRead_StencilNop = DepthRead + StencilNop,
427 DepthWrite_StencilNop = DepthWrite + StencilNop,
428 DepthNop_StencilRead = DepthNop + StencilRead,
429 DepthRead_StencilRead = DepthRead + StencilRead,
430 DepthWrite_StencilRead = DepthWrite + StencilRead,
431 DepthNop_StencilWrite = DepthNop + StencilWrite,
432 DepthRead_StencilWrite = DepthRead + StencilWrite,
433 DepthWrite_StencilWrite = DepthWrite + StencilWrite,
448 return Value != DepthNop_StencilNop;
452 return (ExtractDepth() != DepthNop);
456 return (ExtractStencil() != StencilNop);
460 return ExtractDepth() == DepthWrite;
464 return ExtractDepth() == DepthRead;
468 return ExtractStencil() == StencilWrite;
472 return ExtractStencil() == StencilRead;
477 return IsDepthWrite() || IsStencilWrite();
482 Value = (
Type)(ExtractStencil() | DepthWrite);
486 Value = (
Type)(ExtractDepth() | StencilWrite);
490 Value = DepthNop_StencilNop;
508 return Value != RHS.Value;
550 if (IsUsingStencil())
556 template <
typename TFunction>
559 if (!IsUsingDepthStencil())
631 case DepthWrite_StencilNop:
632 case DepthNop_StencilWrite:
633 case DepthWrite_StencilWrite:
634 case DepthNop_StencilNop:
637 case DepthRead_StencilNop:
638 case DepthRead_StencilWrite:
641 case DepthNop_StencilRead:
642 case DepthWrite_StencilRead:
645 case DepthRead_StencilRead:
655 inline Type ExtractDepth()
const
659 inline Type ExtractStencil()
const
661 return (Type)(
Value & StencilMask);
689#if ENABLE_RHI_VALIDATION
702template <
typename RHIState,
typename RHIStateInitializer>
742#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
743 #define RHI_INCLUDE_SHADER_DEBUG_DATA 1
745 #define RHI_INCLUDE_SHADER_DEBUG_DATA 0
748#if RHI_INCLUDE_SHADER_DEBUG_DATA
749 #define RHI_IF_SHADER_DEBUG_DATA(...) __VA_ARGS__
751 #define RHI_IF_SHADER_DEBUG_DATA(...)
780 bEqual &= (
A.ResourceTableBits ==
B.ResourceTableBits);
781 bEqual &= (
A.ShaderResourceViewMap .Num() ==
B.ShaderResourceViewMap .Num());
782 bEqual &= (
A.SamplerMap .Num() ==
B.SamplerMap .Num());
783 bEqual &= (
A.UnorderedAccessViewMap .Num() ==
B.UnorderedAccessViewMap .Num());
784 bEqual &= (
A.ResourceTableLayoutHashes.Num() ==
B.ResourceTableLayoutHashes.Num());
785 bEqual &= (
A.TextureMap .Num() ==
B.TextureMap .Num());
786 bEqual &= (
A.ResourceCollectionMap .Num() ==
B.ResourceCollectionMap .Num());
793 bEqual &= (
FMemory::Memcmp(
A.ShaderResourceViewMap .GetData(),
B.ShaderResourceViewMap .GetData(),
A.ShaderResourceViewMap .GetTypeSize() *
A.ShaderResourceViewMap .Num()) == 0);
794 bEqual &= (
FMemory::Memcmp(
A.SamplerMap .GetData(),
B.SamplerMap .GetData(),
A.SamplerMap .GetTypeSize() *
A.SamplerMap .Num()) == 0);
795 bEqual &= (
FMemory::Memcmp(
A.UnorderedAccessViewMap .GetData(),
B.UnorderedAccessViewMap .GetData(),
A.UnorderedAccessViewMap .GetTypeSize() *
A.UnorderedAccessViewMap .Num()) == 0);
796 bEqual &= (
FMemory::Memcmp(
A.ResourceTableLayoutHashes.GetData(),
B.ResourceTableLayoutHashes.GetData(),
A.ResourceTableLayoutHashes.GetTypeSize() *
A.ResourceTableLayoutHashes.Num()) == 0);
797 bEqual &= (
FMemory::Memcmp(
A.TextureMap .GetData(),
B.TextureMap .GetData(),
A.TextureMap .GetTypeSize() *
A.TextureMap .Num()) == 0);
798 bEqual &= (
FMemory::Memcmp(
A.ResourceCollectionMap .GetData(),
B.ResourceCollectionMap .GetData(),
A.ResourceCollectionMap .GetTypeSize() *
A.ResourceCollectionMap .Num()) == 0);
804 Ar <<
SRT.ResourceTableBits;
805 Ar <<
SRT.ShaderResourceViewMap;
806 Ar <<
SRT.SamplerMap;
807 Ar <<
SRT.UnorderedAccessViewMap;
808 Ar <<
SRT.ResourceTableLayoutHashes;
809 Ar <<
SRT.TextureMap;
810 Ar <<
SRT.ResourceCollectionMap;
831 return ShaderResourceTable;
841 Ar << ShaderResourceTable;
859#if RHI_INCLUDE_SHADER_DEBUG_DATA
872 return Debug.ShaderName.Len()
879 return Debug.UniformBufferNames.IsValidIndex(
Index)
891 bool HasShaderName()
const {
return false; }
892 const TCHAR* GetShaderName()
const {
return TEXT(
"<unknown>"); }
893 FString GetUniformBufferName(
uint32 Index)
const {
return TEXT(
"<unknown>"); }
901 , bNoDerivativeOps(
false)
902 , bHasShaderBundleUsage(
false)
918 bNoDerivativeOps = bValue;
923 return bNoDerivativeOps;
928 bHasShaderBundleUsage = bValue;
933 return bHasShaderBundleUsage;
939 uint8 bNoDerivativeOps : 1;
940 uint8 bHasShaderBundleUsage : 1;
1070#if ENABLE_RHI_VALIDATION
1072 friend class FValidationRHI;
1101 bool bIsValid =
true;
1112#if ENABLE_RHI_VALIDATION
1113 ,
public RHIValidation::FRayTracingPipelineState
1139 return A.MemberOffset ==
B.MemberOffset
1140 &&
A.MemberType ==
B.MemberType;
1221 return A.ConstantBufferSize ==
B.ConstantBufferSize
1222 &&
A.StaticSlot ==
B.StaticSlot
1223 &&
A.BindingFlags ==
B.BindingFlags
1224 &&
A.Resources ==
B.Resources;
1229#if ENABLE_RHI_VALIDATION
1230 ,
public RHIValidation::FUniformBufferResource
1240 , LayoutConstantBufferSize(
InLayout->ConstantBufferSize)
1246 check(LayoutConstantBufferSize ==
Layout->ConstantBufferSize);
1247 return LayoutConstantBufferSize;
1261 uint32 LayoutConstantBufferSize;
1269 return TrackedAccess.Access;
1277#if ENABLE_RHI_VALIDATION
1286#if RHI_ENABLE_RESOURCE_INFO
1302 TrackedAccess =
Other.TrackedAccess;
1378 && Stride ==
Other.Stride
1379 && Usage ==
Other.Usage
1380 && GPUMask ==
Other.GPUMask;
1385 return !(*
this ==
Other);
1391 Stride =
Other.Stride;
1392 Usage =
Other.Usage;
1393 GPUMask =
Other.GPUMask;
1448 template<
typename TVertexType>
1464 template<
typename TIndexType>
1480 template<
typename TStructureType>
1578#if ENABLE_RHI_VALIDATION
1579 ,
public RHIValidation::FBufferResource
1617#if ENABLE_RHI_VALIDATION
1683 double LastRenderTime;
1752 && UAVFormat ==
Other.UAVFormat
1753 && Extent ==
Other.Extent
1755 && ArraySize ==
Other.ArraySize
1756 && NumMips ==
Other.NumMips
1757 && NumSamples ==
Other.NumSamples
1758 && FastVRAMPercentage ==
Other.FastVRAMPercentage
1759 && ClearValue ==
Other.ClearValue
1760 && ExtData ==
Other.ExtData
1761 && GPUMask ==
Other.GPUMask
1762 && AliasableFormats ==
Other.AliasableFormats;
1767 return !(*
this ==
Other);
1775 UAVFormat =
Other.UAVFormat;
1776 Extent =
Other.Extent;
1778 ArraySize =
Other.ArraySize;
1779 NumMips =
Other.NumMips;
1780 NumSamples =
Other.NumSamples;
1781 ClearValue =
Other.ClearValue;
1782 ExtData =
Other.ExtData;
1783 FastVRAMPercentage =
Other.FastVRAMPercentage;
1784 GPUMask =
Other.GPUMask;
1785 AliasableFormats =
Other.AliasableFormats;
1817 return NumSamples > 1;
1834 AliasableFormats.Empty();
1840 return FRHITextureDesc::Validate(*
this,
TEXT(
""),
false);
1888 return FRHITextureDesc::Validate(Desc,
Name,
true);
1905 return CalcMemorySizeEstimate(FirstMipIndex, NumMips - 1);
1913 return (ArraySize * (NumMips * NumFaces) * NumPlanes);
1971 return Create2D(DebugName)
1978 return Create2D(DebugName)
1985 return Create2DArray(DebugName)
1993 return Create2DArray(DebugName)
2001 return Create3D(DebugName)
2009 return Create3D(DebugName)
2017 return CreateCube(DebugName)
2024 return CreateCubeArray(DebugName)
2114 UE_DEPRECATED(5.6,
"SetBulkData has been renamed to SetInitActionBulkData")
2150#if ENABLE_RHI_VALIDATION
2151 ,
public RHIValidation::FTextureResource
2250 FMath::Max<int32>(Desc.
Extent.
X >> MipIndex, 1),
2251 FMath::Max<int32>(Desc.
Extent.
Y >> MipIndex, 1),
2252 FMath::Max<int32>(Desc.
Depth >> MipIndex, 1)
2268 return GetDesc().ClearValue.GetClearColor();
2307 return LastRenderTime.GetLastRenderTime();
2355#if ENABLE_RHI_VALIDATION
2376#if (RHI_NEW_GPU_PROFILER == 0)
2468 return Query.IsValid();
2476 void ReleaseQuery();
2500 if (QueryPool && Query.
IsValid())
2502 QueryPool->ReleaseQuery(
MoveTemp(Query));
2503 QueryPool =
nullptr;
2565 virtual void Tick(
float DeltaTime) {}
2614template <
typename TType>
2786 return !(*
this == RHS);
2808static_assert(
sizeof(
FRHIViewDesc) == 16,
"Packing of FRHIViewDesc is unexpected.");
2827 Buffer.SRV.BufferType = Type;
2838 checkf(!
TargetBuffer->GetDesc().IsNull(),
TEXT(
"Null buffer resources are placeholders for the streaming system. They do not contain a valid descriptor for this function to use. Call SetType() instead."));
2896 Buffer.UAV.BufferType = Type;
2907 checkf(!
TargetBuffer->GetDesc().IsNull(),
TEXT(
"Null buffer resources are placeholders for the streaming system. They do not contain a valid descriptor for this function to use. Call SetType() instead."));
3274#if ENABLE_RHI_VALIDATION
3277 return RHIValidation::FViewIdentity(Resource,
ViewDesc);
3399 uint32 Reserved[6] = { 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF };
3418 return !(*
this ==
Other);
3423 Ar <<
Header.Reserved[0];
3424 Ar <<
Header.Reserved[1];
3425 Ar <<
Header.Reserved[2];
3426 Ar <<
Header.Reserved[3];
3427 Ar <<
Header.Reserved[4];
3428 Ar <<
Header.Reserved[5];
3550 for (
int32 SegmentIndex = 0; SegmentIndex <
LHS.Segments.Num(); ++SegmentIndex)
3557 if (
LHS.Segments[SegmentIndex].VertexBuffer != RHS.
Segments[SegmentIndex].VertexBuffer
3558 ||
LHS.Segments[SegmentIndex].VertexBufferElementType != RHS.
Segments[SegmentIndex].VertexBufferElementType
3559 ||
LHS.Segments[SegmentIndex].VertexBufferOffset != RHS.
Segments[SegmentIndex].VertexBufferOffset
3560 ||
LHS.Segments[SegmentIndex].VertexBufferStride != RHS.
Segments[SegmentIndex].VertexBufferStride
3561 ||
LHS.Segments[SegmentIndex].MaxVertices != RHS.
Segments[SegmentIndex].MaxVertices
3562 ||
LHS.Segments[SegmentIndex].FirstPrimitive != RHS.
Segments[SegmentIndex].FirstPrimitive
3563 ||
LHS.Segments[SegmentIndex].NumPrimitives != RHS.
Segments[SegmentIndex].NumPrimitives
3564 ||
LHS.Segments[SegmentIndex].bForceOpaque != RHS.
Segments[SegmentIndex].bForceOpaque
3565 ||
LHS.Segments[SegmentIndex].bAllowDuplicateAnyHitShaderInvocation != RHS.
Segments[SegmentIndex].bAllowDuplicateAnyHitShaderInvocation
3566 ||
LHS.Segments[SegmentIndex].bEnabled != RHS.
Segments[SegmentIndex].bEnabled)
3673 UE_DEPRECATED(5.6,
"Use FRayTracingShaderBindingTableInitializer instead.")
3709#if ENABLE_RHI_VALIDATION
3710 ,
public RHIValidation::FAccelerationStructureResource
3860#if ENABLE_RHI_VALIDATION
3861 ,
public RHIValidation::FShaderBindingTable
3878 UE_DEPRECATED(5.6,
"GetOrCreateInlineBufferSRV is deprecated. Use GetInlineBufferSize and provide the buffer to RHICommitInlineRayTracingBuffer function.")
3930 , NumRecords(CreateInfo.NumRecords)
3931 , ArgOffset(CreateInfo.ArgOffset)
3932 , ArgStride(CreateInfo.ArgStride)
3933 , Mode(CreateInfo.Mode)
3939 check(ArgStride >= 12u);
3944 check(ArgStride >= 4u);
3949 check(ArgStride >= 16u);
3965 return TEXT(
"MSPS");
3967 return TEXT(
"VSPS");
3972 return TEXT(
"<none>");
4039 ArraySliceIndex(-1),
4065 MipIndex ==
Other.MipIndex &&
4066 ArraySliceIndex ==
Other.ArraySliceIndex &&
4067 LoadAction ==
Other.LoadAction &&
4068 StoreAction ==
Other.StoreAction;
4158 DepthLoadAction ==
Other.DepthLoadAction &&
4159 DepthStoreAction ==
Other.DepthStoreAction &&
4160 StencilLoadAction ==
Other.StencilLoadAction &&
4161 StencilStoreAction ==
Other.StencilStoreAction &&
4162 DepthStencilAccess ==
Other.DepthStencilAccess;
4191 NumColorRenderTargets(0),
4193 bHasResolveAttachments(
false),
4195 ShadingRateTexture(nullptr),
4202 bHasResolveAttachments(
false),
4205 ShadingRateTexture(nullptr),
4253 bool bHasResolveAttachments;
4254 uint8 MultiViewCount;
4272 DepthLoadAction =
RTInfo.DepthStencilRenderTarget.DepthLoadAction;
4273 DepthStoreAction =
RTInfo.DepthStencilRenderTarget.DepthStoreAction;
4274 StencilLoadAction =
RTInfo.DepthStencilRenderTarget.StencilLoadAction;
4275 StencilStoreAction =
RTInfo.DepthStencilRenderTarget.GetStencilStoreAction();
4276 DepthStencilAccess =
RTInfo.DepthStencilRenderTarget.GetDepthStencilAccess();
4278 bClearDepth =
RTInfo.bClearDepth;
4279 bClearStencil =
RTInfo.bClearStencil;
4280 bClearColor =
RTInfo.bClearColor;
4281 bHasResolveAttachments =
RTInfo.bHasResolveAttachments;
4282 MultiViewCount =
RTInfo.MultiViewCount;
4313 UE_DEPRECATED(5.7,
"FRHICustomPresent::BeginDrawing is deprecated and never called.")
4355template<
typename TRHIShaderType>
4383#if PLATFORM_SUPPORTS_MESH_SHADERS
4397 if (GetMeshShader())
4399 check(VertexDeclarationRHI ==
nullptr);
4400 check(VertexShaderRHI ==
nullptr);
4401 check(GetWorkGraphShader() ==
nullptr);
4402 GetMeshShader()->AddRef();
4404 if (GetAmplificationShader())
4406 GetAmplificationShader()->AddRef();
4409 else if (GetWorkGraphShader())
4411 check(VertexDeclarationRHI ==
nullptr);
4412 check(VertexShaderRHI ==
nullptr);
4413 check(GetMeshShader() ==
nullptr);
4414 GetWorkGraphShader()->AddRef();
4418 check(VertexDeclarationRHI);
4419 VertexDeclarationRHI->AddRef();
4421 check(VertexShaderRHI);
4422 VertexShaderRHI->AddRef();
4427 PixelShaderRHI->AddRef();
4430 if (GetGeometryShader())
4432 GetGeometryShader()->AddRef();
4438 if (GetMeshShader())
4440 check(VertexDeclarationRHI ==
nullptr);
4441 check(VertexShaderRHI ==
nullptr);
4442 check(GetWorkGraphShader() ==
nullptr);
4443 GetMeshShader()->Release();
4445 if (GetAmplificationShader())
4447 GetAmplificationShader()->Release();
4450 else if (GetWorkGraphShader())
4452 check(VertexDeclarationRHI ==
nullptr);
4453 check(VertexShaderRHI ==
nullptr);
4454 check(GetMeshShader() ==
nullptr);
4455 GetWorkGraphShader()->Release();
4459 check(VertexDeclarationRHI);
4460 VertexDeclarationRHI->Release();
4462 check(VertexShaderRHI);
4463 VertexShaderRHI->Release();
4468 PixelShaderRHI->Release();
4471 if (GetGeometryShader())
4473 GetGeometryShader()->Release();
4480#if PLATFORM_SUPPORTS_MESH_SHADERS
4492#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
4500#if PLATFORM_SUPPORTS_WORKGRAPH_SHADERS
4512#if PLATFORM_SUPPORTS_MESH_SHADERS
4516#if PLATFORM_SUPPORTS_GEOMETRY_SHADERS
4519#if PLATFORM_SUPPORTS_WORKGRAPH_SHADERS
4567 bool bHasFragmentDensityAttachment =
false;
4579 : BlendState(nullptr)
4580 , RasterizerState(nullptr)
4581 , DepthStencilState(nullptr)
4582 , RenderTargetsEnabled(0)
4595 , bDepthBounds(
false)
4597 , bHasFragmentDensityAttachment(
false)
4598 , bAllowVariableRateShading(
true)
4601 , StatePrecachePSOHash(0)
4606 static_assert(
PF_MAX <
MAX_uint8,
"TRenderTargetFormats assumes EPixelFormat can fit in a uint8!");
4662 , StatePrecachePSOHash(0)
4668 if (BoundShaderState.VertexDeclarationRHI !=
rhs.BoundShaderState.VertexDeclarationRHI ||
4669 BoundShaderState.VertexShaderRHI !=
rhs.BoundShaderState.VertexShaderRHI ||
4670 BoundShaderState.PixelShaderRHI !=
rhs.BoundShaderState.PixelShaderRHI ||
4671 BoundShaderState.GetMeshShader() !=
rhs.BoundShaderState.GetMeshShader() ||
4672 BoundShaderState.GetAmplificationShader() !=
rhs.BoundShaderState.GetAmplificationShader() ||
4673 BoundShaderState.GetWorkGraphShader() !=
rhs.BoundShaderState.GetWorkGraphShader() ||
4674 BoundShaderState.GetGeometryShader() !=
rhs.BoundShaderState.GetGeometryShader() ||
4675 BlendState !=
rhs.BlendState ||
4676 RasterizerState !=
rhs.RasterizerState ||
4677 DepthStencilState !=
rhs.DepthStencilState ||
4678 ImmutableSamplerState !=
rhs.ImmutableSamplerState ||
4679 PrimitiveType !=
rhs.PrimitiveType ||
4680 bDepthBounds !=
rhs.bDepthBounds ||
4681 MultiViewCount !=
rhs.MultiViewCount ||
4682 ShadingRate !=
rhs.ShadingRate ||
4683 bAllowVariableRateShading !=
rhs.bAllowVariableRateShading ||
4684 bHasFragmentDensityAttachment !=
rhs.bHasFragmentDensityAttachment ||
4685 RenderTargetsEnabled !=
rhs.RenderTargetsEnabled ||
4686 RenderTargetFormats !=
rhs.RenderTargetFormats ||
4687 !RelevantRenderTargetFlagsEqual(RenderTargetFlags,
rhs.RenderTargetFlags) ||
4688 DepthStencilTargetFormat !=
rhs.DepthStencilTargetFormat ||
4689 !RelevantDepthStencilFlagsEqual(DepthStencilTargetFlag,
rhs.DepthStencilTargetFlag) ||
4690 DepthTargetLoadAction !=
rhs.DepthTargetLoadAction ||
4691 DepthTargetStoreAction !=
rhs.DepthTargetStoreAction ||
4692 StencilTargetLoadAction !=
rhs.StencilTargetLoadAction ||
4693 StencilTargetStoreAction !=
rhs.StencilTargetStoreAction ||
4694 DepthStencilAccess !=
rhs.DepthStencilAccess ||
4695 NumSamples !=
rhs.NumSamples ||
4696 SubpassHint !=
rhs.SubpassHint ||
4697 SubpassIndex !=
rhs.SubpassIndex ||
4698 ConservativeRasterization !=
rhs.ConservativeRasterization)
4738 if (RenderTargetsEnabled > 0)
4741 for (
int32 i = (
int32)RenderTargetsEnabled - 1; i >= 0; i--)
4751 return RenderTargetsEnabled;
4806 static_assert((int)EPSOPrecacheCompileType::MaxPri < (1<<3) );
4861template<
typename TShaderType>
4875 CombinedHash ^= ShaderHash + 0x9e3779b9 + (CombinedHash << 6) + (CombinedHash >> 2);
4878 return CombinedHash;
4889 NameTableHash == Rhs.NameTableHash &&
4890 ShaderTableHash == Rhs.ShaderTableHash &&
4891 GraphicsPSOTableHash == Rhs.GraphicsPSOTableHash;
4922 NameHash = GetTypeHash(ProgramName);
4974 FString ProgramName;
4976 int32 RootShaderIndex = -1;
4991 return MaxAttributeSizeInBytes ==
rhs.MaxAttributeSizeInBytes
4992 && MaxPayloadSizeInBytes ==
rhs.MaxPayloadSizeInBytes
4993 && RayGenHash ==
rhs.RayGenHash
4994 && MissHash ==
rhs.MissHash
4995 && HitGroupHash ==
rhs.HitGroupHash
4996 && CallableHash ==
rhs.CallableHash;
5001 return GetTypeHash(
Initializer.MaxAttributeSizeInBytes) ^
5031 bool bPartial =
false;
5037 bool bBackgroundCompilation =
false;
5115 default:
return nullptr;
5134#define RTACTION_MAKE_MASK(Load, Store) (((uint8)ERenderTargetLoadAction::Load << (uint8)LoadOpMask) | (uint8)ERenderTargetStoreAction::Store)
5147#undef RTACTION_MAKE_MASK
5169#define RTACTION_MAKE_MASK(Depth, Stencil) (((uint8)ERenderTargetActions::Depth << (uint8)DepthMask) | (uint8)ERenderTargetActions::Stencil)
5190#undef RTACTION_MAKE_MASK
5238 return !(*
this ==
Other);
5243 return X1 >= 0 && Y1 >= 0 && X2 - X1 > 0 && Y2 - Y1 > 0;
5280 bool bOcclusionQueries =
false;
5297 ColorRenderTargets[0].RenderTarget =
ColorRT;
5298 ColorRenderTargets[0].ResolveTarget =
ResolveRT;
5312 ColorRenderTargets[
Index].ArraySlice = -1;
5329 ColorRenderTargets[
Index].ResolveTarget = ResolveTargets[
Index];
5330 ColorRenderTargets[
Index].ArraySlice = -1;
5331 ColorRenderTargets[
Index].MipIndex = 0;
5348 ColorRenderTargets[
Index].ResolveTarget =
nullptr;
5349 ColorRenderTargets[
Index].ArraySlice = -1;
5350 ColorRenderTargets[
Index].MipIndex = 0;
5370 ColorRenderTargets[
Index].ArraySlice = -1;
5371 ColorRenderTargets[
Index].MipIndex = 0;
5409 ColorRenderTargets[0].RenderTarget =
ColorRT;
5410 ColorRenderTargets[0].ResolveTarget =
nullptr;
5411 ColorRenderTargets[0].ArraySlice = -1;
5412 ColorRenderTargets[0].MipIndex = 0;
5429 ColorRenderTargets[0].RenderTarget =
ColorRT;
5431 ColorRenderTargets[0].ArraySlice = -1;
5432 ColorRenderTargets[0].MipIndex = 0;
5451 ColorRenderTargets[0].RenderTarget =
ColorRT;
5453 ColorRenderTargets[0].ArraySlice = -1;
5454 ColorRenderTargets[0].MipIndex = 0;
5527 RenderTargetsInfo.bHasFragmentDensityAttachment = ShadingRateTexture !=
nullptr;
5532#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST)
5533 RHI_API void Validate()
const;
5535 void Validate()
const {}
5554 void* RHIPlatformData =
nullptr;
5576 , FirstArraySlice(0)
5617 MipLevel ==
Other.MipLevel &&
5618 NumMipLevels ==
Other.NumMipLevels &&
5619 SRGBOverride ==
Other.SRGBOverride &&
5620 FirstArraySlice ==
Other.FirstArraySlice &&
5621 NumArraySlices ==
Other.NumArraySlices &&
5623 DimensionOverride ==
Other.DimensionOverride);
5628 return !(*
this ==
Other);
5669 FirstArraySlice ==
Other.FirstArraySlice && NumArraySlices ==
Other.NumArraySlices &&
5670 DimensionOverride ==
Other.DimensionOverride;
5675 return !(*
this ==
Other);
5720 && StartOffsetBytes ==
Other.StartOffsetBytes
5721 && NumElements ==
Other.NumElements
5722 && RayTracingScene ==
Other.RayTracingScene;
5727 return !(*
this ==
Other);
5763 return Format ==
Other.Format && bSupportsAtomicCounter ==
Other.bSupportsAtomicCounter && bSupportsAppendBuffer ==
Other.bSupportsAppendBuffer;
5768 return !(*
this ==
Other);
5780 bool bSupportsAtomicCounter =
false;
5781 bool bSupportsAppendBuffer =
false;
5794#if RHI_USE_RESOURCE_DEBUG_NAME
5815#if RHI_USE_RESOURCE_DEBUG_NAME
5822 return UAVs.Num() + SRVs.Num();
#define NULL
Definition oodle2base.h:134
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define checkNoEntry()
Definition AssertionMacros.h:316
#define ensure( InExpression)
Definition AssertionMacros.h:464
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define ENABLE_RHI_VALIDATION
Definition Build.h:475
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
FArchive & operator<<(FArchive &Ar, FEnvQueryDebugProfileData::FStep &Data)
Definition EnvQueryTypes.cpp:489
return true
Definition ExternalRpcRegistry.cpp:601
void Init()
Definition LockFreeList.h:4
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
FInt32Vector3 FIntVector
Definition MathFwd.h:115
FInt32Point FIntPoint
Definition MathFwd.h:124
#define DECLARE_INTRINSIC_TYPE_LAYOUT(T)
Definition MemoryLayout.h:760
#define MAX_NUM_GPUS
Definition MultiGPU.h:25
#define MAX_uint32
Definition NumericLimits.h:21
#define MAX_uint8
Definition NumericLimits.h:19
ERHIAccess
Definition RHIAccess.h:11
ERHIUniformBufferFlags
Definition RHIDefinitions.h:704
EVertexElementType
Definition RHIDefinitions.h:496
@ VET_Float3
Definition RHIDefinitions.h:500
#define TexCreate_ResolveTargetable
Definition RHIDefinitions.h:1193
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_Amplification
Definition RHIDefinitions.h:205
@ SF_Vertex
Definition RHIDefinitions.h:203
@ 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
ERHIDescriptorType
Definition RHIDefinitions.h:1348
#define TexCreate_RenderTargetable
Definition RHIDefinitions.h:1192
ERHIResourceType
Definition RHIDefinitions.h:1030
@ RRT_SamplerState
Definition RHIDefinitions.h:1033
@ 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_CustomPresent
Definition RHIDefinitions.h:1068
@ RRT_RenderQueryPool
Definition RHIDefinitions.h:1061
@ 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_ComputePipelineState
Definition RHIDefinitions.h:1046
@ RRT_GeometryShader
Definition RHIDefinitions.h:1042
@ RRT_Viewport
Definition RHIDefinitions.h:1062
@ RRT_StreamSourceSlot
Definition RHIDefinitions.h:1073
@ 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_RayTracingShaderBindingTable
Definition RHIDefinitions.h:1066
@ RRT_GraphicsPipelineState
Definition RHIDefinitions.h:1045
@ RRT_TimestampCalibrationQuery
Definition RHIDefinitions.h:1058
#define TexCreate_Memoryless
Definition RHIDefinitions.h:1204
@ MaxSimultaneousRenderTargets
Definition RHIDefinitions.h:287
EBufferUsageFlags
Definition RHIDefinitions.h:892
ETextureDimension
Definition RHIDefinitions.h:1081
#define TexCreate_None
Definition RHIDefinitions.h:1191
uint8 FUniformBufferStaticSlot
Definition RHIDefinitions.h:722
EUniformBufferBaseType
Definition RHIDefinitions.h:634
bool IsUniformBufferStaticSlotValid(const FUniformBufferStaticSlot Slot)
Definition RHIDefinitions.h:731
EVRSRateCombiner
Definition RHIDefinitions.h:873
@ VRSRB_Passthrough
Definition RHIDefinitions.h:874
#define BUF_ByteAddressBuffer
Definition RHIDefinitions.h:984
EUniformBufferBindingFlags
Definition RHIDefinitions.h:686
#define BUF_AccelerationStructure
Definition RHIDefinitions.h:993
ERenderTargetStoreAction
Definition RHIDefinitions.h:1272
ETextureCreateFlags
Definition RHIDefinitions.h:1091
#define BUF_StructuredBuffer
Definition RHIDefinitions.h:997
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
#define TexCreate_UAV
Definition RHIDefinitions.h:1209
EPrimitiveType
Definition RHIDefinitions.h:822
EVRSShadingRate
Definition RHIDefinitions.h:860
@ VRSSR_1x1
Definition RHIDefinitions.h:861
#define TexCreate_DepthStencilResolveTarget
Definition RHIDefinitions.h:1219
ERayTracingClusterOperationFlags
Definition RHIResources.h:3790
ERayTracingClusterOperationType
Definition RHIResources.h:3767
@ CLAS_INSTANTIATE_TEMPLATES
ERayTracingGeometryInitializerType
Definition RHIResources.h:3450
ERenderTargetActions MakeRenderTargetActions(ERenderTargetLoadAction Load, ERenderTargetStoreAction Store)
Definition RHIResources.h:5150
constexpr uint16 kUniformBufferInvalidOffset
Definition RHIResources.h:1144
ERayTracingAccelerationStructureFlags
Definition RHIResources.h:3602
ERHIDescriptorType RHIDescriptorTypeFromViewType(FRHIViewDesc::EViewType ViewType)
Definition RHIResources.h:3313
ERenderTargetLoadAction GetLoadAction(ERenderTargetActions Action)
Definition RHIResources.h:5155
EClearBinding
Definition RHIResources.h:239
ERayTracingSceneLifetime
Definition RHIResources.h:3593
@ RTSL_SingleFrame
Definition RHIResources.h:3595
const TCHAR * GetShaderFrequencyString(bool bIncludePrefix=true)
Definition RHIResources.h:4356
ERayTracingHitGroupIndexingMode
Definition RHIResources.h:3628
uint64 FRayTracingAccelerationStructureAddress
Definition RHIResources.h:3725
ERayTracingGeometryType
Definition RHIResources.h:3434
@ RTGT_Triangles
Definition RHIResources.h:3439
@ RTGT_Procedural
Definition RHIResources.h:3445
ERHIShaderBundleMode
Definition RHIResources.h:3896
uint64 ComputeShaderTableHash(const TArrayView< TShaderType * > &ShaderTable, uint64 InitialHash=5699878132332235837ull)
Definition RHIResources.h:4862
EConservativeRasterization
Definition RHIResources.h:4541
ERayTracingShaderBindingTableLifetime
Definition RHIResources.h:3613
ERenderTargetActions
Definition RHIResources.h:5131
EDepthStencilTargetActions
Definition RHIResources.h:5166
@ LoadDepthStencil_StoreStencilNotDepth
@ ClearDepthStencil_StoreDepthStencil
@ ClearDepthStencil_ResolveDepthNotStencil
@ ClearDepthStencil_DontStoreDepthStencil
@ LoadDepthNotStencil_DontStore
@ ClearStencilDontLoadDepth_StoreStencilNotDepth
@ LoadDepthNotStencil_StoreDepthNotStencil
@ ClearDepthStencil_StoreDepthNotStencil
@ DontLoad_StoreStencilNotDepth
@ ClearDepthStencil_StoreStencilNotDepth
@ LoadDepthClearStencil_StoreDepthStencil
@ LoadDepthStencil_DontStoreDepthStencil
@ DontLoad_StoreDepthStencil
@ LoadDepthStencil_StoreDepthStencil
@ ClearDepthStencil_ResolveStencilNotDepth
TArray< FGraphEventRef, TInlineAllocator< 4 > > FGraphEventArray
Definition RHIResources.h:44
ERayTracingInstanceFlags
Definition RHIResources.h:3342
ERHIDescriptorType RHIDescriptorTypeFromViewDesc(const FRHIViewDesc &InViewDesc)
Definition RHIResources.h:3332
ERenderTargetActions GetDepthActions(EDepthStencilTargetActions Action)
Definition RHIResources.h:5198
ERayTracingClusterOperationMoveType
Definition RHIResources.h:3776
constexpr EDepthStencilTargetActions MakeDepthStencilTargetActions(const ERenderTargetActions Depth, const ERenderTargetActions Stencil)
Definition RHIResources.h:5193
ESubpassHint
Definition RHIResources.h:4526
ERHITextureSRVOverrideSRGBType
Definition RHIResources.h:5563
@ SRGBO_ForceDisable
Definition RHIResources.h:5565
@ SRGBO_Default
Definition RHIResources.h:5564
ERHITexturePlane
Definition RHIResources.h:2574
ERHITextureInitAction
Definition RHIResources.h:1926
#define RTACTION_MAKE_MASK(Load, Store)
Definition RHIResources.h:5134
ERayTracingClusterOperationMode
Definition RHIResources.h:3783
ERayTracingShaderBindingMode
Definition RHIResources.h:3620
ERenderTargetActions GetStencilActions(EDepthStencilTargetActions Action)
Definition RHIResources.h:5203
ERHIBufferInitAction
Definition RHIResources.h:1402
ERenderTargetStoreAction GetStoreAction(ERenderTargetActions Action)
Definition RHIResources.h:5160
ERHIAccess RHIGetDefaultResourceState(ETextureCreateFlags InUsage, bool bInHasInitialData)
Definition RHIUtilities.cpp:639
TArray< FVertexElement, TFixedAllocator< MaxVertexElementCount > > FVertexDeclarationElementList
Definition RHI.h:229
@ ShadowBuffer
Indicates this buffer is a full object's memory.
CORE_API bool IsInParallelRenderingThread()
Definition ThreadingBase.cpp:301
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32 GetArrayHash(const T *Ptr, uint64 Size, uint32 PreviousHash=0)
Definition TypeHash.h:200
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
if(Failed) console_printf("Failed.\n")
Definition Archive.h:1208
Definition RHIResources.h:4820
uint8 bPSOPrecache
Definition RHIResources.h:4853
uint8 bFromPSOFileCache
Definition RHIResources.h:4854
uint8 Reserved
Definition RHIResources.h:4852
uint8 Flags
Definition RHIResources.h:4856
bool operator==(const FComputePipelineStateInitializer &Other) const
Definition RHIResources.h:4837
FComputePipelineStateInitializer()
Definition RHIResources.h:4823
FRHIComputeShader * ComputeShader
Definition RHIResources.h:4842
FComputePipelineStateInitializer(FRHIComputeShader *InComputeShader, uint8 InFlags)
Definition RHIResources.h:4829
Definition RHIDefinitions.h:95
Definition DynamicRHI.h:206
Definition RHIResources.h:409
FExclusiveDepthStencil GetWritableTransition() const
Definition RHIResources.h:610
bool IsUsingDepth() const
Definition RHIResources.h:450
void SetDepthStencilWrite(bool bDepth, bool bStencil)
Definition RHIResources.h:488
void EnumerateSubresources(TFunction Function) const
Definition RHIResources.h:557
void SetDepthWrite()
Definition RHIResources.h:480
void GetAccess(ERHIAccess &DepthAccess, ERHIAccess &StencilAccess) const
Definition RHIResources.h:530
bool IsStencilWrite() const
Definition RHIResources.h:466
bool IsDepthRead() const
Definition RHIResources.h:462
Type
Definition RHIResources.h:412
@ DepthWrite
Definition RHIResources.h:417
@ StencilNop
Definition RHIResources.h:419
@ StencilWrite
Definition RHIResources.h:421
@ DepthWrite_StencilWrite
Definition RHIResources.h:433
@ DepthNop
Definition RHIResources.h:415
@ StencilRead
Definition RHIResources.h:420
@ DepthNop_StencilNop
Definition RHIResources.h:425
@ DepthRead
Definition RHIResources.h:416
void SetStencilWrite()
Definition RHIResources.h:484
bool operator==(const FExclusiveDepthStencil &rhs) const
Definition RHIResources.h:501
uint32 GetIndex() const
Definition RHIResources.h:623
bool IsUsingDepthStencil() const
Definition RHIResources.h:446
bool IsDepthWrite() const
Definition RHIResources.h:458
bool IsUsingStencil() const
Definition RHIResources.h:454
FExclusiveDepthStencil(Type InValue=DepthNop_StencilNop)
Definition RHIResources.h:441
bool IsAnyWrite() const
Definition RHIResources.h:475
bool IsValid(FExclusiveDepthStencil &Current) const
Definition RHIResources.h:511
FExclusiveDepthStencil GetReadableTransition() const
Definition RHIResources.h:592
bool IsStencilRead() const
Definition RHIResources.h:470
Definition RHIResources.h:4001
~FGenericRHIStagingBuffer()
Definition RHIResources.h:4007
FGenericRHIStagingBuffer()
Definition RHIResources.h:4003
FBufferRHIRef ShadowBuffer
Definition RHIResources.h:4013
uint32 Offset
Definition RHIResources.h:4014
Definition RHIResources.h:4572
uint16 bFromPSOFileCache
Definition RHIResources.h:4791
EConservativeRasterization ConservativeRasterization
Definition RHIResources.h:4774
ERenderTargetStoreAction DepthTargetStoreAction
Definition RHIResources.h:4767
FGraphicsPipelineStateInitializer(FBoundShaderStateInput InBoundShaderState, FRHIBlendState *InBlendState, FRHIRasterizerState *InRasterizerState, FRHIDepthStencilState *InDepthStencilState, FImmutableSamplerState InImmutableSamplerState, EPrimitiveType InPrimitiveType, uint32 InRenderTargetsEnabled, const TRenderTargetFormats &InRenderTargetFormats, const TRenderTargetFlags &InRenderTargetFlags, EPixelFormat InDepthStencilTargetFormat, ETextureCreateFlags InDepthStencilTargetFlag, ERenderTargetLoadAction InDepthTargetLoadAction, ERenderTargetStoreAction InDepthTargetStoreAction, ERenderTargetLoadAction InStencilTargetLoadAction, ERenderTargetStoreAction InStencilTargetStoreAction, FExclusiveDepthStencil InDepthStencilAccess, uint16 InNumSamples, ESubpassHint InSubpassHint, uint8 InSubpassIndex, EConservativeRasterization InConservativeRasterization, uint16 InFlags, bool bInDepthBounds, uint8 InMultiViewCount, bool bInHasFragmentDensityAttachment, bool bInAllowVariableRateShading, EVRSShadingRate InShadingRate)
Definition RHIResources.h:4609
bool bDepthBounds
Definition RHIResources.h:4775
FBoundShaderStateInput BoundShaderState
Definition RHIResources.h:4754
EPixelFormat DepthStencilTargetFormat
Definition RHIResources.h:4764
EVRSShadingRate ShadingRate
Definition RHIResources.h:4779
static bool RelevantDepthStencilFlagsEqual(const ETextureCreateFlags A, const ETextureCreateFlags B)
Definition RHIResources.h:4728
uint32 RenderTargetsEnabled
Definition RHIResources.h:4761
FRHIBlendState * BlendState
Definition RHIResources.h:4755
uint64 StatePrecachePSOHash
Definition RHIResources.h:4816
uint16 PrecacheCompileType
Definition RHIResources.h:4792
ETextureCreateFlags DepthStencilTargetFlag
Definition RHIResources.h:4765
uint8 MultiViewCount
Definition RHIResources.h:4776
uint16 Flags
Definition RHIResources.h:4794
bool bHasFragmentDensityAttachment
Definition RHIResources.h:4777
ERenderTargetLoadAction StencilTargetLoadAction
Definition RHIResources.h:4768
EPSOPrecacheCompileType GetPSOPrecacheCompileType() const
Definition RHIResources.h:4812
FRHIRasterizerState * RasterizerState
Definition RHIResources.h:4756
static bool RelevantRenderTargetFlagsEqual(const TRenderTargetFlags &A, const TRenderTargetFlags &B)
Definition RHIResources.h:4714
uint8 SubpassIndex
Definition RHIResources.h:4773
ERenderTargetLoadAction DepthTargetLoadAction
Definition RHIResources.h:4766
void SetPSOPrecacheCompileType(EPSOPrecacheCompileType PrecacheCompileTypeIN)
Definition RHIResources.h:4807
ESubpassHint SubpassHint
Definition RHIResources.h:4772
uint16 Reserved
Definition RHIResources.h:4789
TRenderTargetFormats RenderTargetFormats
Definition RHIResources.h:4762
uint16 bPSOPrecache
Definition RHIResources.h:4790
FExclusiveDepthStencil DepthStencilAccess
Definition RHIResources.h:4770
FRHIDepthStencilState * DepthStencilState
Definition RHIResources.h:4757
uint32 ComputeNumValidRenderTargets() const
Definition RHIResources.h:4735
TRenderTargetFlags RenderTargetFlags
Definition RHIResources.h:4763
bool bAllowVariableRateShading
Definition RHIResources.h:4778
bool operator==(const FGraphicsPipelineStateInitializer &rhs) const
Definition RHIResources.h:4666
EPrimitiveType PrimitiveType
Definition RHIResources.h:4760
ERenderTargetStoreAction StencilTargetStoreAction
Definition RHIResources.h:4769
uint16 NumSamples
Definition RHIResources.h:4771
FGraphicsPipelineStateInitializer()
Definition RHIResources.h:4578
EPSOPrecacheCompileType
Definition RHIResources.h:4798
FImmutableSamplerState ImmutableSamplerState
Definition RHIResources.h:4758
Definition HazardPointer.h:58
Definition RHIResources.h:1666
double GetLastRenderTime() const
Definition RHIResources.h:1670
FLastRenderTimeContainer()
Definition RHIResources.h:1668
void SetLastRenderTime(double InLastRenderTime)
Definition RHIResources.h:1672
Definition NameTypes.h:1680
Definition NameTypes.h:617
Definition RHIResources.h:966
FRHIAmplificationShader()
Definition RHIResources.h:968
Definition RHIResources.h:696
FRHIBlendState()
Definition RHIResources.h:698
virtual bool GetInitializer(class FBlendStateInitializerRHI &Init)
Definition RHIResources.h:699
Definition RHIResources.h:733
FRHIBoundShaderState()
Definition RHIResources.h:735
Definition RHIResources.h:5806
RHI_API void SetDebugName(FRHICommandListBase &RHICmdList, const TCHAR *DebugName)
int32 NumItems() const
Definition RHIResources.h:5820
Definition RHIResources.h:1581
void TakeOwnership(FRHIBuffer &Other)
Definition RHIResources.h:1625
EBufferUsageFlags GetUsage() const
Definition RHIResources.h:1607
void ReleaseOwnership()
Definition RHIResources.h:1631
void SetName(FName InName)
Definition RHIResources.h:1612
uint32 GetStride() const
Definition RHIResources.h:1601
const FRHIBufferDesc & GetDesc() const
Definition RHIResources.h:1589
uint32 GetSize() const
Definition RHIResources.h:1595
Definition RHICommandList.h:455
Definition RHICommandList.h:5284
Definition RHICommandList.h:3819
Definition RHICommandList.h:2735
Definition RHIResources.h:5123
FRHIComputePipelineStateFallback(FRHIComputeShader *InComputeShader)
Definition RHIResources.h:5125
Definition RHIResources.h:1078
virtual void MarkUsed()
Definition RHIResources.h:1089
bool IsUsed()
Definition RHIResources.h:1090
TRefCountPtr< FRHIComputeShader > ComputeShader
Definition RHIResources.h:1098
void SetValid(bool InIsValid)
Definition RHIResources.h:1087
FRHIComputeShader * GetComputeShader() const
Definition RHIResources.h:1092
FRHIComputePipelineState(FRHIComputeShader *InComputeShader)
Definition RHIResources.h:1080
bool IsValid() const
Definition RHIResources.h:1088
Definition RHIResources.h:1018
FRHIComputeShader()
Definition RHIResources.h:1020
void SetStats(struct FPipelineStateStats *Ptr)
Definition RHIResources.h:1025
Definition RHIResources.h:5541
Definition RHIResources.h:4294
virtual void OnBackBufferResize()=0
virtual ~FRHICustomPresent()
Definition RHIResources.h:4298
virtual void OnAcquireThreadOwnership()
Definition RHIResources.h:4328
FRHICustomPresent()
Definition RHIResources.h:4296
virtual void OnReleaseThreadOwnership()
Definition RHIResources.h:4330
virtual bool NeedsNativePresent()=0
virtual bool Present(IRHICommandContext &RHICmdContext, int32 &InOutSyncInterval)
Definition RHIResources.h:4322
virtual void PostPresent()
Definition RHIResources.h:4325
virtual bool NeedsAdvanceBackbuffer()
Definition RHIResources.h:4310
Definition RHIResources.h:4073
void Validate() const
Definition RHIResources.h:4147
bool operator==(const FRHIDepthRenderTargetView &Other) const
Definition RHIResources.h:4154
FRHIDepthRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InLoadAction, ERenderTargetStoreAction InStoreAction)
Definition RHIResources.h:4103
FRHIDepthRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InLoadAction, ERenderTargetStoreAction InStoreAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition RHIResources.h:4114
ERenderTargetStoreAction DepthStoreAction
Definition RHIResources.h:4078
FRHIDepthRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InDepthLoadAction, ERenderTargetStoreAction InDepthStoreAction, ERenderTargetLoadAction InStencilLoadAction, ERenderTargetStoreAction InStencilStoreAction)
Definition RHIResources.h:4125
FRHITexture * Texture
Definition RHIResources.h:4075
ERenderTargetLoadAction DepthLoadAction
Definition RHIResources.h:4077
FExclusiveDepthStencil GetDepthStencilAccess() const
Definition RHIResources.h:4089
ERenderTargetLoadAction StencilLoadAction
Definition RHIResources.h:4079
FRHIDepthRenderTargetView()
Definition RHIResources.h:4091
FRHIDepthRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InDepthLoadAction, ERenderTargetStoreAction InDepthStoreAction, ERenderTargetLoadAction InStencilLoadAction, ERenderTargetStoreAction InStencilStoreAction, FExclusiveDepthStencil InDepthStencilAccess)
Definition RHIResources.h:4136
ERenderTargetStoreAction GetStencilStoreAction() const
Definition RHIResources.h:4087
Definition RHIResources.h:686
FRHIDepthStencilState()
Definition RHIResources.h:688
virtual bool GetInitializer(struct FDepthStencilStateInitializerRHI &Init)
Definition RHIResources.h:692
Definition RHIResources.h:2387
virtual bool Poll() const =0
FThreadSafeCounter NumPendingWriteCommands
Definition RHIResources.h:2437
const FName FenceName
Definition RHIResources.h:2440
virtual void Wait(FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const =0
virtual bool Poll(FRHIGPUMask GPUMask) const
Definition RHIResources.h:2421
FName GetFName() const
Definition RHIResources.h:2435
FRHIGPUFence(FName InName)
Definition RHIResources.h:2389
Definition RHIResources.h:978
FRHIGeometryShader()
Definition RHIResources.h:980
Definition RHIResources.h:5097
FRHIGraphicsShader * GetShader(EShaderFrequency Frequency) const override
Definition RHIResources.h:5106
FRHIGraphicsPipelineStateFallBack(const FGraphicsPipelineStateInitializer &Init)
Definition RHIResources.h:5101
FRHIGraphicsPipelineStateFallBack()
Definition RHIResources.h:5099
FGraphicsPipelineStateInitializer Initializer
Definition RHIResources.h:5119
Definition RHIResources.h:1058
void SetSortKey(uint64 InSortKey)
Definition RHIResources.h:1062
uint64 GetSortKey() const
Definition RHIResources.h:1063
virtual FRHIGraphicsShader * GetShader(EShaderFrequency Frequency) const =0
FRHIGraphicsPipelineState()
Definition RHIResources.h:1060
Definition RHIResources.h:947
FRHIGraphicsShader(ERHIResourceType InResourceType, EShaderFrequency InFrequency)
Definition RHIResources.h:949
Definition RHIResources.h:960
FRHIMeshShader()
Definition RHIResources.h:962
Definition RHIResources.h:972
FRHIPixelShader()
Definition RHIResources.h:974
Definition RHIResources.h:2452
void ReleaseQuery()
Definition RHIResources.h:2498
FRHIRenderQuery * GetQuery() const
Definition RHIResources.h:2471
FRHIPooledRenderQuery()=default
bool IsValid() const
Definition RHIResources.h:2466
FRHIPooledRenderQuery(FRHIPooledRenderQuery &&)=default
FRHIPooledRenderQuery & operator=(const FRHIPooledRenderQuery &)=delete
FRHIPooledRenderQuery(const FRHIPooledRenderQuery &)=delete
~FRHIPooledRenderQuery()
Definition RHIResources.h:2508
FRHIPooledRenderQuery & operator=(FRHIPooledRenderQuery &&)=default
Definition RHIResources.h:679
FRHIRasterizerState()
Definition RHIResources.h:681
virtual bool GetInitializer(struct FRasterizerStateInitializerRHI &Init)
Definition RHIResources.h:682
Definition RHIResources.h:1006
FRHIRayCallableShader()
Definition RHIResources.h:1008
Definition RHIResources.h:994
FRHIRayGenShader()
Definition RHIResources.h:996
Definition RHIResources.h:1012
FRHIRayHitGroupShader()
Definition RHIResources.h:1014
Definition RHIResources.h:1000
FRHIRayMissShader()
Definition RHIResources.h:1002
Definition RHIResources.h:3712
FRHIRayTracingAccelerationStructure()
Definition RHIResources.h:3714
FRayTracingAccelerationStructureSize GetSizeInfo() const
Definition RHIResources.h:3716
Definition RHIResources.h:3729
FRHIRayTracingGeometry()=default
FRHIRayTracingGeometry(const FRayTracingGeometryInitializer &InInitializer)
Definition RHIResources.h:3732
uint32 GetNumSegments() const
Definition RHIResources.h:3744
const FRayTracingGeometryInitializer & GetInitializer() const
Definition RHIResources.h:3739
virtual bool IsCompressed() const
Definition RHIResources.h:3737
virtual FRayTracingAccelerationStructureAddress GetAccelerationStructureAddress(uint64 GPUIndex) const =0
Definition RHIResources.h:1115
FRHIRayTracingPipelineState(const FRayTracingPipelineStateInitializer &InInitializer)
Definition RHIResources.h:1117
Definition RHIResources.h:3755
virtual const FRayTracingSceneInitializer & GetInitializer() const =0
Definition RHIResources.h:984
FRHIRayTracingShader(EShaderFrequency InFrequency)
Definition RHIResources.h:986
Definition RHIResources.h:2480
FRHIRenderQueryPool()
Definition RHIResources.h:2482
virtual ~FRHIRenderQueryPool()
Definition RHIResources.h:2483
virtual FRHIPooledRenderQuery AllocateQuery()=0
Definition RHIResources.h:2444
FRHIRenderQuery()
Definition RHIResources.h:2446
Definition RHIResources.h:4018
FRHIRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InLoadAction)
Definition RHIResources.h:4036
FRHIRenderTargetView()=default
FRHIRenderTargetView & operator=(const FRHIRenderTargetView &)=default
FRHIRenderTargetView(FRHITexture *InTexture, ERenderTargetLoadAction InLoadAction, uint32 InMipIndex, uint32 InArraySliceIndex)
Definition RHIResources.h:4045
FRHIRenderTargetView(const FRHIRenderTargetView &)=default
FRHIRenderTargetView(FRHIRenderTargetView &&)=default
FRHIRenderTargetView & operator=(FRHIRenderTargetView &&)=default
FRHIRenderTargetView(FRHITexture *InTexture, uint32 InMipIndex, uint32 InArraySliceIndex, ERenderTargetLoadAction InLoadAction, ERenderTargetStoreAction InStoreAction)
Definition RHIResources.h:4053
bool operator==(const FRHIRenderTargetView &Other) const
Definition RHIResources.h:4061
Definition RHIResources.h:54
uint32 GetRefCount() const
Definition RHIResources.h:93
uint32 Release() const
Definition RHIResources.h:80
void DisableLifetimeExtension()
Definition RHIResources.h:105
FName GetOwnerName() const
Definition RHIResources.h:113
virtual RHI_API ~FRHIResource()
Definition RHIResources.cpp:33
bool IsValid() const
Definition RHIResources.h:100
void SetOwnerName(FName InOwnerName)
Definition RHIResources.h:122
ERHIResourceType GetType() const
Definition RHIResources.h:111
uint32 AddRef() const
Definition RHIResources.h:73
Definition RHIResources.h:671
FRHISamplerState()
Definition RHIResources.h:673
virtual bool IsImmutable() const
Definition RHIResources.h:674
virtual FRHIDescriptorHandle GetBindlessHandle() const
Definition RHIResources.h:675
Definition RHIResources.h:4167
FRHISetRenderTargetsInfo(int32 InNumColorRenderTargets, const FRHIRenderTargetView *InColorRenderTargets, const FRHIDepthRenderTargetView &InDepthStencilRenderTarget)
Definition RHIResources.h:4199
EVRSRateCombiner ShadingRateTextureCombiner
Definition RHIResources.h:4186
bool bClearStencil
Definition RHIResources.h:4183
void SetClearDepthStencil(bool bInClearDepth, bool bInClearStencil=false)
Definition RHIResources.h:4215
bool bHasResolveAttachments
Definition RHIResources.h:4176
int32 NumColorRenderTargets
Definition RHIResources.h:4171
FRHITexture * ShadingRateTexture
Definition RHIResources.h:4185
FRHISetRenderTargetsInfo()
Definition RHIResources.h:4190
bool bClearDepth
Definition RHIResources.h:4182
uint32 CalculateHash() const
Definition RHIResources.h:4229
uint8 MultiViewCount
Definition RHIResources.h:4188
FRHIDepthRenderTargetView DepthStencilRenderTarget
Definition RHIResources.h:4179
bool bClearColor
Definition RHIResources.h:4172
FRHIDepthRenderTargetView DepthStencilResolveRenderTarget
Definition RHIResources.h:4181
Definition RHIShaderBindingLayout.h:72
Definition RHIResources.h:3863
FRHIShaderBindingTable(const FRayTracingShaderBindingTableInitializer &InInitializer)
Definition RHIResources.h:3865
const FRayTracingShaderBindingTableInitializer & GetInitializer() const
Definition RHIResources.h:3873
virtual FRHISizeAndStride GetInlineBindingDataSizeAndStride() const
Definition RHIResources.h:3886
Definition RHIResources.h:3919
const uint32 ArgOffset
Definition RHIResources.h:3922
const TCHAR * GetModeName() const
Definition RHIResources.h:3958
const uint32 NumRecords
Definition RHIResources.h:3921
FRHIShaderBundle(const FShaderBundleCreateInfo &CreateInfo)
Definition RHIResources.h:3928
const uint32 ArgStride
Definition RHIResources.h:3923
FRHIShaderBundle()=delete
const ERHIShaderBundleMode Mode
Definition RHIResources.h:3924
Definition RHIResources.h:827
FShaderResourceTable ShaderResourceTable
Definition RHIResources.h:845
void SerializeShaderResourceTable(FArchive &Ar)
Definition RHIResources.h:839
const FShaderResourceTable & GetShaderResourceTable() const
Definition RHIResources.h:829
const TArray< FUniformBufferStaticSlot > & GetStaticSlots() const
Definition RHIResources.h:834
TArray< FUniformBufferStaticSlot > StaticSlots
Definition RHIResources.h:846
Definition RHIResources.h:3304
FRHIShaderResourceView(FRHIViewableResource *InResource, FRHIViewDesc const &InViewDesc)
Definition RHIResources.h:3306
Definition RHIResources.h:854
bool HasNoDerivativeOps() const
Definition RHIResources.h:921
TArray< FShaderCodeValidationStride > DebugStrideValidationData
Definition RHIResources.h:884
const FSHAHash & GetHash() const
Definition RHIResources.h:857
FString GetUniformBufferName(uint32 Index) const
Definition RHIResources.h:877
FString ShaderName
Definition RHIResources.h:864
bool HasShaderName() const
Definition RHIResources.h:868
void SetHash(const FSHAHash &InHash)
Definition RHIResources.h:856
bool HasShaderBundleUsage() const
Definition RHIResources.h:931
TArray< FName > UniformBufferNames
Definition RHIResources.h:865
TArray< FShaderCodeValidationType > DebugSRVTypeValidationData
Definition RHIResources.h:885
const TCHAR * GetShaderName() const
Definition RHIResources.h:870
EShaderFrequency GetFrequency() const
Definition RHIResources.h:911
FRHIShader(ERHIResourceType InResourceType, EShaderFrequency InFrequency)
Definition RHIResources.h:898
TArray< FShaderCodeValidationUBSize > DebugUBSizeValidationData
Definition RHIResources.h:887
void SetNoDerivativeOps(bool bValue)
Definition RHIResources.h:916
void SetShaderBundleUsage(bool bValue)
Definition RHIResources.h:926
TArray< FShaderCodeValidationType > DebugUAVTypeValidationData
Definition RHIResources.h:886
Definition RHIResources.h:3981
virtual uint64 GetGPUSizeBytes() const
Definition RHIResources.h:3994
FRHIStagingBuffer()
Definition RHIResources.h:3983
virtual void * Lock(uint32 Offset, uint32 NumBytes)=0
bool bIsLocked
Definition RHIResources.h:3997
virtual ~FRHIStagingBuffer()
Definition RHIResources.h:3988
Definition RHIResources.h:1643
static TRefCountPtr< FRHIStreamSourceSlot > Create(FRHIBuffer *InBuffer)
Definition RHIResources.h:1647
Definition RHITextureReference.h:8
Definition RHIResources.h:5785
RHI_API void SetDebugName(FRHICommandListBase &RHICmdList, const TCHAR *DebugName)
Definition RHIResources.h:2153
float GetDepthClearValue() const
Definition RHIResources.h:2278
virtual void * GetNativeResource() const
Definition RHIResources.h:2185
FRHITexture * GetTexture2D()
Definition RHIResources.h:2317
bool HasClearValue() const
Definition RHIResources.h:2260
double GetLastRenderTime() const
Definition RHIResources.h:2305
uint32 GetSizeX() const
Definition RHIResources.h:2326
FRHITexture * GetTextureCube()
Definition RHIResources.h:2323
uint32 GetSize() const
Definition RHIResources.h:2353
EPixelFormat GetFormat() const
Definition RHIResources.h:2341
uint32 GetNumMips() const
Definition RHIResources.h:2338
const FClearValueBinding GetClearBinding() const
Definition RHIResources.h:2350
FIntVector GetSizeXYZ() const
Definition RHIResources.h:2227
bool IsMultisampled() const
Definition RHIResources.h:2257
FRHITexture * GetTexture2DArray()
Definition RHIResources.h:2319
virtual void GetWriteMaskProperties(void *&OutData, uint32 &OutSize)
Definition RHIResources.h:2213
virtual FRHIDescriptorHandle GetDefaultBindlessHandle() const
Definition RHIResources.h:2177
uint32 GetSizeZ() const
Definition RHIResources.h:2335
void GetDepthStencilClearValue(float &OutDepth, uint32 &OutStencil) const
Definition RHIResources.h:2272
virtual class FRHITextureReference * GetTextureReference()
Definition RHIResources.h:2176
uint32 GetStencilClearValue() const
Definition RHIResources.h:2287
FIntVector GetMipDimensions(uint8 MipIndex) const
Definition RHIResources.h:2246
ETextureCreateFlags GetFlags() const
Definition RHIResources.h:2344
virtual const FRHITextureDesc & GetDesc() const
Definition RHIResources.h:2170
FRHITexture * GetTexture3D()
Definition RHIResources.h:2321
uint32 GetSizeY() const
Definition RHIResources.h:2329
virtual void * GetTextureBaseRHI()
Definition RHIResources.h:2207
void SetLastRenderTime(float InLastRenderTime)
Definition RHIResources.h:2300
FLinearColor GetClearColor() const
Definition RHIResources.h:2266
virtual void * GetNativeShaderResourceView() const
Definition RHIResources.h:2197
uint32 GetNumSamples() const
Definition RHIResources.h:2347
FIntPoint GetSizeXY() const
Definition RHIResources.h:2332
Definition RHIResources.h:3294
FRHIUnorderedAccessView(FRHIViewableResource *InResource, FRHIViewDesc const &InViewDesc)
Definition RHIResources.h:3296
Definition RHIResources.h:725
virtual bool GetInitializer(FVertexDeclarationElementList &Init)
Definition RHIResources.h:728
FRHIVertexDeclaration()
Definition RHIResources.h:727
virtual uint32 GetPrecachePSOHash() const
Definition RHIResources.h:729
Definition RHIResources.h:954
FRHIVertexShader()
Definition RHIResources.h:956
Definition RHIResources.h:3239
FRHITexture * GetTexture() const
Definition RHIResources.h:3265
FRHIViewDesc const ViewDesc
Definition RHIResources.h:3290
FRHIViewableResource * GetResource() const
Definition RHIResources.h:3254
bool IsBuffer() const
Definition RHIResources.h:3271
virtual FRHIDescriptorHandle GetBindlessHandle() const
Definition RHIResources.h:3249
FRHIViewDesc const & GetDesc() const
Definition RHIResources.h:3281
bool IsTexture() const
Definition RHIResources.h:3272
FRHIBuffer * GetBuffer() const
Definition RHIResources.h:3259
FRHIView(ERHIResourceType InResourceType, FRHIViewableResource *InResource, FRHIViewDesc const &InViewDesc)
Definition RHIResources.h:3241
Definition RHIResources.h:1265
ERHIAccess GetTrackedAccess_Unsafe() const
Definition RHIResources.h:1267
void ReleaseOwnership()
Definition RHIResources.h:1305
FName GetName() const
Definition RHIResources.h:1272
FRHIViewableResource(ERHIResourceType InResourceType, ERHIAccess InAccess, const TCHAR *InName, FName InOwnerName)
Definition RHIResources.h:1282
virtual void SetTrackedAccessFromContext(FRHITrackedAccess InTrackedAccess)
Definition RHIResources.h:1295
void TakeOwnership(FRHIViewableResource &Other)
Definition RHIResources.h:1300
FName Name
Definition RHIResources.h:1310
Definition RHIResources.h:2515
virtual void * GetNativeWindow(void **AddParam=nullptr) const
Definition RHIResources.h:2548
virtual FRHITexture * GetOptionalSDRBackBuffer(FRHITexture *BackBuffer) const
Definition RHIResources.h:2560
virtual void IssueFrameEvent()
Definition RHIResources.h:2569
virtual void WaitForFrameEventCompletion()
Definition RHIResources.h:2567
virtual void * GetNativeBackBufferTexture() const
Definition RHIResources.h:2532
FRHIViewport()
Definition RHIResources.h:2517
virtual void * GetNativeSwapChain() const
Definition RHIResources.h:2525
virtual void SetCustomPresent(class FRHICustomPresent *)
Definition RHIResources.h:2553
virtual class FRHICustomPresent * GetCustomPresent() const
Definition RHIResources.h:2558
virtual void * GetNativeBackBufferRT() const
Definition RHIResources.h:2539
virtual void Tick(float DeltaTime)
Definition RHIResources.h:2565
Definition RHIResources.h:1048
FRHIWorkGraphComputeNodeShader()
Definition RHIResources.h:1050
Definition RHIResources.h:1106
FRHIWorkGraphPipelineState()
Definition RHIResources.h:1108
Definition RHIResources.h:1042
FRHIWorkGraphRootShader()
Definition RHIResources.h:1044
Definition RHIResources.h:1033
FRHIWorkGraphShader(EShaderFrequency InFrequency)
Definition RHIResources.h:1035
Definition RHIResources.h:5023
void SetHitGroupTable(const TArrayView< FRHIRayTracingShader * > &InHitGroups, uint64 Hash=0)
Definition RHIResources.h:5071
void SetMissShaderTable(const TArrayView< FRHIRayTracingShader * > &InMissShaders, uint64 Hash=0)
Definition RHIResources.h:5063
const TArrayView< FRHIRayTracingShader * > & GetMissTable() const
Definition RHIResources.h:5049
const TArrayView< FRHIRayTracingShader * > & GetHitGroupTable() const
Definition RHIResources.h:5050
FRayTracingPipelineStateRHIRef BasePipeline
Definition RHIResources.h:5042
const TArrayView< FRHIRayTracingShader * > & GetRayGenTable() const
Definition RHIResources.h:5048
FRayTracingPipelineStateInitializer()=default
const TArrayView< FRHIRayTracingShader * > & GetCallableTable() const
Definition RHIResources.h:5051
void SetRayGenShaderTable(const TArrayView< FRHIRayTracingShader * > &InRayGenShaders, uint64 Hash=0)
Definition RHIResources.h:5054
void SetCallableTable(const TArrayView< FRHIRayTracingShader * > &InCallableShaders, uint64 Hash=0)
Definition RHIResources.h:5079
Definition RHIResources.h:4982
uint64 GetRayGenHash() const
Definition RHIResources.h:5010
bool operator==(const FRayTracingPipelineStateSignature &rhs) const
Definition RHIResources.h:4989
friend uint32 GetTypeHash(const FRayTracingPipelineStateSignature &Initializer)
Definition RHIResources.h:4999
uint64 GetRayMissHash() const
Definition RHIResources.h:5011
uint64 GetCallableHash() const
Definition RHIResources.h:5012
uint64 GetHitGroupHash() const
Definition RHIResources.h:5009
Definition PipelineStateCache.cpp:1285
Definition ResourceArray.h:77
Definition ResourceArray.h:102
Definition SecureHash.h:226
Definition ThreadSafeCounter.h:14
Definition SceneRendering.h:1132
Definition RHIResources.h:4915
TArrayView< FRHIWorkGraphShader * > const & GetShaderTable() const
Definition RHIResources.h:4968
void SetNameTable(const TArrayView< FNameMap > InNameMaps, uint64 Hash=0)
Definition RHIResources.h:4944
void SetGraphicsPSOTable(const TArrayView< FGraphicsPipelineStateInitializer const * > &InGraphicsPSOs, uint64 Hash=0)
Definition RHIResources.h:4959
void SetProgramName(TCHAR const *InProgramName)
Definition RHIResources.h:4919
void SetShaderTable(const TArrayView< FRHIWorkGraphShader * > &InShaders, int32 InRootShaderIndex=-1, uint64 Hash=0)
Definition RHIResources.h:4950
FString const & GetProgramName() const
Definition RHIResources.h:4965
int32 GetRootShaderIndex() const
Definition RHIResources.h:4967
FWorkGraphPipelineStateInitializer()=default
TArray< FNameMap > const & GetNameTable() const
Definition RHIResources.h:4966
TArrayView< FGraphicsPipelineStateInitializer const * > const & GetGraphicsPSOTable() const
Definition RHIResources.h:4969
Definition RHIResources.h:4882
bool operator==(const FWorkGraphPipelineStateSignature &Rhs) const
Definition RHIResources.h:4886
uint64 GetNameTableHash() const
Definition RHIResources.h:4903
uint64 GetGraphicsPSOTableHash() const
Definition RHIResources.h:4905
friend uint32 GetTypeHash(const FWorkGraphPipelineStateSignature &Initializer)
Definition RHIResources.h:4894
uint64 GetNameHash() const
Definition RHIResources.h:4902
FWorkGraphPipelineStateSignature()=default
uint64 GetShaderTableHash() const
Definition RHIResources.h:4904
Definition RHIContext.h:693
Definition RHIContext.h:257
Definition RHIContext.h:573
Definition RHICore.Build.cs:7
Definition ArrayView.h:139
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition AndroidPlatformMisc.h:14
Definition RHIPipeline.h:55
Definition RefCounting.h:454
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
UE_FORCEINLINE_HINT bool IsValid() const
Definition RefCounting.h:594
Definition ContainerAllocationPolicies.h:894
Definition StaticArray.h:26
uint8 ElementType
Definition StaticArray.h:31
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
void InitStaticUniformBufferSlots(FRHIShaderData *ShaderData)
Definition RHICoreShader.h:44
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition RHIResources.h:248
uint32 Stencil
Definition RHIResources.h:250
float Depth
Definition RHIResources.h:249
Definition RHIResources.h:246
static RHI_API const FClearValueBinding None
Definition RHIResources.h:358
static RHI_API const FClearValueBinding Black
Definition RHIResources.h:359
void GetDepthStencil(float &OutDepth, uint32 &OutStencil) const
Definition RHIResources.h:298
static RHI_API const FClearValueBinding Transparent
Definition RHIResources.h:362
bool operator==(const FClearValueBinding &Other) const
Definition RHIResources.h:305
static RHI_API const FClearValueBinding DepthZero
Definition RHIResources.h:364
static RHI_API const FClearValueBinding BlackMaxAlpha
Definition RHIResources.h:360
FClearValueBinding()
Definition RHIResources.h:253
EClearBinding ColorBinding
Definition RHIResources.h:349
FLinearColor GetClearColor() const
Definition RHIResources.h:292
union FClearValueBinding::ClearValueType Value
static RHI_API const FClearValueBinding DepthOne
Definition RHIResources.h:363
static RHI_API const FClearValueBinding White
Definition RHIResources.h:361
static RHI_API const FClearValueBinding DepthFar
Definition RHIResources.h:366
FClearValueBinding(EClearBinding NoBinding)
Definition RHIResources.h:262
static RHI_API const FClearValueBinding DefaultNormal8Bit
Definition RHIResources.h:368
friend uint32 GetTypeHash(FClearValueBinding const &Binding)
Definition RHIResources.h:329
static RHI_API const FClearValueBinding Green
Definition RHIResources.h:367
static RHI_API const FClearValueBinding DepthNear
Definition RHIResources.h:365
FClearValueBinding(float DepthClearValue, uint32 StencilClearValue=0)
Definition RHIResources.h:285
FClearValueBinding(const FLinearColor &InClearColor)
Definition RHIResources.h:276
static UE_FORCEINLINE_HINT uint32 MemCrc32(const void *Data, int32 Length, uint32 CRC=0)
Definition Crc.h:31
Definition RHIResources.h:4547
TStaticArray< ETextureCreateFlags, MaxSimultaneousRenderTargets > RenderTargetFlags
Definition RHIResources.h:4557
FExclusiveDepthStencil DepthStencilAccess
Definition RHIResources.h:4564
FGraphicsPipelineRenderTargetsInfo()
Definition RHIResources.h:4548
uint16 NumSamples
Definition RHIResources.h:4565
TStaticArray< uint8, MaxSimultaneousRenderTargets > RenderTargetFormats
Definition RHIResources.h:4556
Definition RHIImmutableSamplerState.h:17
static constexpr UE_FORCEINLINE_HINT T Clamp(const T X, const T MinValue, const T MaxValue)
Definition UnrealMathUtility.h:592
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
static UE_FORCEINLINE_HINT int32 Memcmp(const void *Buf1, const void *Buf2, SIZE_T Count)
Definition UnrealMemory.h:114
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition PipelineFileCache.h:80
Definition RHIResources.h:1417
static FRHIBufferCreateDesc Create(const TCHAR *InDebugName, EBufferUsageFlags InUsage)
Definition RHIResources.h:1418
FRHIBufferCreateDesc & SetGPUMask(FRHIGPUMask InGPUMask)
Definition RHIResources.h:1525
FRHIBufferCreateDesc & SetInitAction(ERHIBufferInitAction InInitAction)
Definition RHIResources.h:1530
static FRHIBufferCreateDesc CreateUniform(const TCHAR *InDebugName)
Definition RHIResources.h:1496
FRHIBufferCreateDesc & SetStride(uint32 InStride)
Definition RHIResources.h:1522
static FRHIBufferCreateDesc CreateIndex(const TCHAR *InDebugName, uint32 InCount)
Definition RHIResources.h:1465
static FRHIBufferCreateDesc CreateStructured(const TCHAR *InDebugName)
Definition RHIResources.h:1470
FRHIBufferCreateDesc & SetInitActionInitializer()
Definition RHIResources.h:1542
static FRHIBufferCreateDesc CreateIndex(const TCHAR *InDebugName)
Definition RHIResources.h:1454
FRHIBufferCreateDesc & SetInitActionResourceArray(FResourceArrayUploadInterface *InInitialData)
Definition RHIResources.h:1546
static FRHIBufferCreateDesc CreateStructured(const TCHAR *InDebugName, uint32 InSize, uint32 InStride)
Definition RHIResources.h:1475
FRHIBufferCreateDesc(const TCHAR *InDebugName, EBufferUsageFlags InUsage)
Definition RHIResources.h:1503
FRHIBufferCreateDesc & SetInitActionZeroData()
Definition RHIResources.h:1538
FRHIBufferCreateDesc & SetInitialState(ERHIAccess InInitialState)
Definition RHIResources.h:1528
FName GetTraceClassName() const
Definition RHIResources.h:1552
FRHIBufferCreateDesc & SetDebugName(const TCHAR *InDebugName)
Definition RHIResources.h:1527
static FRHIBufferCreateDesc CreateIndex(const TCHAR *InDebugName, uint32 InSize, uint32 InStride)
Definition RHIResources.h:1459
FRHIBufferCreateDesc(const TCHAR *InDebugName, uint32 InSize, uint32 InStride, EBufferUsageFlags InUsage)
Definition RHIResources.h:1509
FRHIBufferCreateDesc & SetInitActionNone()
Definition RHIResources.h:1534
static FRHIBufferCreateDesc CreateStructured(const TCHAR *InDebugName, uint32 InCount)
Definition RHIResources.h:1481
static FRHIBufferCreateDesc CreateByteAddress(const TCHAR *InDebugName)
Definition RHIResources.h:1486
static FRHIBufferCreateDesc Create(const TCHAR *InDebugName, uint32 InSize, uint32 InStride, EBufferUsageFlags InUsage)
Definition RHIResources.h:1423
static FRHIBufferCreateDesc CreateByteAddress(const TCHAR *InDebugName, uint32 InSize, uint32 InStride)
Definition RHIResources.h:1491
FRHIBufferCreateDesc()=default
static FRHIBufferCreateDesc Create(const TCHAR *InDebugName, const FRHIBufferDesc &InDesc)
Definition RHIResources.h:1428
static FRHIBufferCreateDesc CreateVertex(const TCHAR *InDebugName)
Definition RHIResources.h:1438
static FRHIBufferCreateDesc CreateNull(const TCHAR *InDebugName)
Definition RHIResources.h:1433
static FRHIBufferCreateDesc CreateVertex(const TCHAR *InDebugName, uint32 InSize)
Definition RHIResources.h:1443
FRHIBufferCreateDesc & SetSize(uint32 InSize)
Definition RHIResources.h:1521
FRHIBufferCreateDesc & SetOwnerName(FName InOwnerName)
Definition RHIResources.h:1532
FRHIBufferCreateDesc & SetUsage(EBufferUsageFlags InUsage)
Definition RHIResources.h:1523
FRHIBufferCreateDesc & DetermineInitialState()
Definition RHIResources.h:1529
FRHIBufferCreateDesc & AddUsage(EBufferUsageFlags InUsage)
Definition RHIResources.h:1524
FRHIBufferCreateDesc(const TCHAR *InDebugName, const FRHIBufferDesc &InOtherDesc)
Definition RHIResources.h:1515
static FRHIBufferCreateDesc CreateVertex(const TCHAR *InDebugName, uint32 InCount)
Definition RHIResources.h:1449
FRHIBufferCreateDesc & SetClassName(FName InClassName)
Definition RHIResources.h:1531
Definition RHIResources.h:1321
friend uint32 GetTypeHash(const FRHIBufferDesc &Desc)
Definition RHIResources.h:1366
static FRHIBufferDesc Null()
Definition RHIResources.h:1349
uint32 Size
Definition RHIResources.h:1323
FRHIGPUMask GPUMask
Definition RHIResources.h:1332
FRHIBufferDesc(uint32 InSize, uint32 InStride, EBufferUsageFlags InUsage, FRHIGPUMask InGPUMask)
Definition RHIResources.h:1341
EBufferUsageFlags Usage
Definition RHIResources.h:1329
FRHIBufferDesc & operator=(const FRHIBufferDesc &Other)
Definition RHIResources.h:1388
uint32 Stride
Definition RHIResources.h:1326
FRHIBufferDesc(uint32 InSize, uint32 InStride, EBufferUsageFlags InUsage)
Definition RHIResources.h:1335
bool IsNull() const
Definition RHIResources.h:1354
bool operator==(const FRHIBufferDesc &Other) const
Definition RHIResources.h:1375
bool operator!=(const FRHIBufferDesc &Other) const
Definition RHIResources.h:1383
Definition RHIResources.h:5700
FRHIBufferSRVCreateInfo(FRHIRayTracingScene *InRayTracingScene, uint32 InStartOffsetBytes)
Definition RHIResources.h:5712
EPixelFormat Format
Definition RHIResources.h:5741
friend uint32 GetTypeHash(const FRHIBufferSRVCreateInfo &Desc)
Definition RHIResources.h:5730
bool operator==(const FRHIBufferSRVCreateInfo &Other) const
Definition RHIResources.h:5717
FRHIBufferSRVCreateInfo(uint32 InStartOffsetBytes, uint32 InNumElements)
Definition RHIResources.h:5707
FRHIBufferSRVCreateInfo()=default
FRHIBufferSRVCreateInfo(EPixelFormat InFormat)
Definition RHIResources.h:5703
uint32 NumElements
Definition RHIResources.h:5747
uint32 StartOffsetBytes
Definition RHIResources.h:5744
bool operator!=(const FRHIBufferSRVCreateInfo &Other) const
Definition RHIResources.h:5725
FRHIRayTracingScene * RayTracingScene
Definition RHIResources.h:5750
Definition RHIResources.h:5754
friend uint32 GetTypeHash(const FRHIBufferUAVCreateInfo &Info)
Definition RHIResources.h:5771
FRHIBufferUAVCreateInfo()=default
bool operator!=(const FRHIBufferUAVCreateInfo &Other) const
Definition RHIResources.h:5766
FRHIBufferUAVCreateInfo(EPixelFormat InFormat)
Definition RHIResources.h:5757
bool operator==(const FRHIBufferUAVCreateInfo &Other) const
Definition RHIResources.h:5761
Definition RHIDefinitions.h:1401
SGPU_CONSTEXPR uint32 GetNative() const
Definition MultiGPU.h:160
static SGPU_CONSTEXPR FRHIGPUMask All()
Definition MultiGPU.h:191
static GPUMASK_CONSTEXPR FRHIGPUMask GPU0()
Definition MultiGPU.h:186
Definition RHIResources.h:5548
FRHIParallelRenderPassInfo(FRHIRenderPassInfo &&Info, const TCHAR *InPassName)
Definition RHIResources.h:5556
const TCHAR * PassName
Definition RHIResources.h:5551
Definition RHIResources.h:5250
FRHITexture * RenderTarget
Definition RHIResources.h:5251
Definition RHIResources.h:5260
FRHITexture * ResolveTarget
Definition RHIResources.h:5262
EDepthStencilTargetActions Action
Definition RHIResources.h:5263
FRHITexture * DepthStencilTarget
Definition RHIResources.h:5261
FExclusiveDepthStencil ExclusiveDepthStencil
Definition RHIResources.h:5264
Definition RHIResources.h:5248
FGraphicsPipelineRenderTargetsInfo ExtractRenderTargetsInfo() const
Definition RHIResources.h:5481
FRHIRenderPassInfo(FRHITexture *ColorRT, ERenderTargetActions ColorAction, FRHITexture *ResolveColorRT, FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FRHITexture *ResolveDepthRT, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5423
FRHIRenderPassInfo(int32 NumColorRTs, FRHITexture *ColorRTs[], ERenderTargetActions ColorAction, FRHITexture *ResolveRTs[], FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FRHITexture *ResolveDepthRT, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5361
FRHIRenderPassInfo()=default
FRHIRenderPassInfo(FRHITexture *ColorRT, ERenderTargetActions ColorAction, FRHITexture *ResolveRT=nullptr, uint8 InMipIndex=0, int32 InArraySlice=-1)
Definition RHIResources.h:5293
FRHIRenderPassInfo(FRHITexture *DepthRT, uint32 InNumOcclusionQueries, EDepthStencilTargetActions DepthActions, FRHITexture *ResolveDepthRT=nullptr, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5394
int32 GetNumColorRenderTargets() const
Definition RHIResources.h:5466
FRHIRenderPassInfo & operator=(const FRHIRenderPassInfo &)=default
FRHIRenderPassInfo(FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FRHITexture *ResolveDepthRT=nullptr, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5383
FRHIRenderPassInfo(int32 NumColorRTs, FRHITexture *ColorRTs[], ERenderTargetActions ColorAction)
Definition RHIResources.h:5305
FRHIRenderPassInfo(FRHITexture *ColorRT, ERenderTargetActions ColorAction, FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5406
FRHIRenderPassInfo(int32 NumColorRTs, FRHITexture *ColorRTs[], ERenderTargetActions ColorAction, FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5341
TStaticArray< FColorEntry, MaxSimultaneousRenderTargets > ColorRenderTargets
Definition RHIResources.h:5257
FRHIRenderPassInfo(const FRHIRenderPassInfo &)=default
FDepthStencilEntry DepthStencilRenderTarget
Definition RHIResources.h:5266
FResolveRect ResolveRect
Definition RHIResources.h:5269
FRHIRenderPassInfo(int32 NumColorRTs, FRHITexture *ColorRTs[], ERenderTargetActions ColorAction, FRHITexture *ResolveTargets[])
Definition RHIResources.h:5322
FRHIRenderPassInfo(FRHITexture *ColorRT, ERenderTargetActions ColorAction, FRHITexture *ResolveColorRT, FRHITexture *DepthRT, EDepthStencilTargetActions DepthActions, FRHITexture *ResolveDepthRT, FRHITexture *InShadingRateTexture, EVRSRateCombiner InShadingRateTextureCombiner, FExclusiveDepthStencil InEDS=FExclusiveDepthStencil::DepthWrite_StencilWrite)
Definition RHIResources.h:5443
Definition RHIResources.h:47
uint64 Size
Definition RHIResources.h:48
uint32 Stride
Definition RHIResources.h:49
static const uint16 kStencilPlaneSlice
Definition RHITransition.h:23
static const uint16 kAllSubresources
Definition RHITransition.h:24
static const uint16 kDepthPlaneSlice
Definition RHITransition.h:22
Definition RHIResources.h:1938
static FRHITextureCreateDesc Create2D(const TCHAR *DebugName, FIntPoint Size, EPixelFormat Format)
Definition RHIResources.h:1969
static FRHITextureCreateDesc Create2DArray(const TCHAR *DebugName, FIntPoint Size, uint16 ArraySize, EPixelFormat Format)
Definition RHIResources.h:1983
FRHITextureCreateDesc & SetDepth(uint16 InDepth)
Definition RHIResources.h:2070
FRHITextureCreateDesc & DetermineInititialState()
Definition RHIResources.h:2091
void CheckValidity() const
Definition RHIResources.h:2056
FRHITextureCreateDesc & SetGPUMask(FRHIGPUMask InGPUMask)
Definition RHIResources.h:2080
FRHITextureCreateDesc & SetExtent(int32 InExtentX, int32 InExtentY)
Definition RHIResources.h:2068
static FRHITextureCreateDesc Create(const TCHAR *InDebugName, ETextureDimension InDimension)
Definition RHIResources.h:1939
FRHITextureCreateDesc & SetFlags(ETextureCreateFlags InFlags)
Definition RHIResources.h:2063
FRHITextureCreateDesc(const TCHAR *InDebugName, ETextureDimension InDimension)
Definition RHIResources.h:2033
FRHITextureCreateDesc & SetInitActionNone()
Definition RHIResources.h:2100
static FRHITextureCreateDesc Create2DArray(const TCHAR *DebugName, int32 SizeX, int32 SizeY, int32 ArraySize, EPixelFormat Format)
Definition RHIResources.h:1991
FName GetTraceClassName() const
Definition RHIResources.h:2124
FRHITextureCreateDesc & SetUAVFormat(EPixelFormat InUAVFormat)
Definition RHIResources.h:2076
FRHITextureCreateDesc & SetInitActionBulkData(FResourceBulkDataInterface *InBulkData)
Definition RHIResources.h:2108
FRHITextureCreateDesc & SetInitActionInitializer()
Definition RHIResources.h:2104
FRHITextureCreateDesc & SetExtData(uint32 InExtData)
Definition RHIResources.h:2066
FRHITextureCreateDesc & AddAliasbleFormat(EPixelFormat InFormat)
Definition RHIResources.h:2083
FRHITextureCreateDesc & AddFlags(ETextureCreateFlags InFlags)
Definition RHIResources.h:2064
FRHITextureCreateDesc(FRHITextureDesc const &InDesc, ERHIAccess InInitialState, TCHAR const *InDebugName, FResourceBulkDataInterface *InBulkData=nullptr)
Definition RHIResources.h:2040
FRHITextureCreateDesc & SetExtent(const FIntPoint &InExtent)
Definition RHIResources.h:2067
static FRHITextureCreateDesc CreateCubeArray(const TCHAR *DebugName, uint32 Size, uint16 ArraySize, EPixelFormat Format)
Definition RHIResources.h:2022
static FRHITextureCreateDesc Create3D(const TCHAR *DebugName, int32 SizeX, int32 SizeY, int32 SizeZ, EPixelFormat Format)
Definition RHIResources.h:2007
FRHITextureCreateDesc & SetFormat(EPixelFormat InFormat)
Definition RHIResources.h:2075
FRHITextureCreateDesc & SetArraySize(uint16 InArraySize)
Definition RHIResources.h:2071
static FRHITextureCreateDesc Create3D(const TCHAR *DebugName, FIntVector Size, EPixelFormat Format)
Definition RHIResources.h:1999
FRHITextureCreateDesc & SetExtent(uint32 InExtent)
Definition RHIResources.h:2069
FRHITextureCreateDesc()=default
FRHITextureCreateDesc & SetClassName(FName InClassName)
Definition RHIResources.h:2081
FRHITextureCreateDesc & SetDimension(ETextureDimension InDimension)
Definition RHIResources.h:2074
FRHITextureCreateDesc & SetNumSamples(uint8 InNumSamples)
Definition RHIResources.h:2073
FRHITextureCreateDesc & SetInitialState(ERHIAccess InInitialState)
Definition RHIResources.h:2078
FRHITextureCreateDesc & SetClearValue(FClearValueBinding InClearValue)
Definition RHIResources.h:2065
static FRHITextureCreateDesc Create2D(const TCHAR *InDebugName)
Definition RHIResources.h:1944
FRHITextureCreateDesc & SetDebugName(const TCHAR *InDebugName)
Definition RHIResources.h:2077
static FRHITextureCreateDesc Create3D(const TCHAR *InDebugName)
Definition RHIResources.h:1954
static FRHITextureCreateDesc Create2DArray(const TCHAR *InDebugName)
Definition RHIResources.h:1949
FRHITextureCreateDesc & SetOwnerName(FName InOwnerName)
Definition RHIResources.h:2082
FRHITextureCreateDesc & SetFastVRAMPercentage(float InFastVRAMPercentage)
Definition RHIResources.h:2085
static FRHITextureCreateDesc CreateCube(const TCHAR *DebugName, uint32 Size, EPixelFormat Format)
Definition RHIResources.h:2015
static FRHITextureCreateDesc CreateCubeArray(const TCHAR *InDebugName)
Definition RHIResources.h:1964
FRHITextureCreateDesc & SetInitAction(ERHITextureInitAction InInitAction)
Definition RHIResources.h:2079
static FRHITextureCreateDesc CreateCube(const TCHAR *InDebugName)
Definition RHIResources.h:1959
FRHITextureCreateDesc & SetNumMips(uint8 InNumMips)
Definition RHIResources.h:2072
static FRHITextureCreateDesc Create2D(const TCHAR *DebugName, int32 SizeX, int32 SizeY, EPixelFormat Format)
Definition RHIResources.h:1976
Definition RHIResources.h:1689
ETextureDimension Dimension
Definition RHIResources.h:1871
uint16 Depth
Definition RHIResources.h:1859
uint8 FastVRAMPercentage
Definition RHIResources.h:1880
EPixelFormat UAVFormat
Definition RHIResources.h:1877
EPixelFormat Format
Definition RHIResources.h:1874
bool IsTextureCube() const
Definition RHIResources.h:1800
static bool CheckValidity(const FRHITextureDesc &Desc, const TCHAR *Name)
Definition RHIResources.h:1886
FRHIGPUMask GPUMask
Definition RHIResources.h:1850
FIntVector GetSize() const
Definition RHIResources.h:1820
ETextureCreateFlags Flags
Definition RHIResources.h:1844
bool IsValid() const
Definition RHIResources.h:1838
void Reset()
Definition RHIResources.h:1825
uint32 ExtData
Definition RHIResources.h:1853
uint16 ArraySize
Definition RHIResources.h:1862
uint64 CalcMemorySizeEstimate(uint32 FirstMipIndex=0) const
Definition RHIResources.h:1903
TArray< EPixelFormat, TInlineAllocator< 1 > > AliasableFormats
Definition RHIResources.h:1883
bool IsMultisample() const
Definition RHIResources.h:1815
bool IsTextureArray() const
Definition RHIResources.h:1805
FRHITextureDesc()=default
bool IsTexture3D() const
Definition RHIResources.h:1795
bool IsTexture2D() const
Definition RHIResources.h:1790
uint8 NumMips
Definition RHIResources.h:1865
uint16 GetSubresourceCount() const
Definition RHIResources.h:1908
friend uint32 GetTypeHash(const FRHITextureDesc &Desc)
Definition RHIResources.h:1725
FClearValueBinding ClearValue
Definition RHIResources.h:1847
bool IsMipChain() const
Definition RHIResources.h:1810
FRHITextureDesc(ETextureDimension InDimension, ETextureCreateFlags InFlags, EPixelFormat InFormat, FClearValueBinding InClearValue, FIntPoint InExtent, uint16 InDepth, uint16 InArraySize, uint8 InNumMips, uint8 InNumSamples, uint32 InExtData)
Definition RHIResources.h:1701
FRHITextureDesc(ETextureDimension InDimension)
Definition RHIResources.h:1697
uint8 NumSamples
Definition RHIResources.h:1868
FRHITextureDesc & operator=(const FRHITextureDesc &Other)
Definition RHIResources.h:1770
FIntPoint Extent
Definition RHIResources.h:1856
FRHITextureDesc(const FRHITextureDesc &Other)
Definition RHIResources.h:1692
Definition RHIResources.h:5570
static bool CheckValidity(const FRHITextureDesc &TextureDesc, const FRHITextureSRVCreateInfo &TextureSRVDesc, const TCHAR *TextureName)
Definition RHIResources.h:5641
bool operator!=(const FRHITextureSRVCreateInfo &Other) const
Definition RHIResources.h:5626
FRHITextureSRVCreateInfo(uint8 InMipLevel=0u, uint8 InNumMipLevels=1u, EPixelFormat InFormat=PF_Unknown)
Definition RHIResources.h:5571
bool operator==(const FRHITextureSRVCreateInfo &Other) const
Definition RHIResources.h:5613
friend uint32 GetTypeHash(const FRHITextureSRVCreateInfo &Info)
Definition RHIResources.h:5631
ERHITextureSRVOverrideSRGBType SRGBOverride
Definition RHIResources.h:5599
TOptional< ETextureDimension > DimensionOverride
Definition RHIResources.h:5611
uint16 NumArraySlices
Definition RHIResources.h:5605
EPixelFormat Format
Definition RHIResources.h:5590
uint16 FirstArraySlice
Definition RHIResources.h:5602
uint8 NumMipLevels
Definition RHIResources.h:5596
uint8 MipLevel
Definition RHIResources.h:5593
FRHITextureSRVCreateInfo(uint8 InMipLevel, uint8 InNumMipLevels, uint16 InFirstArraySlice, uint16 InNumArraySlices, EPixelFormat InFormat=PF_Unknown)
Definition RHIResources.h:5580
static RHI_API bool Validate(const FRHITextureDesc &TextureDesc, const FRHITextureSRVCreateInfo &TextureSRVDesc, const TCHAR *TextureName, bool bFatal)
Definition RHI.cpp:1755
Definition RHIResources.h:5651
FRHITextureUAVCreateInfo(uint8 InMipLevel, EPixelFormat InFormat=PF_Unknown, uint16 InFirstArraySlice=0, uint16 InNumArraySlices=0)
Definition RHIResources.h:5655
FRHITextureUAVCreateInfo()=default
bool operator==(const FRHITextureUAVCreateInfo &Other) const
Definition RHIResources.h:5666
FRHITextureUAVCreateInfo(ERHITextureMetaDataAccess InMetaData)
Definition RHIResources.h:5662
bool operator!=(const FRHITextureUAVCreateInfo &Other) const
Definition RHIResources.h:5673
TOptional< ETextureDimension > DimensionOverride
Definition RHIResources.h:5693
friend uint32 GetTypeHash(const FRHITextureUAVCreateInfo &Info)
Definition RHIResources.h:5678
Definition RHITransition.h:433
Definition RHIResources.h:2812
FInitializer & SetOffsetInBytes(uint32 InOffsetBytes)
Definition RHIResources.h:2854
FInitializer & SetStride(uint32 InStride)
Definition RHIResources.h:2860
FInitializer & SetType(EBufferType Type)
Definition RHIResources.h:2824
FInitializer & SetNumElements(uint32 InNumElements)
Definition RHIResources.h:2867
FInitializer & SetFormat(EPixelFormat InFormat)
Definition RHIResources.h:2848
FInitializer()
Definition RHIResources.h:2819
friend FRHIViewDesc
Definition RHIResources.h:2813
friend FRHICommandListBase
Definition RHIResources.h:2814
FInitializer & SetRayTracingScene(FRHIRayTracingScene *InRayTracingScene)
Definition RHIResources.h:2874
FInitializer & SetTypeFromBuffer(FRHIBuffer *TargetBuffer)
Definition RHIResources.h:2835
Definition RHIResources.h:3174
Definition RHIResources.h:2725
RHI_API FViewInfo GetViewInfo(FRHIBuffer *TargetBuffer) const
Definition RHIResources.cpp:273
Definition RHIResources.h:2883
FInitializer & SetAtomicCounter(bool InAtomicCounter)
Definition RHIResources.h:2941
friend FRHIViewDesc
Definition RHIResources.h:2884
FInitializer & SetNumElements(uint32 InNumElements)
Definition RHIResources.h:2935
FInitializer & SetAppendBuffer(bool InAppendBuffer)
Definition RHIResources.h:2947
FInitializer & SetTypeFromBuffer(FRHIBuffer *TargetBuffer)
Definition RHIResources.h:2904
FInitializer & SetFormat(EPixelFormat InFormat)
Definition RHIResources.h:2917
FInitializer & SetStride(uint32 InStride)
Definition RHIResources.h:2929
FInitializer & SetOffsetInBytes(uint32 InOffsetBytes)
Definition RHIResources.h:2923
FInitializer()
Definition RHIResources.h:2888
friend FRHICommandListBase
Definition RHIResources.h:2885
FInitializer & SetType(EBufferType Type)
Definition RHIResources.h:2893
Definition RHIResources.h:3178
bool bAppendBuffer
Definition RHIResources.h:3180
bool bAtomicCounter
Definition RHIResources.h:3179
Definition RHIResources.h:2732
RHI_API FViewInfo GetViewInfo(FRHIBuffer *TargetBuffer) const
Definition RHIResources.cpp:279
Definition RHIResources.h:3149
EPixelFormat Format
Definition RHIResources.h:3166
EBufferType BufferType
Definition RHIResources.h:3163
uint32 NumElements
Definition RHIResources.h:3157
bool bNullView
Definition RHIResources.h:3169
uint32 SizeInBytes
Definition RHIResources.h:3160
uint32 StrideInBytes
Definition RHIResources.h:3154
uint32 OffsetInBytes
Definition RHIResources.h:3151
Definition RHIResources.h:2689
EBufferType BufferType
Definition RHIResources.h:2690
FRHIRayTracingScene * RayTracingScene
Definition RHIResources.h:2702
uint8 bAppendBuffer
Definition RHIResources.h:2692
uint8 bAtomicCounter
Definition RHIResources.h:2691
uint32 Stride
Definition RHIResources.h:2700
uint32 OffsetInBytes
Definition RHIResources.h:2694
FViewInfo GetViewInfo(FRHIBuffer *TargetBuffer) const
Definition RHIResources.cpp:176
uint32 NumElements
Definition RHIResources.h:2699
Definition RHIResources.h:2682
EPixelFormat Format
Definition RHIResources.h:2684
EViewType ViewType
Definition RHIResources.h:2683
Definition RHIResources.h:2955
FInitializer()
Definition RHIResources.h:2960
FInitializer & SetPlane(ERHITexturePlane InPlane)
Definition RHIResources.h:3004
FInitializer & SetFormat(EPixelFormat InFormat)
Definition RHIResources.h:2998
FInitializer & SetMipRange(uint8 InFirstMip, uint8 InNumMips)
Definition RHIResources.h:3010
FInitializer & SetArrayRange(uint16 InFirstElement, uint16 InNumElements)
Definition RHIResources.h:3027
FInitializer & SetDimensionFromTexture(FRHITexture *TargetTexture)
Definition RHIResources.h:2991
FInitializer & SetDisableSRGB(bool InDisableSRGB)
Definition RHIResources.h:3034
friend FRHICommandListBase
Definition RHIResources.h:2957
friend FRHIViewDesc
Definition RHIResources.h:2956
FInitializer & SetDimension(ETextureDimension InDimension)
Definition RHIResources.h:2973
Definition RHIResources.h:3222
uint8 bSRGB
Definition RHIResources.h:3227
FRHIRange8 MipRange
Definition RHIResources.h:3224
Definition RHIResources.h:2739
RHI_API FViewInfo GetViewInfo(FRHITexture *TargetTexture) const
Definition RHIResources.cpp:403
Definition RHIResources.h:3042
FInitializer & SetFormat(EPixelFormat InFormat)
Definition RHIResources.h:3088
FInitializer()
Definition RHIResources.h:3047
FInitializer & SetMipLevel(uint8 InMipLevel)
Definition RHIResources.h:3100
friend FRHICommandListBase
Definition RHIResources.h:3044
friend FRHIViewDesc
Definition RHIResources.h:3043
FInitializer & SetPlane(ERHITexturePlane InPlane)
Definition RHIResources.h:3094
FInitializer & SetDimensionFromTexture(FRHITexture *TargetTexture)
Definition RHIResources.h:3081
FInitializer & SetDimension(ETextureDimension InDimension)
Definition RHIResources.h:3063
FInitializer & SetArrayRange(uint16 InFirstElement, uint16 InNumElements)
Definition RHIResources.h:3116
Definition RHIResources.h:3233
uint8 MipLevel
Definition RHIResources.h:3235
Definition RHIResources.h:2746
RHI_API FViewInfo GetViewInfo(FRHITexture *TargetTexture) const
Definition RHIResources.cpp:420
Definition RHIResources.h:3188
uint8 bAllSlices
Definition RHIResources.h:3217
EPixelFormat Format
Definition RHIResources.h:3206
EDimension Dimension
Definition RHIResources.h:3210
ERHITexturePlane Plane
Definition RHIResources.h:3203
FRHIRange16 ArrayRange
Definition RHIResources.h:3200
uint8 bAllMips
Definition RHIResources.h:3213
Definition RHIResources.h:2712
FViewInfo GetViewInfo(FRHITexture *TargetTexture) const
Definition RHIResources.cpp:291
FRHIRange8 MipRange
Definition RHIResources.h:2716
FRHIRange16 ArrayRange
Definition RHIResources.h:2717
uint8 bDisableSRGB
Definition RHIResources.h:2714
ERHITexturePlane Plane
Definition RHIResources.h:2713
EDimension Dimension
Definition RHIResources.h:2715
Definition RHIResources.h:2648
FRHIViewDesc()
Definition RHIResources.h:2789
FCommon Common
Definition RHIResources.h:2754
bool IsTexture() const
Definition RHIResources.h:2777
bool IsSRV() const
Definition RHIResources.h:2773
bool IsUAV() const
Definition RHIResources.h:2774
union FRHIViewDesc::@1904::@1911 Texture
bool operator==(FRHIViewDesc const &RHS) const
Definition RHIResources.h:2779
EViewType
Definition RHIResources.h:2650
static FBufferUAV::FInitializer CreateBufferUAV()
Definition RHIResources.h:3129
FBufferSRV SRV
Definition RHIResources.h:2757
static const TCHAR * GetBufferTypeString(EBufferType BufferType)
Definition RHIResources.cpp:148
static FTextureUAV::FInitializer CreateTextureUAV()
Definition RHIResources.h:3139
FBufferUAV UAV
Definition RHIResources.h:2758
EBufferType
Definition RHIResources.h:2658
FRHIViewDesc(EViewType ViewType)
Definition RHIResources.h:2799
static FTextureSRV::FInitializer CreateTextureSRV()
Definition RHIResources.h:3134
FTextureSRV SRV
Definition RHIResources.h:2762
EDimension
Definition RHIResources.h:2668
static const TCHAR * GetTextureDimensionString(EDimension Dimension)
Definition RHIResources.cpp:162
union FRHIViewDesc::@1904::@1910 Buffer
bool IsBuffer() const
Definition RHIResources.h:2776
static FBufferSRV::FInitializer CreateBufferSRV()
Definition RHIResources.h:3124
FTextureUAV UAV
Definition RHIResources.h:2763
bool operator!=(FRHIViewDesc const &RHS) const
Definition RHIResources.h:2784
Definition DynamicRHI.h:90
Definition RHIResources.h:3693
Definition RHIResources.h:3833
Definition RHIResources.h:3806
Definition RHIResources.h:3842
ERayTracingClusterOperationMode Mode
Definition RHIResources.h:3847
FRayTracingClusterOperationMoveInitializer Move
Definition RHIResources.h:3852
ERayTracingClusterOperationFlags Flags
Definition RHIResources.h:3848
FRayTracingClusterOperationCLASInitializer CLAS
Definition RHIResources.h:3853
FRayTracingClusterOperationBLASInitializer BLAS
Definition RHIResources.h:3854
ERayTracingClusterOperationType Type
Definition RHIResources.h:3846
Definition RHIResources.h:3800
ERayTracingClusterOperationMoveType Type
Definition RHIResources.h:3801
Definition RHIResources.h:3761
Definition RHIResources.h:3496
uint32 TotalPrimitiveCount
Definition RHIResources.h:3506
bool bTemplate
Definition RHIResources.h:3511
FName OwnerName
Definition RHIResources.h:3528
FDebugName DebugName
Definition RHIResources.h:3526
uint32 IndexBufferOffset
Definition RHIResources.h:3501
ERayTracingGeometryType GeometryType
Definition RHIResources.h:3503
TArray< FRayTracingGeometrySegment > Segments
Definition RHIResources.h:3516
bool bAllowUpdate
Definition RHIResources.h:3509
bool bAllowCompaction
Definition RHIResources.h:3510
FRayTracingGeometryOfflineDataHeader OfflineDataHeader
Definition RHIResources.h:3520
ERayTracingGeometryInitializerType Type
Definition RHIResources.h:3512
FRHIRayTracingGeometry * SourceGeometry
Definition RHIResources.h:3523
FBufferRHIRef IndexBuffer
Definition RHIResources.h:3498
bool bFastBuild
Definition RHIResources.h:3508
FResourceArrayUploadInterface * OfflineData
Definition RHIResources.h:3519
Definition RHIResources.h:3357
int32 BaseInstanceSceneDataOffset
Definition RHIResources.h:3368
TArrayView< const FMatrix > Transforms
Definition RHIResources.h:3364
int32 InstanceContributionToHitGroupIndex
Definition RHIResources.h:3360
TArrayView< const uint32 > InstanceSceneDataOffsets
Definition RHIResources.h:3369
ERayTracingInstanceFlags Flags
Definition RHIResources.h:3394
bool bApplyLocalBoundsTransform
Definition RHIResources.h:3383
bool bUsesLightingChannels
Definition RHIResources.h:3387
FRHIRayTracingGeometry * GeometryRHI
Definition RHIResources.h:3358
uint32 NumTransforms
Definition RHIResources.h:3373
uint32 DefaultUserData
Definition RHIResources.h:3379
bool bIncrementUserDataPerInstance
Definition RHIResources.h:3385
TArrayView< const uint32 > UserData
Definition RHIResources.h:3380
uint8 Mask
Definition RHIResources.h:3391
Definition RHIResources.h:3463
uint32 FirstPrimitive
Definition RHIResources.h:3480
bool bForceOpaque
Definition RHIResources.h:3485
uint32 NumPrimitives
Definition RHIResources.h:3481
uint32 VertexBufferStride
Definition RHIResources.h:3473
EVertexElementType VertexBufferElementType
Definition RHIResources.h:3466
bool bAllowDuplicateAnyHitShaderInvocation
Definition RHIResources.h:3489
uint32 MaxVertices
Definition RHIResources.h:3477
FBufferRHIRef VertexBuffer
Definition RHIResources.h:3465
uint32 VertexBufferOffset
Definition RHIResources.h:3469
bool bEnabled
Definition RHIResources.h:3492
Definition RHIResources.h:3669
ERayTracingSceneLifetime Lifetime
Definition RHIResources.h:3678
uint32 NumTotalSegments
Definition RHIResources.h:3674
FName DebugName
Definition RHIResources.h:3683
uint32 MaxNumInstances
Definition RHIResources.h:3671
ERayTracingAccelerationStructureFlags BuildFlags
Definition RHIResources.h:3681
Definition RHIResources.h:3635
uint32 NumCallableShaderSlots
Definition RHIResources.h:3665
ERayTracingHitGroupIndexingMode HitGroupIndexingMode
Definition RHIResources.h:3643
uint32 LocalBindingDataSize
Definition RHIResources.h:3646
uint32 NumMissShaderSlots
Definition RHIResources.h:3661
ERayTracingShaderBindingMode ShaderBindingMode
Definition RHIResources.h:3640
ERayTracingShaderBindingTableLifetime Lifetime
Definition RHIResources.h:3637
uint32 NumShaderSlotsPerGeometrySegment
Definition RHIResources.h:3653
uint32 NumGeometrySegments
Definition RHIResources.h:3656
Definition RHIResources.h:5209
int32 Y2
Definition RHIResources.h:5213
FResolveRect(int32 InX1=-1, int32 InY1=-1, int32 InX2=-1, int32 InY2=-1)
Definition RHIResources.h:5217
int32 X1
Definition RHIResources.h:5210
FResolveRect(FIntRect Other)
Definition RHIResources.h:5224
int32 X2
Definition RHIResources.h:5212
bool IsValid() const
Definition RHIResources.h:5241
bool operator==(FResolveRect Other) const
Definition RHIResources.h:5231
int32 Y1
Definition RHIResources.h:5211
bool operator!=(FResolveRect Other) const
Definition RHIResources.h:5236
Definition ResourceArray.h:10
Definition RHIResources.h:3910
Definition RHIResources.h:755
TArray< uint32 > ResourceTableLayoutHashes
Definition RHIResources.h:769
TArray< uint32 > TextureMap
Definition RHIResources.h:772
TArray< uint32 > SamplerMap
Definition RHIResources.h:763
TArray< uint32 > ShaderResourceViewMap
Definition RHIResources.h:760
TArray< uint32 > UnorderedAccessViewMap
Definition RHIResources.h:766
TArray< uint32 > ResourceCollectionMap
Definition RHIResources.h:775
Definition DynamicRHI.h:72
Definition RHIResources.h:4927
FNameMap(FString const &InExportName, FString const &InNodeName)
Definition RHIResources.h:4932
friend uint32 GetTypeHash(FNameMap const &NameMap)
Definition RHIResources.h:4938
uint32 ExportNameHash
Definition RHIResources.h:4930
FString ExportName
Definition RHIResources.h:4928
FString NodeName
Definition RHIResources.h:4929
Definition IsTrivial.h:15
Definition NumericLimits.h:41
Definition Optional.h:131
Definition RHIResources.h:2616
bool IsInRange(uint32 Value) const
Definition RHIResources.h:2633
TType Num
Definition RHIResources.h:2618
TRHIRange(uint32 InFirst, uint32 InNum)
Definition RHIResources.h:2621
TType InclusiveLast() const
Definition RHIResources.h:2631
TType ExclusiveLast() const
Definition RHIResources.h:2630
TType First
Definition RHIResources.h:2617
Definition RHIResources.h:4335
IntType Y
Definition IntPoint.h:37
IntType X
Definition IntPoint.h:34
Definition RHIResources.h:352
DSVAlue DSValue
Definition RHIResources.h:354
float Color[4]
Definition RHIResources.h:353