31 AnyFX::ShaderEffect* effect,
44 GPULang::Loader* loader,
uint Mask
a shader feature bit mask
Definition shaderfeature.h:31
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
Implements a shader effect (using AnyFX) in Vulkan.
Definition shader.h:38
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:1015
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:980
Util::Dictionary< CoreGraphics::ShaderFeature::Mask, CoreGraphics::ShaderProgramId > ProgramMap
Definition vkshader.h:85
@ Shader_SetupInfo
Definition vkshader.h:140
@ Shader_RuntimeInfo
Definition vkshader.h:141
@ Shader_Programs
Definition vkshader.h:142
@ Shader_ReflectionInfo
Definition vkshader.h:139
Ids::IdAllocator< VkReflectionInfo, VkShaderSetupInfo, VkShaderRuntimeInfo, Util::Array< CoreGraphics::ShaderProgramId > > ShaderAllocator
this member allocates shaders
Definition vkshader.h:151
Util::Dictionary< Util::StringAtom, VkDescriptorSetLayout > VkShaderLayoutCache
Definition vkshader.cc:21
Util::Dictionary< Util::StringAtom, VkDescriptorSet > VkShaderDescriptorSetCache
Definition vkshader.cc:23
const VkProgramReflectionInfo & ShaderGetProgramReflection(const CoreGraphics::ShaderProgramId shaderProgramId)
Use direct resource ids, not the State, Shader or Variable type ids.
Definition vkshader.cc:1025
void ShaderSetup(VkDevice dev, const Util::StringAtom &name, AnyFX::ShaderEffect *effect, 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)
create descriptor set layout
Definition vkshader.cc:86
Util::Dictionary< uint32_t, Util::Array< CoreGraphics::BufferId > > UniformBufferGroupMap
Definition vkshader.h:84
Util::Dictionary< Util::StringAtom, VkPipelineLayout > VkShaderPipelineCache
Definition vkshader.cc:22
Util::Dictionary< Util::StringAtom, CoreGraphics::BufferId > UniformBufferMap
Definition vkshader.h:83
ShaderAllocator shaderAlloc
Definition vkshader.cc:24
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:80
uint32_t index
Definition vkshader.h:79
VkPipelineLayout layout
Definition vkshader.h:73
IndexT slot
Definition vkshader.h:74
VkDescriptorSet set
Definition vkshader.h:72
Definition vkshaderprogram.h:54
Definition vkshader.h:124
uint32_t blockBinding
Definition vkshader.h:129
uint32_t blockSet
Definition vkshader.h:128
Util::StringAtom name
Definition vkshader.h:126
AnyFX::VariableType type
Definition vkshader.h:125
Util::StringAtom blockName
Definition vkshader.h:127
Definition vkshader.h:111
Util::Dictionary< Util::StringAtom, UniformBuffer > uniformBuffersByName
Definition vkshader.h:120
Util::Array< Variable > variables
Definition vkshader.h:132
Util::Array< Util::Array< UniformBuffer > > uniformBuffersPerSet
Definition vkshader.h:119
Util::Array< uint64_t > uniformBuffersMask
Definition vkshader.h:134
Util::Array< UniformBuffer > uniformBuffers
Definition vkshader.h:121
Util::Dictionary< Util::StringAtom, Variable > variablesByName
Definition vkshader.h:131
CoreGraphics::ShaderProgramId activeShaderProgram
Definition vkshader.h:89
CoreGraphics::ShaderFeature::Mask activeMask
Definition vkshader.h:88
ProgramMap programMap
Definition vkshader.h:90
Util::FixedArray< Util::Pair< uint32_t, CoreGraphics::ResourceTableLayoutId > > descriptorSetLayouts
Definition vkshader.h:106
Util::Set< CoreGraphics::SamplerId > immutableSamplers
Definition vkshader.h:103
UniformBufferMap uniformBufferMap
Definition vkshader.h:98
CoreGraphics::ResourcePipelineId pipelineLayout
Definition vkshader.h:101
Util::Dictionary< Util::StringAtom, uint32_t > resourceIndexMap
Definition vkshader.h:104
CoreGraphics::ShaderIdentifier::Code id
Definition vkshader.h:97
UniformBufferGroupMap uniformBufferGroupMap
Definition vkshader.h:99
Util::FixedArray< CoreGraphics::ResourcePipelinePushConstantRange > constantRangeLayout
Definition vkshader.h:102
Util::Dictionary< uint32_t, uint32_t > descriptorSetLayoutMap
Definition vkshader.h:107
Resources::ResourceName name
Definition vkshader.h:96
Util::Dictionary< Util::StringAtom, IndexT > constantBindings
Definition vkshader.h:105
VkDevice dev
Definition vkshader.h:95
int IndexT
Definition types.h:41