UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FVulkanTexture Class Reference

#include <VulkanResources.h>

+ Inheritance diagram for FVulkanTexture:

Classes

struct  FImageCreateInfo
 

Public Member Functions

 FVulkanTexture (FVulkanDevice &InDevice, const FRHITextureCreateDesc &InCreateDesc, const FRHITransientHeapAllocation *InTransientHeapAllocation)
 
 FVulkanTexture (FVulkanDevice &InDevice, const FRHITextureCreateDesc &InCreateDesc, VkImage InImage, const FVulkanRHIExternalImageDeleteCallbackInfo &InExternalImageDeleteCallbackInfo)
 
 FVulkanTexture (FVulkanDevice &InDevice, const FRHITextureCreateDesc &InCreateDesc, FTextureRHIRef &SrcTextureRHI)
 
virtual ~FVulkanTexture ()
 
void AliasTextureResources (FTextureRHIRef &SrcTextureRHI)
 
void UploadInitialData (FRHICommandListBase &RHICmdList, VulkanRHI::FStagingBuffer *UploadBuffer)
 
void HostUploadInitialData (FRHICommandListBase &RHICmdList, const uint8 *BulkData, uint32 BulkDataSize)
 
FVulkanViewFindOrAddInternalView (const FVulkanTextureViewDesc &ViewDesc)
 
template<typename T >
void DumpMemory (T Callback)
 
bool CanMove () const override
 
bool CanEvict () const override
 
void Evict (FVulkanDevice &Device, const FVulkanContextArray &Contexts) override
 
void Move (FVulkanDevice &Device, const FVulkanContextArray &Contexts, VulkanRHI::FVulkanAllocation &NewAllocation) override
 evict to system memory
 
FVulkanTextureGetEvictableTexture () override
 
bool GetTextureResourceInfo (FRHIResourceInfo &OutResourceInfo) const
 
voidGetNativeResource () const override final
 
voidGetTextureBaseRHI () override final
 
virtual FRHIDescriptorHandle GetDefaultBindlessHandle () const override final
 
void DestroySurface ()
 
void InvalidateMappedMemory ()
 
voidGetMappedPointer ()
 
uint32 GetMemorySize () const
 
void GetMipStride (uint32 MipIndex, uint32 &Stride)
 
void GetMipSize (uint32 MipIndex, uint64 &MipBytes)
 
VkImageViewType GetViewType () const
 
VkImageTiling GetTiling () const
 
uint32 GetNumberOfArrayLevels () const
 
VULKANRHI_API void ErrorInvalidViewType () const
 
VkImageAspectFlags GetFullAspectMask () const
 
VkImageAspectFlags GetPartialAspectMask () const
 
bool IsDepthOrStencilAspect () const
 
bool IsImageOwner () const
 
bool SupportsSampling () const
 
VkImageLayout GetDefaultLayout () const
 
void SetDefaultLayout (VkImageLayout InDefaultLayout)
 
VULKANRHI_API VkDeviceMemory GetAllocationHandle () const
 
VULKANRHI_API uint64 GetAllocationOffset () const
 
const FVulkanCpuReadbackBufferGetCpuReadbackBuffer () const
 
virtual void UpdateLinkedViews (const FVulkanContextArray &Contexts) override
 
void SetInitialImageState (FRHICommandListBase &RHICmdList, VkImageLayout InitialLayout, bool bClear, const FClearValueBinding &ClearValueBinding, bool bIsTransientResource)
 
TArray< VkSparseMemoryBindCommitReservedResource (uint64 RequiredCommitSizeInBytes)
 
- Public Member Functions inherited from FRHITexture
virtual const FRHITextureDescGetDesc () const
 
virtual class FRHITextureReferenceGetTextureReference ()
 
virtual voidGetNativeShaderResourceView () const
 
virtual void GetWriteMaskProperties (void *&OutData, uint32 &OutSize)
 
FIntVector GetSizeXYZ () const
 
FIntVector GetMipDimensions (uint8 MipIndex) const
 
bool IsMultisampled () const
 
bool HasClearValue () const
 
FLinearColor GetClearColor () const
 
void GetDepthStencilClearValue (float &OutDepth, uint32 &OutStencil) const
 
float GetDepthClearValue () const
 
