51 if (Writer.bHasVolatileResources)
74 if (
Texture->SupportsSampling())
97 template<
bool bDynamic>
122 return Layouts[
DescriptorSet].LayoutBindings[BindingIndex].descriptorType;
142 VulkanRHI::vkCmdBindDescriptorSets(CmdBuffer,
198 check(BufferIndex == 0);
231 template<
bool bUseDynamicGlobalUBs>
249 check(BufferIndex == 0);
289 template<
bool bUseDynamicGlobalUBs>
296template <
bool bIsDynamic>
299 const int32 BindingIndex = 0;
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
TAutoConsoleVariable< int32 > GDynamicGlobalUBs
bool UseVulkanDescriptorCache()
Definition VulkanRHIPrivate.h:643
uint32 Release() const
Definition RHIResources.h:80
Definition VulkanContext.h:241
Definition VulkanPipelineState.h:24
uint32 UsedSetsMask
Definition VulkanPipelineState.h:165
const bool bUseBindless
Definition VulkanPipelineState.h:177
void MarkDirty(bool bDirty)
Definition VulkanPipelineState.h:59
TArray< FVulkanDescriptorSetWriter > DSWriter
Definition VulkanPipelineState.h:172
TArray< uint32 > DynamicOffsets
Definition VulkanPipelineState.h:168
FVulkanDSetsKey DSetsKey
Definition VulkanPipelineState.h:174
void SetUniformBuffer(uint8 DescriptorSet, uint32 BindingIndex, const FVulkanUniformBuffer *UniformBuffer)
Definition VulkanPipelineState.h:98
void SetInputAttachment(uint8 DescriptorSet, uint32 BindingIndex, const FVulkanView::FTextureView &TextureView, VkImageLayout Layout)
Definition VulkanPipelineState.h:91
virtual ~FVulkanCommonPipelineDescriptorState()
Definition VulkanPipelineState.h:33
void SetSRV(bool bCompute, uint8 DescriptorSet, uint32 BindingIndex, FVulkanShaderResourceView *SRV)
Definition VulkanPipelineState.cpp:625
void SetSamplerState(uint8 DescriptorSet, uint32 BindingIndex, const FVulkanSamplerState *Sampler)
Definition VulkanPipelineState.h:84
bool HasVolatileResources() const
Definition VulkanPipelineState.h:47
void SetUAV(bool bCompute, uint8 DescriptorSet, uint32 BindingIndex, FVulkanUnorderedAccessView *UAV)
Definition VulkanPipelineState.cpp:659
void SetUniformBufferDynamicOffset(uint8 DescriptorSet, uint32 BindingIndex, uint32 DynamicOffset)
Definition VulkanPipelineState.h:113
const FVulkanDescriptorSetsLayout * DescriptorSetsLayout
Definition VulkanPipelineState.h:158
void Reset()
Definition VulkanPipelineState.h:126
const FVulkanDSetsKey & GetDSetsKey() const
Definition VulkanPipelineState.h:35
VkDescriptorType GetDescriptorType(uint8 DescriptorSet, uint32 BindingIndex) const
Definition VulkanPipelineState.h:119
void CreateDescriptorWriteInfos()
Definition VulkanPipelineState.cpp:69
FVulkanDevice & Device
Definition VulkanPipelineState.h:152
TArray< VkDescriptorSet > DescriptorSetHandles
Definition VulkanPipelineState.h:161
FVulkanCommonPipelineDescriptorState(FVulkanDevice &InDevice, uint32 InMaxNumSets, bool InUsesBindless)
Definition VulkanPipelineState.h:26
void SetTexture(uint8 DescriptorSet, uint32 BindingIndex, const FVulkanTexture *Texture, VkImageLayout Layout)
Definition VulkanPipelineState.h:68
FVulkanDescriptorSetWriteContainer DSWriteContainer
Definition VulkanPipelineState.h:157
void Bind(VkCommandBuffer CmdBuffer, VkPipelineLayout PipelineLayout, VkPipelineBindPoint BindPoint)
Definition VulkanPipelineState.h:133
bool bIsResourcesDirty
Definition VulkanPipelineState.h:170
bool bIsDSetsKeyDirty
Definition VulkanPipelineState.h:175
const uint32 MaxNumSets
Definition VulkanPipelineState.h:154
Definition VulkanPipelineState.h:182
uint32 PackedUniformBuffersMask
Definition VulkanPipelineState.h:226
bool InternalUpdateDescriptorSets(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.cpp:183
void Reset()
Definition VulkanPipelineState.h:190
FPackedUniformBuffers PackedUniformBuffers
Definition VulkanPipelineState.h:225
void BindDescriptorSets(VkCommandBuffer CmdBuffer)
Definition VulkanPipelineState.h:219
bool UpdateDescriptorSets(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.h:202
void SetPackedGlobalShaderParameter(uint32 BufferIndex, uint32 ByteOffset, uint32 NumBytes, const void *NewValue)
Definition VulkanPipelineState.h:196
void UpdateBindlessDescriptors(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.cpp:233
FVulkanComputePipeline * ComputePipeline
Definition VulkanPipelineState.h:229
virtual ~FVulkanComputePipelineDescriptorState()
Definition VulkanPipelineState.h:185
uint32 PackedUniformBuffersDirty
Definition VulkanPipelineState.h:227
Definition VulkanPipeline.h:705
const FVulkanLayout & GetLayout() const
Definition VulkanPipeline.h:715
Definition VulkanDescriptorSets.h:23
Definition VulkanDescriptorSets.h:501
const TArray< FSetLayout > & GetLayouts() const
Definition VulkanDescriptorSets.h:100
Definition VulkanDescriptorSets.h:245
Definition VulkanDevice.h:279
Definition VulkanPipelineState.h:239
void BindDescriptorSets(VkCommandBuffer CmdBuffer)
Definition VulkanPipelineState.h:270
FVulkanGraphicsPipelineState * GfxPipeline
Definition VulkanPipelineState.h:287
bool InternalUpdateDescriptorSets(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.cpp:391
void SetPackedGlobalShaderParameter(uint8 Stage, uint32 BufferIndex, uint32 ByteOffset, uint32 NumBytes, const void *NewValue)
Definition VulkanPipelineState.h:247
void UpdateBindlessDescriptors(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.cpp:466
virtual ~FVulkanGraphicsPipelineDescriptorState()
Definition VulkanPipelineState.h:242
bool UpdateDescriptorSets(FVulkanCommandListContext &Context)
Definition VulkanPipelineState.h:253
TStaticArray< FPackedUniformBuffers, ShaderStage::NumGraphicsStages > PackedUniformBuffers
Definition VulkanPipelineState.h:283
void Reset()
Definition VulkanPipelineState.h:275
TStaticArray< uint32, ShaderStage::NumGraphicsStages > PackedUniformBuffersDirty
Definition VulkanPipelineState.h:285
TStaticArray< uint32, ShaderStage::NumGraphicsStages > PackedUniformBuffersMask
Definition VulkanPipelineState.h:284
Definition VulkanPipeline.h:735
const FVulkanLayout & GetLayout() const
Definition VulkanPipeline.h:745
VkPipelineLayout GetPipelineLayout() const
Definition VulkanLayout.h:20
Definition VulkanPendingState.h:21
Definition VulkanPendingState.h:121
Definition VulkanState.h:17
Definition VulkanResources.h:1020
Definition VulkanResources.h:604
Definition VulkanResources.h:1003
virtual int32 GetInt() const =0
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
Definition IConsoleManager.h:1792
void GenerateFromData(const void *InData, uint32 InSize)
Definition VulkanUtil.h:166
Definition StaticArray.h:26
Definition VulkanMemory.h:418
VkBuffer GetBufferHandle() const
Definition VulkanMemory.cpp:3866
uint32 HandleId
Definition VulkanMemory.h:433
static UE_FORCEINLINE_HINT void * Memcpy(void *Dest, const void *Src, SIZE_T Count)
Definition UnrealMemory.h:160
Definition VulkanDescriptorSets.h:486
TArray< FVulkanHashableDescriptorInfo > HashableDescriptorInfo
Definition VulkanDescriptorSets.h:487
Definition VulkanResources.h:461
Definition VulkanDescriptorSets.h:456