43 class FDeviceMemoryAllocation;
177 CodeView = UncompressedCode;
207#if UE_BUILD_DEBUG || UE_BUILD_DEVELOPMENT
225 int32 UncompressedSizeBytes = -1;
255template<
typename BaseResourceType, EShaderFrequency ShaderType>
334 template <
typename ShaderType>
337 template <
typename ShaderType>
346 return static_cast<ShaderType*
>(*FoundShaderPtr);
352 template <EShaderFrequency ShaderFrequency>
388#if PLATFORM_SUPPORTS_MESH_SHADERS
392#if VULKAN_SUPPORTS_GEOMETRY_SHADERS
477 Null = TStorage::IndexOfType<FInvalidatedState >(),
479 Texture = TStorage::IndexOfType<FTextureView >(),
523 return BindlessHandle;
528 return DescriptorType;
562 checkf(!
HasLinkedViews(),
TEXT(
"All linked views must have been removed before the underlying resource can be deleted."));
567 return LinkedViews !=
nullptr;
646 bool CanMove()
const override {
return false; }
690#if RHI_ENABLE_RESOURCE_INFO
746 return FullAspectMask;
752 return PartialAspectMask;
773 return DefaultLayout;
916#if RHI_ENABLE_RESOURCE_INFO
1097 check((NumBytes & 3) == 0 && (ByteOffset & 3) == 0);
1102 bool bChanged =
false;
1142 uint32 QueuedNumBytes = 0;
1153 virtual void Clear()
override;
1154 virtual bool Poll()
const override;
1270template<
typename TRHIType>
1276template<
typename TRHIType>
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_NumFrequencies
Definition RHIDefinitions.h:216
EBufferUsageFlags
Definition RHIDefinitions.h:892
EUniformBufferUsage
Definition RHIDefinitions.h:536
@ MaxVertexElementCount
Definition RHIDefinitions.h:276
ETextureDimension
Definition RHIDefinitions.h:1081
#define BUF_Volatile
Definition RHIDefinitions.h:982
EResourceLockMode
Definition RHIDefinitions.h:785
EUniformBufferValidation
Definition RHIDefinitions.h:546
@ MAX_TEXTURE_MIP_COUNT
Definition RHIDefinitions.h:268
@ SLT_ReadOnly
Definition ScopeRWLock.h:138
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
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
VkImageViewType UETextureDimensionToVkImageViewType(ETextureDimension Dimension)
Definition VulkanResources.h:57
@ NUM_OCCLUSION_QUERIES_PER_POOL
Definition VulkanResources.h:48
@ NUM_TIMESTAMP_QUERIES_PER_POOL
Definition VulkanResources.h:50
TVulkanBaseShader< FRHIMeshShader, SF_Mesh > FVulkanMeshShader
Definition VulkanResources.h:288
EImageOwnerType
Definition VulkanResources.h:596
TVulkanBaseShader< FRHIPixelShader, SF_Pixel > FVulkanPixelShader
Definition VulkanResources.h:285
VkFormat GVulkanBufferFormat[PF_MAX]
Definition VulkanDevice.cpp:88
TVulkanBaseShader< FRHIVertexShader, SF_Vertex > FVulkanVertexShader
Definition VulkanResources.h:284
TVulkanBaseShader< FRHIAmplificationShader, SF_Amplification > FVulkanTaskShader
Definition VulkanResources.h:289
TVulkanBaseShader< FRHIGeometryShader, SF_Geometry > FVulkanGeometryShader
Definition VulkanResources.h:287
TVulkanBaseShader< FRHIComputeShader, SF_Compute > FVulkanComputeShader
Definition VulkanResources.h:286
VkDescriptorType GetVkDescriptorTypeForViewDesc(const FRHIViewDesc &ViewDesc)
Definition VulkanView.cpp:26
bool CopyAndReturnNotEqual(T &A, T B)
Definition VulkanUtil.h:38
Definition Archive.h:1208
Definition BoundShaderStateCache.h:244
FRHIVertexShader * GetVertexShader() const
Definition BoundShaderStateCache.h:211
FRHIAmplificationShader * GetAmplificationShader() const
Definition BoundShaderStateCache.h:213
FRHIMeshShader * GetMeshShader() const
Definition BoundShaderStateCache.h:212
FRHIGeometryShader * GetGeometryShader() const
Definition BoundShaderStateCache.h:215
FRHIPixelShader * GetPixelShader() const
Definition BoundShaderStateCache.h:214
Definition NameTypes.h:617
Definition RHIResources.h:966
Definition RHIResources.h:696
Definition RHIResources.h:733
Definition RHIResources.h:1581
EBufferUsageFlags GetUsage() const
Definition RHIResources.h:1607
uint32 GetStride() const
Definition RHIResources.h:1601
Definition RHICommandList.h:455
Definition RHIResources.h:1018
Definition RHIResources.h:686
Definition RHIResources.h:2387
Definition RHIResources.h:978
Definition RHIResources.h:960
Definition RHIResources.h:972
Definition RHIResources.h:679
Definition RHIResources.h:3729
Definition RHIResources.h:1115
Definition RHIResources.h:3755
Definition RHIResources.h:984
Definition RHIResources.h:2444
Definition RHIResources.h:54
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:671
Definition RHIResources.h:3863
FShaderResourceTable ShaderResourceTable
Definition RHIResources.h:845
TArray< FUniformBufferStaticSlot > StaticSlots
Definition RHIResources.h:846
Definition RHIResources.h:3304
Definition RHIResources.h:3981
bool bIsLocked
Definition RHIResources.h:3997
Definition RHIResources.h:2153
FIntVector GetSizeXYZ() const
Definition RHIResources.h:2227
virtual const FRHITextureDesc & GetDesc() const
Definition RHIResources.h:2170
Definition RHIResources.h:3294
Definition RHIResources.h:725
Definition RHIResources.h:954
Definition RHIResources.h:1265
FName GetName() const
Definition RHIResources.h:1272
Definition ScopeRWLock.h:199
Definition ScopeLock.h:141
Definition RefCounting.h:283
Definition VulkanState.h:77
Definition VulkanResources.h:365
FORCEINLINE FVulkanVertexShader * GetVertexShader() const
Definition VulkanResources.h:376
FORCEINLINE FVulkanTaskShader * GetTaskShader() const
Definition VulkanResources.h:379
const FVulkanShader * GetShader(ShaderStage::EStage Stage) const
Definition VulkanResources.h:382
FORCEINLINE FVulkanGeometryShader * GetGeometryShader() const
Definition VulkanResources.h:380
FORCEINLINE FVulkanMeshShader * GetMeshShader() const
Definition VulkanResources.h:378
FORCEINLINE FVulkanPixelShader * GetPixelShader() const
Definition VulkanResources.h:377
virtual ~FVulkanBoundShaderState()
Definition VulkanShaders.cpp:821
Definition VulkanResources.h:837
virtual ~FVulkanBuffer()
Definition VulkanBuffer.cpp:191
static VkBufferUsageFlags UEToVKBufferUsageFlags(FVulkanDevice &InDevice, EBufferUsageFlags InUEUsage, bool bZeroSize)
Definition VulkanBuffer.cpp:84
void * GetCurrentHostPointer()
Definition VulkanResources.h:905
void IncrementLockCounter()
Definition VulkanResources.h:910
uint32 LockCounter
Definition VulkanResources.h:948
VkBuffer GetHandle() const
Definition VulkanResources.h:847
const VulkanRHI::FVulkanAllocation & GetCurrentAllocation() const
Definition VulkanResources.h:842
void AllocateMemory(FBufferAlloc &OutAlloc)
Definition VulkanBuffer.cpp:204
enum FVulkanBuffer::ELockStatus LockStatus
uint32 GetOffset() const
Definition VulkanResources.h:858
uint64 GetCurrentSize() const
Definition VulkanResources.h:864
bool IsVolatile() const
Definition VulkanResources.h:852
void ReleaseOwnership()
Definition VulkanBuffer.cpp:543
void Unlock(FRHICommandListBase &RHICmdList)
Definition VulkanBuffer.cpp:457
VkIndexType GetIndexType() const
Definition VulkanResources.h:879
VkDeviceAddress GetDeviceAddress() const
Definition VulkanResources.h:869
TUniquePtr< FVulkanReservedResourceData > ReservedResourceData
Definition VulkanResources.h:950
friend struct FRHICommandMultiBufferUnlock
Definition VulkanResources.h:953
VkBufferUsageFlags BufferUsageFlags
Definition VulkanResources.h:938
VkBufferUsageFlags GetBufferUsageFlags() const
Definition VulkanResources.h:874
TArray< VkSparseMemoryBind > CommitReservedResource(uint64 RequiredCommitSizeInBytes)
Definition VulkanBuffer.cpp:235
void DumpMemory(T Callback)
Definition VulkanResources.h:891
FBufferAlloc CurrentBufferAlloc
Definition VulkanResources.h:947
ELockStatus
Definition VulkanResources.h:941
FVulkanDevice & Device
Definition VulkanResources.h:936
Definition VulkanCommandBuffer.h:43
Definition VulkanContext.h:241
Definition VulkanPipeline.h:705
Definition VulkanContext.h:55
Definition VulkanState.h:58
Definition VulkanDevice.h:279
Definition VulkanDynamicRHI.h:69
Definition VulkanMemory.h:104
Definition VulkanResources.h:1148
FVulkanSyncPointRef CompletedSyncPoint
Definition VulkanResources.h:1161
FVulkanDevice & Device
Definition VulkanResources.h:1158
virtual ~FVulkanGPUFence()
Definition VulkanUtil.cpp:638
VkEvent Event
Definition VulkanResources.h:1159
FGraphEventRef SubmittedSyncPoint
Definition VulkanResources.h:1160
virtual void Clear() override
Definition VulkanUtil.cpp:647
virtual void Wait(FRHICommandListImmediate &RHICmdList, FRHIGPUMask GPUMask) const override
Definition VulkanUtil.cpp:673
virtual bool Poll() const override
Definition VulkanUtil.cpp:658
Definition VulkanLayout.h:10
Definition VulkanResources.h:542
virtual void UpdateView(const FVulkanContextArray &Contexts)=0
~FVulkanLinkedView()
Definition VulkanResources.h:548
FVulkanLinkedView(FVulkanDevice &Device, VkDescriptorType DescriptorType)
Definition VulkanResources.h:544
Definition VulkanPendingState.h:121
Definition VulkanPipeline.h:492
Definition VulkanQueue.h:53
Definition VulkanState.h:36
Definition VulkanRayTracing.h:182
Definition VulkanRayTracing.h:270
Definition VulkanRayTracing.h:222
Definition VulkanRayTracing.h:69
Definition VulkanResources.h:292
virtual FReturnedRefCountValue AddRef() const override final
Definition VulkanResources.h:315
static const uint32 IntersectionModuleIdentifier
Definition VulkanResources.h:310
static const uint32 AnyHitModuleIdentifier
Definition VulkanResources.h:309
static const uint32 MainModuleIdentifier
Definition VulkanResources.h:307
static const uint32 ClosestHitModuleIdentifier
Definition VulkanResources.h:308
virtual uint32 Release() const override final
Definition VulkanResources.h:319
virtual uint32 GetRefCount() const override final
Definition VulkanResources.h:323
Definition VulkanQuery.h:114
Definition VulkanState.h:17
Definition VulkanResources.h:330
FVulkanRayTracingShader * CreateRayTracingShader(TArrayView< const uint8 > Code, FVulkanDevice *Device)
Definition VulkanShaders.cpp:272
ShaderType * LookupShader(uint64 ShaderKey) const
Definition VulkanResources.h:338
ShaderType * CreateShader(TArrayView< const uint8 > Code, FVulkanDevice *Device)
Definition VulkanShaders.cpp:212
void LookupGfxShaders(const uint64 InShaderKeys[ShaderStage::NumGraphicsStages], FVulkanShader *OutShaders[ShaderStage::NumGraphicsStages]) const
Definition VulkanShaders.cpp:353
~FVulkanShaderFactory()
Definition VulkanShaders.cpp:31
void OnDeleteShader(const FVulkanShader &Shader)
Definition VulkanShaders.cpp:371
Definition VulkanResources.h:94
VkShaderModule & GetVkShaderModule()
Definition VulkanResources.h:104
FVulkanShaderModule(FVulkanDevice *DeviceIn, VkShaderModule ShaderModuleIn)
Definition VulkanResources.h:98
virtual ~FVulkanShaderModule()
Definition VulkanShaders.cpp:420
Definition VulkanResources.h:1020
virtual FRHIDescriptorHandle GetBindlessHandle() const override
Definition VulkanResources.h:1027
FVulkanViewableResource * GetBaseResource() const
Definition VulkanSRV.cpp:36
void UpdateView(const FVulkanContextArray &Contexts) override
Definition VulkanSRV.cpp:46
Definition VulkanResources.h:173
TArrayView< uint32 > GetCodeView()
Definition VulkanResources.h:183
Definition VulkanResources.h:222
friend FArchive & operator<<(FArchive &Ar, class FVulkanShader::FSpirvContainer &SpirvContainer)
Definition VulkanShaders.cpp:378
int32 GetSizeBytes() const
Definition VulkanResources.h:228
bool IsCompressed() const
Definition VulkanResources.h:227
Definition VulkanResources.h:108
friend FArchive & operator<<(FArchive &Ar, class FVulkanShader::FSpirvContainer &SpirvContainer)
Definition VulkanShaders.cpp:378
void GetEntryPoint(ANSICHAR *Name, int32 NameLength) const
Definition VulkanResources.h:155
static FSpirvCode PatchSpirvInputAttachments(FSpirvCode &SpirvCode)
Definition VulkanShaders.cpp:522
TMap< uint32, TRefCountPtr< FVulkanShaderModule > > ShaderModules
Definition VulkanResources.h:214
void PurgeShaderModules()
Definition VulkanShaders.cpp:756
FSpirvCode GetPatchedSpirvCode(const FGfxPipelineDesc &Desc, const FVulkanLayout *Layout)
Definition VulkanShaders.cpp:612
TRefCountPtr< FVulkanShaderModule > GetOrCreateHandle(const FVulkanLayout *Layout, uint32 LayoutHash)
Definition VulkanResources.h:120
TRefCountPtr< FVulkanShaderModule > GetOrCreateHandle(const FGfxPipelineDesc &Desc, const FVulkanLayout *Layout, uint32 LayoutHash)
Definition VulkanResources.h:132
void SetUsesBindless(bool bValue)
Definition VulkanResources.h:195
TRefCountPtr< FVulkanShaderModule > CreateHandle(const FVulkanLayout *Layout, uint32 LayoutHash)
Definition VulkanShaders.cpp:717
TArray< FUniformBufferStaticSlot > & StaticSlots
Definition VulkanResources.h:193
friend class FVulkanComputeShaderState
Definition VulkanResources.h:249
const EShaderFrequency Frequency
Definition VulkanResources.h:215
uint64 GetShaderKey() const
Definition VulkanResources.h:165
class FVulkanShader::FSpirvContainer SpirvContainer
uint64 ShaderKey
Definition VulkanResources.h:210
bool UsesBindless() const
Definition VulkanResources.h:200
virtual ~FVulkanShader()
Definition VulkanShaders.cpp:731
bool bUsesBindless
Definition VulkanResources.h:216
TRefCountPtr< FVulkanShaderModule > GetOrCreateHandle()
Definition VulkanShaders.cpp:625
FORCEINLINE const FVulkanShaderHeader & GetCodeHeader() const
Definition VulkanResources.h:160
bool NeedsSpirvInputAttachmentPatching(const FGfxPipelineDesc &Desc) const
Definition VulkanShaders.cpp:597
static FCriticalSection VulkanShaderModulesMapCS
Definition VulkanResources.h:111
FSpirvCode GetSpirvCode() const
Definition VulkanResources.h:186
FVulkanShaderHeader CodeHeader
Definition VulkanResources.h:213
FVulkanDevice * Device
Definition VulkanResources.h:238
const FString & GetDebugName() const
Definition VulkanResources.h:149
VkPipeline PipelineLibrary
Definition VulkanResources.h:218
Definition VulkanResources.h:1124
virtual ~FVulkanStagingBuffer()
Definition VulkanUtil.cpp:579
uint64 GetGPUSizeBytes() const override
Definition VulkanResources.h:1138
virtual void Unlock() final override
Definition VulkanUtil.cpp:599
FVulkanStagingBuffer()
Definition VulkanResources.h:1127
Definition VulkanSubmission.h:54
Definition VulkanResources.h:604
VkFormat ViewFormat
Definition VulkanResources.h:798
VkImageLayout GetDefaultLayout() const
Definition VulkanResources.h:771
bool IsImageOwner() const
Definition VulkanResources.h:760
VULKANRHI_API void ErrorInvalidViewType() const
Definition VulkanTexture.cpp:161
TArray< VkSparseMemoryBind > CommitReservedResource(uint64 RequiredCommitSizeInBytes)
Definition VulkanTexture.cpp:919
VkImageViewType GetViewType() const
Definition VulkanResources.h:712
FTextureRHIRef AliasedTexture
Definition VulkanResources.h:636
VkImageTiling GetTiling() const
Definition VulkanResources.h:717
void Evict(FVulkanDevice &Device, const FVulkanContextArray &Contexts) override
Definition VulkanTexture.cpp:2546
void GetMipStride(uint32 MipIndex, uint32 &Stride)
Definition VulkanTexture.cpp:817
VkMemoryRequirements MemoryRequirements
Definition VulkanResources.h:801
VULKANRHI_API VkDeviceMemory GetAllocationHandle() const
Definition VulkanTexture.cpp:793
bool CanEvict() const override
Definition VulkanResources.h:647
VkFormat StorageFormat
Definition VulkanResources.h:795
void GetMipSize(uint32 MipIndex, uint64 &MipBytes)
Definition VulkanTexture.cpp:838
virtual FRHIDescriptorHandle GetDefaultBindlessHandle() const override final
Definition VulkanResources.h:657
FVulkanTexture * GetEvictableTexture() override
Definition VulkanResources.h:650
VkImageAspectFlags GetFullAspectMask() const
Definition VulkanResources.h:744
VkImage Image
Definition VulkanResources.h:791
VkImageUsageFlags ImageUsageFlags
Definition VulkanResources.h:792
void SetDefaultLayout(VkImageLayout InDefaultLayout)
Definition VulkanResources.h:776
bool GetTextureResourceInfo(FRHIResourceInfo &OutResourceInfo) const
Definition VulkanTexture.cpp:2593
void AliasTextureResources(FTextureRHIRef &SrcTextureRHI)
Definition VulkanTexture.cpp:2491
void * GetNativeResource() const override final
Definition VulkanResources.h:654
FVulkanDevice *const Device
Definition VulkanResources.h:790
virtual void UpdateLinkedViews(const FVulkanContextArray &Contexts) override
Definition VulkanTexture.cpp:2502
bool IsDepthOrStencilAspect() const
Definition VulkanResources.h:755
VkMemoryPropertyFlags MemProps
Definition VulkanResources.h:800
VULKANRHI_API uint64 GetAllocationOffset() const
Definition VulkanTexture.cpp:805
void * GetTextureBaseRHI() override final
Definition VulkanResources.h:655
void SetInitialImageState(FRHICommandListBase &RHICmdList, VkImageLayout InitialLayout, bool bClear, const FClearValueBinding &ClearValueBinding, bool bIsTransientResource)
Definition VulkanTexture.cpp:862
uint32 GetMemorySize() const
Definition VulkanResources.h:697
VkImageAspectFlags GetPartialAspectMask() const
Definition VulkanResources.h:750
virtual ~FVulkanTexture()
Definition VulkanTexture.cpp:2469
FVulkanView * DefaultView
Definition VulkanResources.h:629
FVulkanView * FindOrAddInternalView(const FVulkanTextureViewDesc &ViewDesc)
Definition VulkanTexture.cpp:2413
bool SupportsSampling() const
Definition VulkanResources.h:765
void UploadInitialData(FRHICommandListBase &RHICmdList, VulkanRHI::FStagingBuffer *UploadBuffer)
Definition VulkanTexture.cpp:1270
static void InternalLockWrite(FVulkanContextCommon &Context, FVulkanTexture *Surface, const VkBufferImageCopy &Region, VulkanRHI::FStagingBuffer *StagingBuffer)
Definition VulkanTexture.cpp:134
uint32 GetNumberOfArrayLevels() const
Definition VulkanResources.h:722
FVulkanView * PartialView
Definition VulkanResources.h:632
void InvalidateMappedMemory()
Definition VulkanTexture.cpp:770
const FVulkanCpuReadbackBuffer * GetCpuReadbackBuffer() const
Definition VulkanResources.h:786
EImageOwnerType ImageOwnerType
Definition VulkanResources.h:832
void DumpMemory(T Callback)
Definition VulkanResources.h:639
bool CanMove() const override
Definition VulkanResources.h:646
void HostUploadInitialData(FRHICommandListBase &RHICmdList, const uint8 *BulkData, uint32 BulkDataSize)
Definition VulkanTexture.cpp:1338
void DestroySurface()
Definition VulkanTexture.cpp:713
static void GenerateImageCreateInfo(FImageCreateInfo &OutImageCreateInfo, FVulkanDevice &InDevice, const FRHITextureDesc &InDesc, VkFormat *OutStorageFormat=nullptr, VkFormat *OutViewFormat=nullptr, bool bForceLinearTexture=false)
Definition VulkanTexture.cpp:228
void * GetMappedPointer()
Definition VulkanTexture.cpp:775
TStaticArray< ERHIAccess, 2 > AllPlanesTrackedAccess
Definition VulkanResources.h:806
void Move(FVulkanDevice &Device, const FVulkanContextArray &Contexts, VulkanRHI::FVulkanAllocation &NewAllocation) override
evict to system memory
Definition VulkanTexture.cpp:2521
FVulkanRHIExternalImageDeleteCallbackInfo ExternalImageDeleteCallbackInfo
Definition VulkanResources.h:803
Definition VulkanResources.h:1003
void UpdateView(const FVulkanContextArray &Contexts) override
Definition VulkanUAV.cpp:51
FVulkanViewableResource * GetBaseResource() const
Definition VulkanUAV.cpp:41
virtual FRHIDescriptorHandle GetBindlessHandle() const override
Definition VulkanResources.h:1010
Definition VulkanResources.h:72
FVertexDeclarationElementList Elements
Definition VulkanResources.h:74
uint32 Hash
Definition VulkanResources.h:75
virtual bool GetInitializer(FVertexDeclarationElementList &Out) final override
Definition VulkanResources.h:80
virtual uint32 GetPrecachePSOHash() const final override
Definition VulkanResources.h:88
uint32 HashNoStrides
Definition VulkanResources.h:76
static void EmptyCache()
Definition VulkanVertexDeclaration.cpp:55
Definition VulkanResources.h:432
FVulkanView & operator=(FVulkanView &&)=delete
FVulkanView(FVulkanView &&)=delete
VkDescriptorType GetDescriptorType() const
Definition VulkanResources.h:526
FVulkanView(FVulkanView const &)=delete
TVariant< FInvalidatedState, FTypedBufferView, FTextureView, FStructuredBufferView, FAccelerationStructureView > TStorage
Definition VulkanResources.h:473
void Invalidate()
Definition VulkanView.cpp:106
~FVulkanView()
Definition VulkanView.cpp:95
void InitAsStructuredBufferView(const FVulkanContextArray &Contexts, FVulkanBuffer *Buffer, uint32 InOffset, uint32 InSize)
Definition VulkanView.cpp:294
FTypedBufferView const & GetTypedBufferView() const
Definition VulkanResources.h:500
void UpdateTextureView(const FVulkanContextArray &Contexts, VkImage InImage, const FVulkanTextureViewDesc &ViewDesc)
Definition VulkanView.cpp:289
EType GetViewType() const
Definition VulkanResources.h:490
void InitAsTypedBufferView(const FVulkanContextArray &Contexts, FVulkanBuffer *Buffer, EPixelFormat Format, uint32 InOffset, uint32 InSize)
Definition VulkanView.cpp:140
FTextureView const & GetTextureView() const
Definition VulkanResources.h:501
void InitAsAccelerationStructureView(const FVulkanContextArray &Contexts, FVulkanBuffer *Buffer, uint32 Offset, uint32 Size)
Definition VulkanView.cpp:320
bool IsInitialized() const
Definition VulkanResources.h:495
void InitAsTextureView(const FVulkanContextArray &Contexts, VkImage InImage, const FVulkanTextureViewDesc &ViewDesc)
Definition VulkanView.cpp:191
FStructuredBufferView const & GetStructuredBufferView() const
Definition VulkanResources.h:502
FAccelerationStructureView const & GetAccelerationStructureView() const
Definition VulkanResources.h:503
EType
Definition VulkanResources.h:476
@ Texture
Definition VulkanResources.h:479
@ AccelerationStructure
Definition VulkanResources.h:481
@ TypedBuffer
Definition VulkanResources.h:478
@ StructuredBuffer
Definition VulkanResources.h:480
@ Null
Definition VulkanResources.h:477
FRHIDescriptorHandle GetBindlessHandle() const
Definition VulkanResources.h:521
void CreateTextureView(VkImage InImage, const FVulkanTextureViewDesc &ViewDesc)
Definition VulkanView.cpp:284
Definition VulkanResources.h:558
bool HasLinkedViews() const
Definition VulkanResources.h:565
virtual void UpdateLinkedViews(const FVulkanContextArray &Contexts)
Definition VulkanView.cpp:341
virtual ~FVulkanViewableResource()
Definition VulkanResources.h:560
Definition RefCounting.h:196
Definition ArrayView.h:139
UE_FORCEINLINE_HINT SizeType AddUninitialized()
Definition Array.h:1664
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
void Unlink()
Definition List.h:132
Definition UnrealString.h.inl:34
Definition RHICommandList.h:5170
Definition StaticArray.h:26
Definition UniquePtr.h:107
U & Get() UE_LIFETIMEBOUND
Definition TVariant.h:146
SIZE_T GetIndex() const
Definition TVariant.h:231
Definition VulkanResources.h:257
@ StaticFrequency
Definition VulkanResources.h:267
virtual uint32 GetRefCount() const override final
Definition VulkanResources.h:278
virtual FReturnedRefCountValue AddRef() const override final
Definition VulkanResources.h:270
virtual uint32 Release() const override final
Definition VulkanResources.h:274
Definition VulkanMemory.h:877
uint32 GetSize() const
Definition VulkanMemory.cpp:4275
Definition VulkanMemory.h:418
VkBuffer GetBufferHandle() const
Definition VulkanMemory.cpp:3866
uint32 Size
Definition VulkanMemory.h:434
uint32 Offset
Definition VulkanMemory.h:435
uint64 VulkanHandle
Definition VulkanMemory.h:432
uint8 bTransient
Definition VulkanMemory.h:441
EStage
Definition VulkanCommon.h:35
@ Geometry
Definition VulkanCommon.h:38
@ NumGraphicsStages
Definition VulkanCommon.h:42
@ Mesh
Definition VulkanCommon.h:39
@ Pixel
Definition VulkanCommon.h:37
@ Vertex
Definition VulkanCommon.h:36
@ Task
Definition VulkanCommon.h:40
Definition VulkanCommandBuffer.h:22
Definition RHIResources.h:246
Definition VulkanPipeline.h:127
Definition RHIResources.h:1417
Definition RHIDefinitions.h:1401
FName Name
Definition RHI.h:544
Definition RHIResources.h:1938
Definition RHIResources.h:1689
uint16 ArraySize
Definition RHIResources.h:1862
Definition RHITransientResourceAllocator.h:161
Definition RHIResources.h:2648
Definition RefCounting.h:29
Definition RHIResources.h:755
Definition VulkanResources.h:899
void * HostPtr
Definition VulkanResources.h:901
VkDeviceAddress DeviceAddress
Definition VulkanResources.h:902
VulkanRHI::FVulkanAllocation Alloc
Definition VulkanResources.h:900
Definition VulkanContext.h:517
Definition VulkanResources.h:406
VkBuffer Buffer
Definition VulkanResources.h:407
uint32 MipOffsets[MAX_TEXTURE_MIP_COUNT]
Definition VulkanResources.h:408
Definition VulkanBuffer.cpp:20
Definition IVulkanDynamicRHI.h:28
Definition VulkanResources.h:583
VulkanRHI::FVulkanAllocation Allocation
Definition VulkanResources.h:584
uint64 ResourceOffset
Definition VulkanResources.h:585
Definition VulkanResources.h:581
VkMemoryRequirements MemoryRequirements
Definition VulkanResources.h:588
uint64 LastBlockSize
Definition VulkanResources.h:589
uint32 BlockCount
Definition VulkanResources.h:590
TArray< FSparseAllocation > Allocations
Definition VulkanResources.h:587
uint32 NumCommittedTiles
Definition VulkanResources.h:591
Definition VulkanResources.h:413
uint32 ArraySliceIndex
Definition VulkanResources.h:420
VkSamplerYcbcrConversion SamplerYcbcrConversion
Definition VulkanResources.h:423
EPixelFormat UEFormat
Definition VulkanResources.h:416
bool bUseIdentitySwizzle
Definition VulkanResources.h:424
uint32 NumArraySlices
Definition VulkanResources.h:421
uint32 FirstMip
Definition VulkanResources.h:418
uint32 NumMips
Definition VulkanResources.h:419
VkFormat Format
Definition VulkanResources.h:417
VkImageAspectFlags AspectFlags
Definition VulkanResources.h:415
uint32 GetHash() const
Definition VulkanView.cpp:9
VkImageViewType ViewType
Definition VulkanResources.h:414
VkImageUsageFlags ImageUsageFlags
Definition VulkanResources.h:422
Definition VulkanResources.h:664
VkImageCompressionControlEXT CompressionControl
Definition VulkanResources.h:673
TArray< VkFormat, TInlineAllocator< 2 > > FormatsUsed
Definition VulkanResources.h:671
VkImageFormatListCreateInfoKHR ImageFormatListCreateInfo
Definition VulkanResources.h:667
VkExternalMemoryImageCreateInfoKHR ExternalMemImageCreateInfo
Definition VulkanResources.h:669
VkImageCreateInfo ImageCreateInfo
Definition VulkanResources.h:665
VkImageCompressionFixedRateFlagsEXT CompressionFixedRateFlags
Definition VulkanResources.h:672
Definition VulkanResources.h:456
VkAccelerationStructureKHR Handle
Definition VulkanResources.h:457
Definition VulkanResources.h:436
bool bInitialized
Definition VulkanResources.h:437
Definition VulkanResources.h:448
uint32 Size
Definition VulkanResources.h:452
uint32 HandleId
Definition VulkanResources.h:450
VkBuffer Buffer
Definition VulkanResources.h:449
uint32 Offset
Definition VulkanResources.h:451
Definition VulkanResources.h:461
VkImage Image
Definition VulkanResources.h:463
VkImageView View
Definition VulkanResources.h:462
uint32 ViewId
Definition VulkanResources.h:464
Definition VulkanResources.h:441
uint32 ViewId
Definition VulkanResources.h:443
bool bVolatile
Definition VulkanResources.h:444
VkBufferView View
Definition VulkanResources.h:442
static int32 Snprintf(CharType *Dest, int32 DestSize, const FmtType &Fmt, Types... Args)
Definition CString.h:581
FVulkanTaskShader TConcreteType
Definition VulkanResources.h:1188
FVulkanBlendState TConcreteType
Definition VulkanResources.h:1249
FVulkanBoundShaderState TConcreteType
Definition VulkanResources.h:1255
FVulkanBuffer TConcreteType
Definition VulkanResources.h:1218
FVulkanComputeShader TConcreteType
Definition VulkanResources.h:1203
FVulkanDepthStencilState TConcreteType
Definition VulkanResources.h:1244
FVulkanGPUFence TConcreteType
Definition VulkanResources.h:1267
FVulkanGeometryShader TConcreteType
Definition VulkanResources.h:1193
FVulkanMeshShader TConcreteType
Definition VulkanResources.h:1183
FVulkanPixelShader TConcreteType
Definition VulkanResources.h:1198
FVulkanRasterizerState TConcreteType
Definition VulkanResources.h:1239
FVulkanRayTracingGeometry TConcreteType
Definition VulkanResources.h:1299
FVulkanRayTracingPipelineState TConcreteType
Definition VulkanResources.h:1309
FVulkanRayTracingScene TConcreteType
Definition VulkanResources.h:1294
FVulkanRayTracingShader TConcreteType
Definition VulkanResources.h:1314
FVulkanRenderQuery TConcreteType
Definition VulkanResources.h:1208
FVulkanSamplerState TConcreteType
Definition VulkanResources.h:1234
FVulkanRayTracingShaderTable TConcreteType
Definition VulkanResources.h:1304
FVulkanShaderResourceView TConcreteType
Definition VulkanResources.h:1223
FVulkanStagingBuffer TConcreteType
Definition VulkanResources.h:1261
FVulkanUnorderedAccessView TConcreteType
Definition VulkanResources.h:1228
FVulkanVertexDeclaration TConcreteType
Definition VulkanResources.h:1173
FVulkanVertexShader TConcreteType
Definition VulkanResources.h:1178
Definition VulkanResources.h:1168