uint32 GetStencilClearValue () const
 
void SetLastRenderTime (float InLastRenderTime)
 
double GetLastRenderTime () const
 
RHI_API void SetName (FName InName)
 
FRHITextureGetTexture2D ()
 
FRHITextureGetTexture2DArray ()
 
FRHITextureGetTexture3D ()
 
FRHITextureGetTextureCube ()
 
uint32 GetSizeX () const
 
uint32 GetSizeY () const
 
FIntPoint GetSizeXY () const
 
uint32 GetSizeZ () const
 
uint32 GetNumMips () const
 
EPixelFormat GetFormat () const
 
ETextureCreateFlags GetFlags () const
 
uint32 GetNumSamples () const
 
const FClearValueBinding GetClearBinding () const
 
uint32 GetSize () const
 
- Public Member Functions inherited from FRHIViewableResource
ERHIAccess GetTrackedAccess_Unsafe () const
 
FName GetName () const
 
- Public Member Functions inherited from FRHIResource
RHI_API FRHIResource (ERHIResourceType InResourceType)
 
uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
bool IsValid () const
 
void DisableLifetimeExtension ()
 
ERHIResourceType GetType () const
 
FName GetOwnerName () const
 
void SetOwnerName (FName InOwnerName)
 
- Public Member Functions inherited from FVulkanViewableResource
virtual ~FVulkanViewableResource ()
 
bool HasLinkedViews () const
 

Static Public Member Functions

static void GenerateImageCreateInfo (FImageCreateInfo &OutImageCreateInfo, FVulkanDevice &InDevice, const FRHITextureDesc &InDesc, VkFormat *OutStorageFormat=nullptr, VkFormat *OutViewFormat=nullptr, bool bForceLinearTexture=false)
 
static void InternalLockWrite (FVulkanContextCommon &Context, FVulkanTexture *Surface, const VkBufferImageCopy &Region, VulkanRHI::FStagingBuffer *StagingBuffer)
 

Public Attributes

FVulkanViewDefaultView = nullptr
 
FVulkanViewPartialView = nullptr
 
FTextureRHIRef AliasedTexture
 
FVulkanDevice *const Device
 
VkImage Image = VK_NULL_HANDLE
 
VkImageUsageFlags ImageUsageFlags = 0
 
VkFormat StorageFormat = VK_FORMAT_UNDEFINED
 
VkFormat ViewFormat = VK_FORMAT_UNDEFINED
 
VkMemoryPropertyFlags MemProps = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
 
VkMemoryRequirements MemoryRequirements
 
FVulkanRHIExternalImageDeleteCallbackInfo ExternalImageDeleteCallbackInfo
 
TStaticArray< ERHIAccess, 2 > AllPlanesTrackedAccess { InPlace, ERHIAccess::Unknown }
 

Protected Attributes

EImageOwnerType ImageOwnerType
 
- Protected Attributes inherited from FRHIViewableResource
FName Name
 

Additional Inherited Members

- Protected Member Functions inherited from FRHITexture
 FRHITexture ()=delete
 
RHI_API FRHITexture (const FRHITextureCreateDesc &CreateDesc)
 
RHI_API FRHITexture (ERHIResourceType InResourceType)
 
- Protected Member Functions inherited from FRHIViewableResource
 FRHIViewableResource (ERHIResourceType InResourceType, ERHIAccess InAccess, const TCHAR *InName, FName InOwnerName)
 
virtual void SetTrackedAccessFromContext (FRHITrackedAccess InTrackedAccess)
 
void TakeOwnership (FRHIViewableResource &Other)
 
void ReleaseOwnership ()
 
- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 

Constructor & Destructor Documentation

◆ FVulkanTexture() [1/3]

FVulkanTexture::FVulkanTexture ( FVulkanDevice InDevice,
const FRHITextureCreateDesc InCreateDesc,
const FRHITransientHeapAllocation InTransientHeapAllocation 
)

◆ FVulkanTexture() [2/3]

FVulkanTexture::FVulkanTexture ( FVulkanDevice InDevice,
const FRHITextureCreateDesc InCreateDesc,
VkImage  InImage,
const FVulkanRHIExternalImageDeleteCallbackInfo InExternalImageDeleteCallbackInfo 
)

