UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
VulkanLayout.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "VulkanMemory.h"
7
8// Layout for a Pipeline, also includes DescriptorSets layout
10{
11public:
13 virtual ~FVulkanLayout();
14
19
24
25 bool HasDescriptors() const
26 {
27 return DescriptorSetLayout.GetLayouts().Num() > 0;
28 }
29
34
35 bool IsGfxLayout() const
36 {
37 return bIsGfxLayout;
38 }
39
40protected:
44
45 const bool bIsGfxLayout;
46 const bool bUsesBindless;
47
48 template <bool bIsCompute>
50 {
51 // Setting descriptor is only allowed prior to compiling the layout
53
55 }
56
58 {
59 // Setting descriptor is only allowed prior to compiling the layout
61
63 }
64
65 void Compile(FVulkanDescriptorSetLayoutMap& DSetLayoutMap);
66
68 friend class FVulkanGfxPipeline;
71};
#define check(expr)
Definition AssertionMacros.h:314
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition VulkanPipeline.h:705
void FinalizeBindings(const FVulkanDevice &Device, const FUniformBufferGatherInfo &UBGatherInfo, const TArrayView< FRHISamplerState * > &ImmutableSamplers, bool bUsesBindless)
Definition VulkanDescriptorSets.cpp:20
const TArray< FSetLayout > & GetLayouts() const
Definition VulkanDescriptorSets.h:100
void ProcessBindingsForStage(VkShaderStageFlagBits StageFlags, ShaderStage::EStage DescSetStage, const FVulkanShaderHeader &CodeHeader, FUniformBufferGatherInfo &OutUBGatherInfo) const
Definition VulkanDescriptorSets.cpp:14
Definition VulkanDescriptorSets.h:245
const TArray< VkDescriptorSetLayout > & GetHandles() const
Definition VulkanDescriptorSets.h:253
uint32 GetHash() const
Definition VulkanDescriptorSets.h:268
Definition VulkanDevice.h:279
Definition VulkanLayout.h:10
uint32 GetDescriptorSetLayoutHash() const
Definition VulkanLayout.h:30
const bool bUsesBindless
Definition VulkanLayout.h:46
friend class FVulkanGfxPipeline
Definition VulkanLayout.h:68
void ProcessBindingsForStage(VkShaderStageFlagBits StageFlags, ShaderStage::EStage DescSet, const FVulkanShaderHeader &CodeHeader, FUniformBufferGatherInfo &OutUBGatherInfo) const
Definition VulkanLayout.h:57
virtual ~FVulkanLayout()
Definition VulkanLayout.cpp:15
FVulkanDescriptorSetsLayout DescriptorSetLayout
Definition VulkanLayout.h:42
const bool bIsGfxLayout
Definition VulkanLayout.h:45
void FinalizeBindings(const FUniformBufferGatherInfo &UBGatherInfo)
Definition VulkanLayout.h:49
FVulkanDevice & Device
Definition VulkanLayout.h:41
bool IsGfxLayout() const
Definition VulkanLayout.h:35
bool HasDescriptors() const
Definition VulkanLayout.h:25
const FVulkanDescriptorSetsLayout & GetDescriptorSetsLayout() const
Definition VulkanLayout.h:15
VkPipelineLayout PipelineLayout
Definition VulkanLayout.h:43
VkPipelineLayout GetPipelineLayout() const
Definition VulkanLayout.h:20
Definition VulkanPipeline.h:492
Definition VulkanRayTracing.h:270
UE_REWRITE SizeType Num() const
Definition Array.h:1144
EStage
Definition VulkanCommon.h:35
Definition VulkanDescriptorSets.h:26
Definition VulkanShaderResources.h:20