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

#include <VulkanPipeline.h>

+ Inheritance diagram for FVulkanGraphicsPipelineState:

Public Member Functions

 FVulkanGraphicsPipelineState (FVulkanDevice *Device, const FGraphicsPipelineStateInitializer &PSOInitializer, const FGfxPipelineDesc &Desc, FVulkanPSOKey *Key)
 
 ~FVulkanGraphicsPipelineState ()
 
const FVulkanVertexInputStateInfoGetVertexInputState () const
 
const FVulkanLayoutGetLayout () const
 
void Bind (VkCommandBuffer CmdBuffer)
 
const uint64 GetShaderKey (EShaderFrequency Frequency) const
 
const FVulkanShaderGetVulkanShader (EShaderFrequency Frequency) const
 
VkPipeline GetVulkanPipeline () const
 
FRHIGraphicsShaderGetShader (EShaderFrequency Frequency) const override
 
void DeleteVkPipeline (bool bImmediate)
 
void GetOrCreateShaderModules (TRefCountPtr< FVulkanShaderModule >(&ShaderModulesOUT)[ShaderStage::NumGraphicsStages], FVulkanShader *const *Shaders)
 
FVulkanShader::FSpirvCode GetPatchedSpirvCode (FVulkanShader *Shader)
 
void PurgeShaderModules (FVulkanShader *const *Shaders)
 
bool UsesBindless () const
 
- Public Member Functions inherited from FRHIGraphicsPipelineState
 FRHIGraphicsPipelineState ()
 
void SetSortKey (uint64 InSortKey)
 
uint64 GetSortKey () 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 Attributes

bool bHasInputAttachments = false
 
bool bIsRegistered
 
bool bUsesBindless = false
 
uint64 ShaderKeys [ShaderStage::NumGraphicsStages]
 
TEnumAsByte< EPrimitiveTypePrimitiveType
 
VkPipeline VulkanPipeline
 
FVulkanVertexInputStateInfo VertexInputState
 
FVulkanLayoutLayout
 
FVulkanDeviceDevice
 
const FGfxPipelineDesc Desc
 
FVulkanShaderVulkanShaders [ShaderStage::NumGraphicsStages]
 
const FVulkanRenderPassRenderPass
 
FVulkanGraphicsPipelineStateLRUNodeLRUNode = nullptr
 
uint32 LRUFrame = UINT32_MAX
 
uint32 PipelineCacheSize = UINT32_MAX
 
uint64 PrecacheKey
 
FVulkanPSOKey VulkanKey
 
VulkanResourceFrameCounter FrameCounter
 

Additional Inherited Members

- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 

Constructor & Destructor Documentation

◆ FVulkanGraphicsPipelineState()

FVulkanGraphicsPipelineState::FVulkanGraphicsPipelineState ( FVulkanDevice Device,
const FGraphicsPipelineStateInitializer PSOInitializer,
const FGfxPipelineDesc Desc,
FVulkanPSOKey Key 
)

◆ ~FVulkanGraphicsPipelineState()

FVulkanGraphicsPipelineState::~FVulkanGraphicsPipelineState ( )

Member Function Documentation

◆ Bind()

void FVulkanGraphicsPipelineState::Bind ( VkCommandBuffer  CmdBuffer)
inline

◆ DeleteVkPipeline()

void FVulkanGraphicsPipelineState::DeleteVkPipeline ( bool  bImmediate)

◆ GetLayout()

const FVulkanLayout & FVulkanGraphicsPipelineState::GetLayout ( ) const
inline

◆ GetOrCreateShaderModules()

void FVulkanGraphicsPipelineState::GetOrCreateShaderModules ( TRefCountPtr< FVulkanShaderModule >(&)  ShaderModulesOUT[ShaderStage::NumGraphicsStages],
FVulkanShader *const *  Shaders 
)

◆ GetPatchedSpirvCode()

FVulkanShader::FSpirvCode FVulkanGraphicsPipelineState::GetPatchedSpirvCode ( FVulkanShader Shader)

◆ GetShader()

FRHIGraphicsShader * FVulkanGraphicsPipelineState::GetShader ( EShaderFrequency  Frequency) const
inlineoverridevirtual

◆ GetShaderKey()

const uint64 FVulkanGraphicsPipelineState::GetShaderKey ( EShaderFrequency  Frequency) const
inline

◆ GetVertexInputState()

const FVulkanVertexInputStateInfo & FVulkanGraphicsPipelineState::GetVertexInputState ( ) const
inline

◆ GetVulkanPipeline()

VkPipeline FVulkanGraphicsPipelineState::GetVulkanPipeline ( ) const
inline

◆ GetVulkanShader()

const FVulkanShader * FVulkanGraphicsPipelineState::GetVulkanShader ( EShaderFrequency  Frequency) const
inline

◆ PurgeShaderModules()

void FVulkanGraphicsPipelineState::PurgeShaderModules ( FVulkanShader *const *  Shaders)

◆ UsesBindless()

bool FVulkanGraphicsPipelineState::UsesBindless ( ) const
inline

Member Data Documentation

◆ bHasInputAttachments

bool FVulkanGraphicsPipelineState::bHasInputAttachments = false

◆ bIsRegistered

bool FVulkanGraphicsPipelineState::bIsRegistered

◆ bUsesBindless

bool FVulkanGraphicsPipelineState::bUsesBindless = false

◆ Desc

const FGfxPipelineDesc FVulkanGraphicsPipelineState::Desc

◆ Device

FVulkanDevice* FVulkanGraphicsPipelineState::Device

◆ FrameCounter

VulkanResourceFrameCounter FVulkanGraphicsPipelineState::FrameCounter

◆ Layout

FVulkanLayout* FVulkanGraphicsPipelineState::Layout

◆ LRUFrame

uint32 FVulkanGraphicsPipelineState::LRUFrame = UINT32_MAX

◆ LRUNode

FVulkanGraphicsPipelineStateLRUNode* FVulkanGraphicsPipelineState::LRUNode = nullptr

◆ PipelineCacheSize

uint32 FVulkanGraphicsPipelineState::PipelineCacheSize = UINT32_MAX

◆ PrecacheKey

uint64 FVulkanGraphicsPipelineState::PrecacheKey

◆ PrimitiveType

TEnumAsByte<EPrimitiveType> FVulkanGraphicsPipelineState::PrimitiveType

◆ RenderPass

const FVulkanRenderPass* FVulkanGraphicsPipelineState::RenderPass

◆ ShaderKeys

uint64 FVulkanGraphicsPipelineState::ShaderKeys[ShaderStage::NumGraphicsStages]

◆ VertexInputState

FVulkanVertexInputStateInfo FVulkanGraphicsPipelineState::VertexInputState

◆ VulkanKey

FVulkanPSOKey FVulkanGraphicsPipelineState::VulkanKey

◆ VulkanPipeline

VkPipeline FVulkanGraphicsPipelineState::VulkanPipeline

◆ VulkanShaders

FVulkanShader* FVulkanGraphicsPipelineState::VulkanShaders[ShaderStage::NumGraphicsStages]

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