19 enum { IsBytewiseComparable =
true };
136 checkf(!
HasLinkedViews(),
TEXT(
"All linked views must have been removed before the underlying resource can be deleted."));
141 return LinkedViews !=
nullptr;
246 return IHVResourceHandle;
255 int32 ArrayIndex = MipIndex;
257 if (bCreatedRTVsPerSlice)
259 check(ArraySliceIndex >= 0);
260 ArrayIndex = MipIndex * RTVArraySize + ArraySliceIndex;
265 check(ArraySliceIndex == -1 || ArraySliceIndex == 0);
270 return RenderTargetViews[ArrayIndex];
277 return DepthStencilViews[AccessType.
GetIndex()];
280#if RHI_ENABLE_RESOURCE_INFO
302 void* IHVResourceHandle =
nullptr;
316 int32 RTVArraySize = 0;
318 uint8 bCreatedRTVsPerSlice : 1;
416 bool bAllocatedFromPool;
432#if RHI_ENABLE_RESOURCE_INFO
499 FD3D11Sync() =
default;
514 void Clear()
override;
515 bool Poll()
const override;
522 PollFencesUntil(
nullptr);
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ID3D11DeviceContext FD3D11DeviceContext
Definition D3D11Resources.h:14
TArray< D3D11_INPUT_ELEMENT_DESC, TFixedAllocator< MaxVertexElementCount > > FD3D11VertexElements
Definition D3D11Resources.h:23
FRHICalcTextureSizeResult RHICalcTexturePlatformSize(FRHITextureDesc const &Desc, uint32 FirstMipIndex=0)
Definition DynamicRHI.h:1237
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_Pixel
Definition RHIDefinitions.h:206
@ SF_NumStandardFrequencies
Definition RHIDefinitions.h:222
@ MaxVertexElementCount
Definition RHIDefinitions.h:276
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
Definition D3D11RHI.Build.cs:8
Definition TaskGraphInterfaces.h:471
Definition BoundShaderStateCache.h:168
FRHIVertexShader * GetVertexShader() const
Definition BoundShaderStateCache.h:211
FRHIGeometryShader * GetGeometryShader() const
Definition BoundShaderStateCache.h:215
FRHIPixelShader * GetPixelShader() const
Definition BoundShaderStateCache.h:214
Definition D3D11Resources.h:98
TRefCountPtr< ID3D11VertexShader > VertexShader
Definition D3D11Resources.h:104
FD3D11PixelShader * GetPixelShader() const
Definition D3D11Resources.h:126
~FD3D11BoundShaderState()
Definition D3D11Shaders.cpp:300
FD3D11GeometryShader * GetGeometryShader() const
Definition D3D11Resources.h:127
FD3D11VertexShader * GetVertexShader() const
Definition D3D11Resources.h:125
uint16 StreamStrides[MaxVertexElementCount]
Definition D3D11Resources.h:102
FCachedBoundShaderStateLink CacheLink
Definition D3D11Resources.h:101
TRefCountPtr< ID3D11InputLayout > InputLayout
Definition D3D11Resources.h:103
TRefCountPtr< ID3D11GeometryShader > GeometryShader
Definition D3D11Resources.h:106
TRefCountPtr< ID3D11PixelShader > PixelShader
Definition D3D11Resources.h:105
bool bShaderNeedsGlobalConstantBuffer[SF_NumStandardFrequencies]
Definition D3D11Resources.h:108
Definition D3D11Resources.h:421
virtual uint32 GetRefCount() const
Definition D3D11Resources.h:457
virtual ~FD3D11Buffer()
Definition D3D11Buffer.cpp:19
virtual uint32 Release() const
Definition D3D11Resources.h:453
FD3D11Buffer(ID3D11Buffer *InResource, const FRHIBufferCreateDesc &InCreateDesc)
Definition D3D11Resources.h:426
virtual uint32 AddRef() const
Definition D3D11Resources.h:449
TRefCountPtr< ID3D11Buffer > Resource
Definition D3D11Resources.h:424
void ReleaseOwnership()
Definition D3D11Buffer.cpp:30
ID3D11Resource * GetResource() const
Definition D3D11Resources.h:462
Definition D3D11Resources.h:85
@ StaticFrequency
Definition D3D11Resources.h:87
TRefCountPtr< ID3D11ComputeShader > Resource
Definition D3D11Resources.h:90
Definition D3D11RHIPrivate.h:366
Definition D3D11Resources.h:489
bool Poll() const override
Definition D3D11Commands.cpp:1714
void Clear() override
Definition D3D11Commands.cpp:1709
void Wait(FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const override
Definition D3D11Commands.cpp:1719
static void PollFences()
Definition D3D11Resources.h:520
void WriteGPUFence_TopOfPipe(FRHICommandListBase &RHICmdList)
Definition D3D11Commands.cpp:1828
Definition D3D11Resources.h:67
@ StaticFrequency
Definition D3D11Resources.h:69
TRefCountPtr< ID3D11GeometryShader > Resource
Definition D3D11Resources.h:72
Definition D3D11Resources.h:76
@ StaticFrequency
Definition D3D11Resources.h:78
TRefCountPtr< ID3D11PixelShader > Resource
Definition D3D11Resources.h:81
Definition D3D11Resources.h:364
FD3D11RenderQuery_RHI(EType Type)
Definition D3D11Resources.h:368
uint64 Result
Definition D3D11Resources.h:366
Definition D3D11Resources.h:323
bool IsLinked() const
Definition D3D11Resources.h:355
uint8 BOPCounter
Definition D3D11Resources.h:336
~FD3D11RenderQuery()
Definition D3D11Query.cpp:50
EType
Definition D3D11Resources.h:340
std::atomic< uint8 > LastCachedBOPCounter
Definition D3D11Resources.h:337
uint8 TOPCounter
Definition D3D11Resources.h:335
enum FD3D11RenderQuery::EType Type
bool CacheResult(class FD3D11DynamicRHI &RHI, bool bWait)
Definition D3D11Query.cpp:175
Definition D3D11Resources.h:545
virtual void UpdateView() override
Definition D3D11SRV.cpp:29
FD3D11ViewableResource * GetBaseResource() const
Definition D3D11SRV.cpp:144
TRefCountPtr< ID3D11ShaderResourceView > View
Definition D3D11Resources.h:547
Definition D3D11Resources.h:469
void Unlock() override
Definition D3D11Commands.cpp:1635
~FD3D11StagingBuffer() override
Definition D3D11Commands.cpp:1609
uint64 GetGPUSizeBytes() const override
Definition D3D11Resources.h:480
FD3D11StagingBuffer()
Definition D3D11Resources.h:472
Definition D3D11Resources.h:154
uint64 GetMemorySize() const
Definition D3D11Resources.h:185
ID3D11RenderTargetView * GetRenderTargetView(int32 MipIndex, int32 ArraySliceIndex) const
Definition D3D11Resources.h:253
D3D11RHI_API void AliasResource(FD3D11Texture const &Other)
Definition D3D11Texture.cpp:1643
virtual void * GetNativeResource() const override
Definition D3D11Resources.h:224
void SetIHVResourceHandle(void *InHandle)
Definition D3D11Resources.h:239
virtual D3D11RHI_API ~FD3D11Texture()
Definition D3D11Texture.cpp:1635
virtual void * GetTextureBaseRHI() override
Definition D3D11Resources.h:234
FD3D11Texture(const FRHITextureCreateDesc &InDesc, ID3D11Resource *InResource, ID3D11ShaderResourceView *InShaderResourceView, int32 InRTVArraySize, bool bInCreatedRTVsPerSlice, TConstArrayView< TRefCountPtr< ID3D11RenderTargetView > > InRenderTargetViews, TConstArrayView< TRefCountPtr< ID3D11DepthStencilView > > InDepthStencilViews)
Definition D3D11Resources.h:166
ID3D11Texture2D * GetD3D11Texture2D() const
Definition D3D11Resources.h:200
void Unlock(FD3D11DynamicRHI *D3DRHI, const FRHILockTextureArgs &Arguments)
Definition D3D11Texture.cpp:1154
void * GetIHVResourceHandle() const
Definition D3D11Resources.h:244
bool IsTexture3D() const
Definition D3D11Resources.h:219
ID3D11DepthStencilView * GetDepthStencilView(FExclusiveDepthStencil AccessType) const
Definition D3D11Resources.h:275
void FinalizeCreation(ID3D11Resource *InResource, ID3D11ShaderResourceView *InShaderResourceView, int32 InRTVArraySize, bool bInCreatedRTVsPerSlice, TConstArrayView< TRefCountPtr< ID3D11RenderTargetView > > InRenderTargetViews, TConstArrayView< TRefCountPtr< ID3D11DepthStencilView > > InDepthStencilViews)
Definition D3D11Texture.cpp:1601
bool IsCubemap() const
Definition D3D11Resources.h:194
EAliasResourceParam
Definition D3D11Resources.h:179
@ CreateAlias
Definition D3D11Resources.h:179
ID3D11ShaderResourceView * GetShaderResourceView() const
Definition D3D11Resources.h:192
ID3D11Texture3D * GetD3D11Texture3D() const
Definition D3D11Resources.h:211
ID3D11Resource * GetResource() const
Definition D3D11Resources.h:191
virtual void * GetNativeShaderResourceView() const override
Definition D3D11Resources.h:229
Definition D3D11Resources.h:557
FD3D11ViewableResource * GetBaseResource() const
Definition D3D11UAV.cpp:116
TRefCountPtr< ID3D11UnorderedAccessView > View
Definition D3D11Resources.h:559
virtual void UpdateView() override
Definition D3D11UAV.cpp:22
Definition D3D11Resources.h:27
uint16 StreamStrides[MaxVertexElementCount]
Definition D3D11Resources.h:32
FD3D11VertexDeclaration(const FD3D11VertexElements &InElements, const uint16 *InStrides)
Definition D3D11Resources.h:35
FD3D11VertexElements VertexElements
Definition D3D11Resources.h:30
Definition D3D11Resources.h:52
int32 Offset
Definition D3D11Resources.h:63
@ StaticFrequency
Definition D3D11Resources.h:54
TArray< uint8 > Code
Definition D3D11Resources.h:60
TRefCountPtr< ID3D11VertexShader > Resource
Definition D3D11Resources.h:57
Definition D3D11Resources.h:533
virtual ~FD3D11View()
Definition D3D11Resources.h:535
virtual void UpdateView()=0
Definition D3D11Resources.h:132
void UpdateLinkedViews()
Definition D3D11SRV.cpp:5
~FD3D11ViewableResource()
Definition D3D11Resources.h:134
bool HasLinkedViews() const
Definition D3D11Resources.h:139
Definition RHIResources.h:409
static const uint32 MaxIndex
Definition RHIResources.h:652
uint32 GetIndex() const
Definition RHIResources.h:623
Definition NameTypes.h:617
Definition RHIResources.h:733
Definition RHIResources.h:1581
uint32 GetSize() const
Definition RHIResources.h:1595
Definition RHICommandList.h:455
Definition RHIResources.h:1018
Definition RHIResources.h:2387
Definition RHIResources.h:978
Definition RHIResources.h:972
Definition RHIResources.h:2444
uint32 GetRefCount() const
Definition RHIResources.h:93
uint32 Release() const
Definition RHIResources.h:80
ERHIResourceType GetType() const
Definition RHIResources.h:111
uint32 AddRef() const
Definition RHIResources.h:73
Definition RHIResources.h:3304
Definition RHIResources.h:3981
Definition RHIResources.h:2153
virtual const FRHITextureDesc & GetDesc() const
Definition RHIResources.h:2170
Definition RHIResources.h:3294
Definition RHIResources.h:725
Definition RHIResources.h:954
FRHIViewDesc const ViewDesc
Definition RHIResources.h:3290
Definition RHIResources.h:1265
FName GetName() const
Definition RHIResources.h:1272
FName Name
Definition RHIResources.h:1310
Definition RHI.Build.cs:8
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Unlink()
Definition List.h:132
Definition RefCounting.h:454
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition D3D11Resources.h:527
void UpdateBufferStats(FD3D11Buffer &Buffer, bool bAllocating)
Definition D3D11RHI.cpp:589
void UpdateUniformBufferStats(ID3D11Buffer *Buffer, int64 BufferSize, bool bAllocating)
Definition D3D11RHI.cpp:583
Definition D3D11Resources.h:43
bool bIsSm6Shader
Definition D3D11Resources.h:46
TArray< FShaderCodeVendorExtension > VendorExtensions
Definition D3D11Resources.h:44
bool bShaderNeedsGlobalConstantBuffer
Definition D3D11Resources.h:45
uint16 UAVMask
Definition D3D11Resources.h:47
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition RHIResources.h:1417
uint64 Size
Definition DynamicRHI.h:122
Definition DynamicRHI.h:149
Definition DynamicRHI.h:198
FName Name
Definition RHI.h:544
Definition RHIResources.h:1938
Definition RHIResources.h:1689
ETextureDimension Dimension
Definition RHIResources.h:1871
Definition RHIResources.h:2648
Definition D3D11Resources.h:378
ID3D11Buffer * Buffer
Definition D3D11Resources.h:379
FRingAllocation()
Definition D3D11Resources.h:384
uint32 Offset
Definition D3D11Resources.h:381
void * DataPtr
Definition D3D11Resources.h:380
bool IsValid() const
Definition D3D11Resources.h:385
uint32 Size
Definition D3D11Resources.h:382
FD3D11BoundShaderState TConcreteType
Definition D3D11Resources.h:599
FD3D11Buffer TConcreteType
Definition D3D11Resources.h:614
FD3D11ComputeShader TConcreteType
Definition D3D11Resources.h:594
FD3D11GPUFence TConcreteType
Definition D3D11Resources.h:625
FD3D11GeometryShader TConcreteType
Definition D3D11Resources.h:584
FD3D11PixelShader TConcreteType
Definition D3D11Resources.h:589
FD3D11RenderQuery_RHI TConcreteType
Definition D3D11Resources.h:604
FD3D11ShaderResourceView TConcreteType
Definition D3D11Resources.h:630
FD3D11StagingBuffer TConcreteType
Definition D3D11Resources.h:619
FD3D11UnorderedAccessView TConcreteType
Definition D3D11Resources.h:635
FD3D11VertexDeclaration TConcreteType
Definition D3D11Resources.h:574
FD3D11VertexShader TConcreteType
Definition D3D11Resources.h:579
Definition D3D11Resources.h:569
Definition UnrealTypeTraits.h:335
Definition UnrealTypeTraits.h:347