◆ FVulkanTexture() [3/3]

FVulkanTexture::FVulkanTexture ( FVulkanDevice InDevice,
const FRHITextureCreateDesc InCreateDesc,
FTextureRHIRef SrcTextureRHI 
)

◆ ~FVulkanTexture()

FVulkanTexture::~FVulkanTexture ( )
virtual

Member Function Documentation

◆ AliasTextureResources()

void FVulkanTexture::AliasTextureResources ( FTextureRHIRef SrcTextureRHI)

◆ CanEvict()

bool FVulkanTexture::CanEvict ( ) const
inlineoverridevirtual

Reimplemented from FVulkanEvictable.

◆ CanMove()

bool FVulkanTexture::CanMove ( ) const
inlineoverridevirtual

Reimplemented from FVulkanEvictable.

◆ CommitReservedResource()

TArray< VkSparseMemoryBind > FVulkanTexture::CommitReservedResource ( uint64  RequiredCommitSizeInBytes)

◆ DestroySurface()

void FVulkanTexture::DestroySurface ( )

◆ DumpMemory()

template<typename T >
void FVulkanTexture::DumpMemory ( Callback)
inline

◆ ErrorInvalidViewType()

void FVulkanTexture::ErrorInvalidViewType ( ) const

◆ Evict()

void FVulkanTexture::Evict ( FVulkanDevice Device,
const FVulkanContextArray Contexts 
)
overridevirtual

Reimplemented from FVulkanEvictable.

◆ FindOrAddInternalView()

FVulkanView * FVulkanTexture::FindOrAddInternalView ( const FVulkanTextureViewDesc ViewDesc)

◆ GenerateImageCreateInfo()

void FVulkanTexture::GenerateImageCreateInfo ( FImageCreateInfo OutImageCreateInfo,
FVulkanDevice InDevice,
const FRHITextureDesc InDesc,
VkFormat OutStorageFormat = nullptr,
VkFormat OutViewFormat = nullptr,
bool  bForceLinearTexture = false 
)
static

◆ GetAllocationHandle()

VkDeviceMemory FVulkanTexture::GetAllocationHandle ( ) const

◆ GetAllocationOffset()

uint64 FVulkanTexture::GetAllocationOffset ( ) const

◆ GetCpuReadbackBuffer()

const FVulkanCpuReadbackBuffer * FVulkanTexture::GetCpuReadbackBuffer ( ) const
inline

◆ GetDefaultBindlessHandle()

virtual FRHIDescriptorHandle FVulkanTexture::GetDefaultBindlessHandle ( ) const
inlinefinaloverridevirtual

Reimplemented from FRHITexture.

◆ GetDefaultLayout()

VkImageLayout FVulkanTexture::GetDefaultLayout ( ) const
inline

◆ GetEvictableTexture()

FVulkanTexture * FVulkanTexture::GetEvictableTexture ( )
inlineoverridevirtual

Reimplemented from FVulkanEvictable.

◆ GetFullAspectMask()

VkImageAspectFlags FVulkanTexture::GetFullAspectMask ( ) const
inline

◆ GetMappedPointer()

void * FVulkanTexture::GetMappedPointer ( )

◆ GetMemorySize()

uint32 FVulkanTexture::GetMemorySize ( ) const
inline

Returns how much memory is used by the surface

◆ GetMipSize()

void FVulkanTexture::GetMipSize ( uint32  MipIndex,
uint64 MipBytes 
)

Returns how much memory a single mip uses.

◆ GetMipStride()

void FVulkanTexture::GetMipStride ( uint32  MipIndex,
uint32 Stride 
)

Returns one of the texture's mip-maps stride.

◆ GetNativeResource()

void * FVulkanTexture::GetNativeResource ( ) const
inlinefinaloverridevirtual

Returns access to the platform-specific native resource pointer. This is designed to be used to provide plugins with access to the underlying resource and should be used very carefully or not at all.

Returns
The pointer to the native resource or NULL if it not initialized or not supported for this resource type for some reason

Reimplemented from FRHITexture.

◆ GetNumberOfArrayLevels()

uint32 FVulkanTexture::GetNumberOfArrayLevels ( ) const
inline

◆ GetPartialAspectMask()

