13#define GUARDED_TEXTURE_CREATES (PLATFORM_WINDOWS && !(UE_BUILD_SHIPPING || UE_BUILD_TEST || PLATFORM_COMPILER_CLANG))
53#if RHI_ENABLE_RESOURCE_INFO
58#if D3D12RHI_USE_DUMMY_BACKBUFFER
86#if PLATFORM_REQUIRES_TYPELESS_RESOURCE_DISCARD_WORKAROUND
159#if PLATFORM_REQUIRES_TYPELESS_RESOURCE_DISCARD_WORKAROUND
184 int32 ArrayIndex = MipIndex;
188 check(ArraySliceIndex >= 0);
195 check(ArraySliceIndex == -1 || ArraySliceIndex == 0);
213#if D3D12RHI_USE_DUMMY_BACKBUFFER
253 if (Result !=
nullptr)
255 Result = Result->GetLinkedObject(GPUIndex);
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
ED3D12Access
Definition D3D12Access.h:15
FORCEINLINE FD3D12Texture * GetD3D12TextureFromRHITexture(FRHITexture *Texture)
Definition D3D12Texture.h:237
void SafeCreateTexture2D(FD3D12Device *pDevice, FD3D12Adapter *Adapter, const FD3D12ResourceDesc &TextureDesc, const D3D12_CLEAR_VALUE *ClearValue, FD3D12ResourceLocation *OutTexture2D, FD3D12BaseShaderResource *Owner, EPixelFormat Format, ETextureCreateFlags Flags, ED3D12Access InInitialD3D12Access, ED3D12Access InDefaultD3D12Access, const TCHAR *Name)
Definition D3D12Texture.cpp:481
ERHIDescriptorType RHIDescriptorTypeFromD3D12ViewDesc(const D3D12_SHADER_RESOURCE_VIEW_DESC &ViewDesc)
Definition D3D12View.h:16
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
ERHIDescriptorType
Definition RHIDefinitions.h:1348
ETextureCreateFlags
Definition RHIDefinitions.h:1091
FRWLock Lock
Definition UnversionedPropertySerialization.cpp:921
Definition D3D12Adapter.h:136
Definition D3D12Resources.h:891
Definition D3D12CommandContext.h:513
Definition D3D12View.h:435
void CreateView(FResourceInfo const &InResource, TDesc const &InD3DViewDesc)
Definition D3D12View.h:309
FORCEINLINE FD3D12Device * GetParentDevice() const
Definition D3D12RHICommon.h:85
Definition D3D12Device.h:176
Definition D3D12RHICommon.h:164
Definition D3D12View.h:423
Definition D3D12Resources.h:641
Definition D3D12View.h:351
void CreateView(FResourceInfo const &InResource, D3D12_SHADER_RESOURCE_VIEW_DESC const &InD3DViewDesc, EFlags InFlags)
Definition D3D12SRV.cpp:44
EFlags
Definition D3D12View.h:356
Definition D3D12Texture.h:31
void SetAliasingSource(FTextureRHIRef &SourceTextureRHI)
Definition D3D12Texture.h:147
void Unlock(FRHICommandListBase &RHICmdList, const FRHILockTextureArgs &Arguments)
Definition D3D12Texture.cpp:2280
bool IsStreamable() const
Definition D3D12Texture.h:67
void EmplaceRTV(D3D12_RENDER_TARGET_VIEW_DESC const &RTVDesc, int32 Index, FD3D12Texture *FirstLinkedObject)
Definition D3D12Texture.h:104
void GetReadBackHeapDesc(D3D12_PLACED_SUBRESOURCE_FOOTPRINT &OutFootprint, uint32 Subresource) const
Definition D3D12Texture.cpp:2460
bool bCreatedRTVsPerSlice
Definition D3D12Texture.h:157
void UploadInitialData(FRHICommandListBase &RHICmdList, FD3D12ResourceLocation &&SourceLocation, ED3D12Access InDestinationD3D12Access)
Definition D3D12Texture.cpp:2210
virtual FReturnedRefCountValue AddRef() const override
Definition D3D12Texture.h:48
virtual ~FD3D12Texture()
Definition D3D12Texture.cpp:1671
TUniquePtr< D3D12_PLACED_SUBRESOURCE_FOOTPRINT > FirstSubresourceFootprint
Definition D3D12Texture.h:176
virtual uint32 Release() const override
Definition D3D12Texture.h:49
const FTextureRHIRef & GetAliasingSourceTexture() const
Definition D3D12Texture.h:70
FD3D12DepthStencilView * GetDepthStencilView(FExclusiveDepthStencil AccessType) const
Definition D3D12Texture.h:84
TSharedPtr< FD3D12DepthStencilView > DepthStencilViews[FExclusiveDepthStencil::MaxIndex]
Definition D3D12Texture.h:170
void UpdateTexture(FD3D12CommandContext &Context, uint32 MipIndex, uint32 DestX, uint32 DestY, uint32 DestZ, const D3D12_TEXTURE_COPY_LOCATION &SourceCopyLocation)
Definition D3D12Texture.cpp:2147
void SetCreatedRTVsPerSlice(bool Value, int32 InRTVArraySize)
Definition D3D12Texture.h:93
TSharedPtr< FD3D12ShaderResourceView > ShaderResourceView
Definition D3D12Texture.h:154
void AliasResources(FD3D12Texture *Texture)
Definition D3D12Texture.cpp:1980
void UpdateTexture2D(FRHICommandListBase &RHICmdList, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)
Definition D3D12Texture.cpp:2347
int32 RTVArraySizePerMip
Definition D3D12Texture.h:164
void EmplaceSRV(D3D12_SHADER_RESOURCE_VIEW_DESC const &SRVDesc, FD3D12Texture *FirstLinkedObject)
Definition D3D12Texture.h:122
void ReuseStagingBuffer(TUniquePtr< FD3D12LockedResource > &&LockedResource, uint32 Subresource)
Definition D3D12Texture.cpp:2001
TArray< TSharedPtr< FD3D12RenderTargetView >, TInlineAllocator< 1 > > RenderTargetViews
Definition D3D12Texture.h:167
TMap< uint32, TUniquePtr< FD3D12LockedResource > > LockedMap
Definition D3D12Texture.h:173
static bool CanBe4KAligned(const FD3D12ResourceDesc &Desc, EPixelFormat UEFormat)
Definition D3D12Texture.cpp:181
bool HasRenderTargetViews() const
Definition D3D12Texture.h:79
FD3D12ShaderResourceView * GetShaderResourceView() const
Definition D3D12Texture.h:82
FTextureRHIRef AliasingSourceTexture
Definition D3D12Texture.h:179
TConstArrayView< TSharedPtr< FD3D12RenderTargetView > > GetRenderTargetViews() const
Definition D3D12Texture.h:80
bool HasCreatedRTVsPerSlice() const
Definition D3D12Texture.h:74
virtual uint32 GetRefCount() const override
Definition D3D12Texture.h:50
FD3D12RenderTargetView * GetRenderTargetView(int32 MipIndex, int32 ArraySliceIndex) const
Definition D3D12Texture.h:182
void EmplaceDSV(D3D12_DEPTH_STENCIL_VIEW_DESC const &DSVDesc, int32 Index, FD3D12Texture *FirstLinkedObject)
Definition D3D12Texture.h:113
virtual FRHIDescriptorHandle GetDefaultBindlessHandle() const override
Definition D3D12Texture.cpp:1719
virtual void * GetNativeResource() const override final
Definition D3D12Texture.cpp:1696
FD3D12Texture(const FRHITextureCreateDesc &InDesc, class FD3D12Device *InParent)
Definition D3D12Texture.h:40
bool SkipsFastClearFinalize() const
Definition D3D12Texture.h:68
void SetNumRTVs(int32 Num)
Definition D3D12Texture.h:99
virtual void * GetTextureBaseRHI() override final
Definition D3D12Texture.h:61
Definition D3D12Viewport.h:24
Definition RHIResources.h:409
static const uint32 MaxIndex
Definition RHIResources.h:652
uint32 GetIndex() const
Definition RHIResources.h:623
Definition RHICommandList.h:455
uint32 GetRefCount() const
Definition RHIResources.h:93
uint32 Release() const
Definition RHIResources.h:80
uint32 AddRef() const
Definition RHIResources.h:73
Definition RHIResources.h:2153
virtual const FRHITextureDesc & GetDesc() const
Definition RHIResources.h:2170
virtual void * GetTextureBaseRHI()
Definition RHIResources.h:2207
Definition ResourceArray.h:102
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT ObjectType * Get() const
Definition SharedPointer.h:1065
Definition ContainerAllocationPolicies.h:894
Definition UniquePtr.h:107
Definition D3D12Texture.h:266
void D3D12TextureDeleted(FD3D12Texture &Texture)
Definition D3D12Texture.cpp:161
void D3D12TextureAllocated(FD3D12Texture &Texture)
Definition D3D12Texture.cpp:141
void UpdateD3D12TextureStats(FD3D12Texture &Texture, const FD3D12ResourceDesc &ResourceDesc, const FRHITextureDesc &TextureDesc, uint64 TextureSize, bool bNewTexture, bool bAllocating)
Definition D3D12Texture.cpp:73
Definition D3D12Texture.h:278
D3D12_PLACED_SUBRESOURCE_FOOTPRINT GetInitializerSubresourceFootprint(FD3D12Texture *Texture, uint32 Subresource, uint32 &NumRows)
Definition D3D12Texture.cpp:933
uint64 CalculateResourceSize(FD3D12Texture *Texture)
Definition D3D12Texture.cpp:849
D3D12_CLEAR_VALUE * FillClearValue(D3D12_CLEAR_VALUE &ClearValue, const FD3D12ResourceDesc &ResourceDesc, const FRHITextureDesc &TextureDesc)
Definition D3D12Texture.cpp:595
void ReconcileInitialState(FRHICommandListBase &RHICmdList, FD3D12Texture *Texture, ED3D12Access CurrentD3D12Access, ED3D12Access NeededD3D12Access)
Definition D3D12Texture.cpp:813
void CopyBulkData(void *UploadMemory, uint64 UploadMemorySize, FD3D12Texture *Texture, FResourceBulkDataInterface *BulkData)
Definition D3D12Texture.cpp:869
U16 Index
Definition radfft.cpp:71
Definition D3D12Resources.h:134
Definition RHIDefinitions.h:1401
Definition DynamicRHI.h:149
Definition DynamicRHI.h:198
Definition RHIResources.h:1938
Definition RHIResources.h:1689
Definition RefCounting.h:29
Definition RHITypes.h:127
FD3D12Texture TConcreteType
Definition D3D12Texture.h:208
Definition D3D12RHICommon.h:374