25 GPULang::Loader* loader,
IndexT Code
binary code for a ModelNodeType
Definition shaderidentifier.h:38
An ID allocator associates an id with a slice in an N number of arrays.
Definition idallocator.h:39
Nebula's dynamic array class.
Definition array.h:60
A collection of key/value pairs with quick value retrieval by key at roughly O(log n).
Definition dictionary.h:34
Implements a fixed size one-dimensional array.
Definition fixedarray.h:20
A collection of unique values with quick lookup.
Definition set.h:34
A StringAtom.
Definition stringatom.h:22
Util::StringAtom ResourceName
Definition resourceid.h:33
std::pair< A, B > Pair
Wrap std::pair.
Definition tupleutility.h:47
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
Util::String VkShaderCreateSignature(const VkDescriptorSetLayoutBinding &bind)
create descriptor layout signature
Definition vkshader.cc:647
void ShaderCleanup(VkDevice dev, Util::Set< CoreGraphics::SamplerId > &immutableSamplers, Util::FixedArray< Util::Pair< uint32_t, CoreGraphics::ResourceTableLayoutId > > &setLayouts, Util::Dictionary< Util::StringAtom, CoreGraphics::BufferId > &buffers, CoreGraphics::ResourcePipelineId &pipelineLayout)
cleanup shader
Definition vkshader.cc:612
Util::Dictionary< CoreGraphics::ShaderFeature::Mask, CoreGraphics::ShaderProgramId > ProgramMap
Definition vkshader.h:66
@ Shader_SetupInfo
Definition vkshader.h:118
@ Shader_RuntimeInfo
Definition vkshader.h:119
@ Shader_Programs
Definition vkshader.h:120
@ Shader_ReflectionInfo
Definition vkshader.h:117
void ShaderSetup(VkDevice dev, const Util::StringAtom &name, GPULang::Loader *loader, Util::FixedArray< CoreGraphics::ResourcePipelinePushConstantRange > &constantRange, Util::Set< CoreGraphics::SamplerId > &immutableSamplers, Util::FixedArray< Util::Pair< uint32_t, CoreGraphics::ResourceTableLayoutId > > &setLayouts, Util::Dictionary< uint32_t, uint32_t > &setLayoutMap, CoreGraphics::ResourcePipelineId &pipelineLayout, Util::Dictionary< Util::StringAtom, uint32_t > &resourceSlotMapping, Util::Dictionary< Util::StringAtom, IndexT > &constantBindings)
Definition vkshader.cc:209
Ids::IdAllocator< VkReflectionInfo, VkShaderSetupInfo, VkShaderRuntimeInfo, Util::Array< CoreGraphics::ShaderProgramId > > ShaderAllocator
this member allocates shaders
Definition vkshader.h:129
Util::Dictionary< Util::StringAtom, VkDescriptorSetLayout > VkShaderLayoutCache
Definition vkshader.cc:17
Util::Dictionary< Util::StringAtom, VkDescriptorSet > VkShaderDescriptorSetCache
Definition vkshader.cc:19
const VkProgramReflectionInfo & ShaderGetProgramReflection(const CoreGraphics::ShaderProgramId shaderProgramId)
Use direct resource ids, not the State, Shader or Variable type ids.
Definition vkshader.cc:657
Util::Dictionary< uint32_t, Util::Array< CoreGraphics::BufferId > > UniformBufferGroupMap
Definition vkshader.h:65
Util::Dictionary< Util::StringAtom, VkPipelineLayout > VkShaderPipelineCache
Definition vkshader.cc:18
Util::Dictionary< Util::StringAtom, CoreGraphics::BufferId > UniformBufferMap
Definition vkshader.h:64
ShaderAllocator shaderAlloc
Definition vkshader.cc:20
A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan)
A shader represents an entire shader resource, containing several stages and programs.
Definition resourcetable.h:399
Nebula's universal string class.
Definition String.cs:8
uint32_t offset
Definition vkshader.h:61
uint32_t index
Definition vkshader.h:60
VkPipelineLayout layout
Definition vkshader.h:54
IndexT slot
Definition vkshader.h:55
VkDescriptorSet set
Definition vkshader.h:53
Definition vkshaderprogram.h:53
Definition vkshader.h:103
uint32_t blockBinding
Definition vkshader.h:107
uint32_t blockSet
Definition vkshader.h:106
Util::StringAtom name
Definition vkshader.h:104
Util::StringAtom blockName
Definition vkshader.h:105
Util::Dictionary< Util::StringAtom, UniformBuffer > uniformBuffersByName
Definition vkshader.h:99
Util::Array< Variable > variables
Definition vkshader.h:110
Util::Array< Util::Array< UniformBuffer > > uniformBuffersPerSet
Definition vkshader.h:98
Util::Array< uint64_t > uniformBuffersMask
Definition vkshader.h:112
Util::Array< UniformBuffer > uniformBuffers
Definition vkshader.h:100
Util::Dictionary< Util::StringAtom, Variable > variablesByName
Definition vkshader.h:109
ProgramMap programMap
Definition vkshader.h:69
Util::FixedArray< Util::Pair< uint32_t, CoreGraphics::ResourceTableLayoutId > > descriptorSetLayouts
Definition vkshader.h:85
Util::Set< CoreGraphics::SamplerId > immutableSamplers
Definition vkshader.h:82
UniformBufferMap uniformBufferMap
Definition vkshader.h:77
CoreGraphics::ResourcePipelineId pipelineLayout
Definition vkshader.h:80
Util::Dictionary< Util::StringAtom, uint32_t > resourceIndexMap
Definition vkshader.h:83
CoreGraphics::ShaderIdentifier::Code id
Definition vkshader.h:76
UniformBufferGroupMap uniformBufferGroupMap
Definition vkshader.h:78
Util::FixedArray< CoreGraphics::ResourcePipelinePushConstantRange > constantRangeLayout
Definition vkshader.h:81
Util::Dictionary< uint32_t, uint32_t > descriptorSetLayoutMap
Definition vkshader.h:86
Resources::ResourceName name
Definition vkshader.h:75
Util::Dictionary< Util::StringAtom, IndexT > constantBindings
Definition vkshader.h:84
VkDevice dev
Definition vkshader.h:74
int IndexT
Definition types.h:41