6#include <unordered_map>
8#include <unordered_set>
11#include "misc/Error.h"
12#include "render/general/resource/frame/FrameResourceManager.h"
13#include "shader/VulkanAlignmentConstants.hpp"
14#include "misc/StdHashes.hpp"
17#include "vulkan/vulkan.h"
24 enum class GlslResourceType {
50 std::unordered_map<uint32_t, DescriptorSetLayoutBindingInfo>
bindingInfo;
82 std::unordered_map<std::string, uint32_t, StdStringHash, std::equal_to<>>
resourceBindings;
108 static std::variant<Collected, Error>
125 static std::variant<Generated, Error>
139 static std::variant<Generated, Error>
153 static std::variant<std::pair<VkDescriptorSetLayoutBinding, VkDescriptorBindingFlags>,
Error>
155 uint32_t iBindingIndex,
157 bool bIsComputeShader);
Definition: DescriptorSetLayoutGenerator.h:33
static std::variant< std::pair< VkDescriptorSetLayoutBinding, VkDescriptorBindingFlags >, Error > generateLayoutBinding(uint32_t iBindingIndex, const Collected::DescriptorSetLayoutBindingInfo &bindingInfo, bool bIsComputeShader)
Definition: DescriptorSetLayoutGenerator.cpp:793
static std::variant< Collected, Error > collectInfoFromBytecode(void *pSpirvBytecode, size_t iSizeInBytes)
Definition: DescriptorSetLayoutGenerator.cpp:19
static std::variant< Generated, Error > generateCompute(VulkanRenderer *pRenderer, GlslShader *pComputeShader)
Definition: DescriptorSetLayoutGenerator.cpp:570
static std::variant< Generated, Error > generateGraphics(VulkanRenderer *pRenderer, GlslShader *pVertexShader, GlslShader *pFragmentShader)
Definition: DescriptorSetLayoutGenerator.cpp:179
static constexpr unsigned int getFrameResourceCount()
Definition: FrameResourceManager.h:74
Definition: GlslShader.h:20
Definition: VulkanRenderer.h:26
Definition: DescriptorSetLayoutGenerator.h:38
std::string sResourceName
Definition: DescriptorSetLayoutGenerator.h:43
GlslResourceType resourceType
Definition: DescriptorSetLayoutGenerator.h:40
Definition: DescriptorSetLayoutGenerator.h:36
std::unordered_map< uint32_t, DescriptorSetLayoutBindingInfo > bindingInfo
Definition: DescriptorSetLayoutGenerator.h:50
std::unordered_map< std::string, size_t > pushConstantUintFieldOffsets
Definition: DescriptorSetLayoutGenerator.h:60
Definition: DescriptorSetLayoutGenerator.h:64
VkDescriptorSetLayout pDescriptorSetLayout
Definition: DescriptorSetLayoutGenerator.h:66
std::unordered_map< std::string, uint32_t, StdStringHash, std::equal_to<> > resourceBindings
Definition: DescriptorSetLayoutGenerator.h:82
std::array< VkDescriptorSet, FrameResourceManager::getFrameResourceCount()> vDescriptorSets
Definition: DescriptorSetLayoutGenerator.h:72
std::unordered_map< std::string, size_t > pushConstantUintFieldOffsets
Definition: DescriptorSetLayoutGenerator.h:92
VkDescriptorPool pDescriptorPool
Definition: DescriptorSetLayoutGenerator.h:69