VkImageAspectFlags FVulkanTexture::GetPartialAspectMask ( ) const
inline

◆ GetTextureBaseRHI()

void * FVulkanTexture::GetTextureBaseRHI ( )
inlinefinaloverridevirtual

Returns access to the platform-specific RHI texture baseclass. This is designed to provide the RHI with fast access to its base classes in the face of multiple inheritance.

Returns
The pointer to the platform-specific RHI texture baseclass or NULL if it not initialized or not supported for this RHI

Reimplemented from FRHITexture.

◆ GetTextureResourceInfo()

bool FVulkanTexture::GetTextureResourceInfo ( FRHIResourceInfo OutResourceInfo) const

◆ GetTiling()

VkImageTiling FVulkanTexture::GetTiling ( ) const
inline

◆ GetViewType()

VkImageViewType FVulkanTexture::GetViewType ( ) const
inline

◆ HostUploadInitialData()

void FVulkanTexture::HostUploadInitialData ( FRHICommandListBase RHICmdList,
const uint8 BulkData,
uint32  BulkDataSize 
)

◆ InternalLockWrite()

void FVulkanTexture::InternalLockWrite ( FVulkanContextCommon Context,
FVulkanTexture Surface,
const VkBufferImageCopy Region,
VulkanRHI::FStagingBuffer StagingBuffer 
)
static

◆ InvalidateMappedMemory()

void FVulkanTexture::InvalidateMappedMemory ( )

◆ IsDepthOrStencilAspect()

bool FVulkanTexture::IsDepthOrStencilAspect ( ) const
inline

◆ IsImageOwner()

bool FVulkanTexture::IsImageOwner ( ) const
inline

◆ Move()

void FVulkanTexture::Move ( FVulkanDevice Device,
const FVulkanContextArray Contexts,
VulkanRHI::FVulkanAllocation NewAllocation 
)
overridevirtual

evict to system memory

Reimplemented from FVulkanEvictable.

◆ SetDefaultLayout()

void FVulkanTexture::SetDefaultLayout ( VkImageLayout  InDefaultLayout)
inline

◆ SetInitialImageState()

void FVulkanTexture::SetInitialImageState ( FRHICommandListBase RHICmdList,
VkImageLayout  InitialLayout,
bool  bClear,
const FClearValueBinding ClearValueBinding,
bool  bIsTransientResource 
)

◆ SupportsSampling()

bool FVulkanTexture::SupportsSampling ( ) const
inline

◆ UpdateLinkedViews()

void FVulkanTexture::UpdateLinkedViews ( const FVulkanContextArray Contexts)
overridevirtual

Reimplemented from FVulkanViewableResource.

◆ UploadInitialData()

void FVulkanTexture::UploadInitialData ( FRHICommandListBase RHICmdList,
VulkanRHI::FStagingBuffer UploadBuffer 
)

Member Data Documentation

◆ AliasedTexture

FTextureRHIRef FVulkanTexture::AliasedTexture

◆ AllPlanesTrackedAccess

TStaticArray<ERHIAccess, 2> FVulkanTexture::AllPlanesTrackedAccess { InPlace, ERHIAccess::Unknown }

◆ DefaultView

FVulkanView* FVulkanTexture::DefaultView = nullptr

◆ Device

FVulkanDevice* const FVulkanTexture::Device

◆ ExternalImageDeleteCallbackInfo

FVulkanRHIExternalImageDeleteCallbackInfo FVulkanTexture::ExternalImageDeleteCallbackInfo

◆ Image

VkImage FVulkanTexture::Image = VK_NULL_HANDLE

◆ ImageOwnerType

EImageOwnerType FVulkanTexture::ImageOwnerType
protected

◆ ImageUsageFlags

VkImageUsageFlags FVulkanTexture::ImageUsageFlags = 0

◆ MemoryRequirements

VkMemoryRequirements FVulkanTexture::MemoryRequirements

◆ MemProps

◆ PartialView

FVulkanView* FVulkanTexture::PartialView = nullptr

◆ StorageFormat

VkFormat FVulkanTexture::StorageFormat = VK_FORMAT_UNDEFINED

◆ ViewFormat

VkFormat FVulkanTexture::ViewFormat = VK_FORMAT_UNDEFINED

The documentation for this class was generated from the following files: