11#include "lowlevel/vk/vkprogram.h"
37 VkPipelineTessellationStateCreateInfo
tessInfo;
41 VkShaderModule
vs,
hs,
ds,
gs,
ps,
cs,
ts,
ms,
rg,
ra,
rc,
rm,
ri,
ca;
65 VkShaderProgramSetupInfo,
66 VkProgramReflectionInfo,
67 VkShaderProgramRuntimeInfo
uint Mask
a shader feature bit mask
Definition shaderfeature.h:31
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 StringAtom.
Definition stringatom.h:22
ShaderPipeline
Definition config.h:111
uint32_t Id24
Definition id.h:139
Vulkan implementation of GPU acceleration structure.
Definition vkaccelerationstructure.cc:15
void VkShaderProgramSetup(const Ids::Id24 id, const Resources::ResourceName &shaderName, AnyFX::VkProgram *program, const CoreGraphics::ResourcePipelineId &pipelineLayout)
setup from AnyFX program
Definition vkshaderprogram.cc:23
VkPipeline VkShaderProgramGetRaytracingLibrary(const CoreGraphics::ShaderProgramId id)
Get raytracing library pipepline.
Definition vkshaderprogram.cc:450
Ids::IdAllocator< VkShaderProgramSetupInfo, VkProgramReflectionInfo, VkShaderProgramRuntimeInfo > ShaderProgramAllocator
Definition vkshaderprogram.h:68
@ ShaderProgram_SetupInfo
Definition vkshaderprogram.h:60
@ ShaderProgram_RuntimeInfo
Definition vkshaderprogram.h:62
@ ShaderProgram_ReflectionInfo
Definition vkshaderprogram.h:61
ShaderProgramAllocator shaderProgramAlloc
Definition vkshaderprogram.cc:18
VkPipelineLayout VkShaderProgramGetLayout(const CoreGraphics::ShaderProgramId id)
Get resource layout of shader program.
Definition vkshaderprogram.cc:460
void VkShaderProgramCreateShader(const VkDevice dev, VkShaderModule *shader, unsigned binarySize, char *binary)
create shader object
Definition vkshaderprogram.cc:87
void VkShaderProgramSetupAsGraphics(AnyFX::VkProgram *program, const Resources::ResourceName &shaderName, VkShaderProgramRuntimeInfo &runtime)
create this program as a graphics program
Definition vkshaderprogram.cc:110
void VkShaderProgramDiscard(VkShaderProgramSetupInfo &info, VkShaderProgramRuntimeInfo &rt, VkPipeline &pipeline)
discard variation
Definition vkshaderprogram.cc:481
void VkShaderProgramGetRaytracingVaryingSizes(const CoreGraphics::ShaderProgramId id, uint &rayPayloadSize, uint &hitAttributeSize)
Get ray payload and hit attribute sizes.
Definition vkshaderprogram.cc:470
void VkShaderProgramSetupAsCompute(VkShaderProgramSetupInfo &setup, VkShaderProgramRuntimeInfo &runtime)
create this program as a compute program (can be done immediately)
Definition vkshaderprogram.cc:360
void VkShaderProgramSetupAsRaytracing(AnyFX::VkProgram *program, const Resources::ResourceName &shaderName, VkShaderProgramSetupInfo &setup, VkShaderProgramRuntimeInfo &runtime)
create this program as a compute program (can be done immediately)
Definition vkshaderprogram.cc:396
uint32_t UniqueIdCounter
Definition vkshaderprogram.cc:17
A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan)
Definition resourcetable.h:402
Nebula's universal string class.
Definition string.h:50
Definition vkshaderprogram.h:53
Util::StringAtom name
Definition vkshaderprogram.h:55
Util::StackArray< uint32_t, 8 > vsInputSlots
Definition vkshaderprogram.h:54
Definition vkshaderprogram.h:28
VkShaderModule ra
Definition vkshaderprogram.h:41
VkShaderModule gs
Definition vkshaderprogram.h:41
uint hitAttributeSize
Definition vkshaderprogram.h:44
VkPipelineRasterizationStateCreateInfo rasterizerInfo
Definition vkshaderprogram.h:31
VkShaderModule rg
Definition vkshaderprogram.h:41
VkShaderModule cs
Definition vkshaderprogram.h:41
uint rayPayloadSize
Definition vkshaderprogram.h:44
VkPipelineShaderStageCreateInfo graphicsShaderInfos[5]
Definition vkshaderprogram.h:38
VkShaderModule rc
Definition vkshaderprogram.h:41
uint32_t stageCount
Definition vkshaderprogram.h:29
uint stencilFrontRef
Definition vkshaderprogram.h:42
uint stencilBackRef
Definition vkshaderprogram.h:42
VkPipelineShaderStageCreateInfo raytracingShaderInfos[6]
Definition vkshaderprogram.h:40
VkShaderModule ms
Definition vkshaderprogram.h:41
VkPipelineDepthStencilStateCreateInfo depthStencilInfo
Definition vkshaderprogram.h:33
uint stencilReadMask
Definition vkshaderprogram.h:42
CoreGraphics::ShaderPipeline type
Definition vkshaderprogram.h:46
VkPipelineMultisampleStateCreateInfo multisampleInfo
Definition vkshaderprogram.h:32
VkPipelineColorBlendStateCreateInfo colorBlendInfo
Definition vkshaderprogram.h:34
VkShaderModule ps
Definition vkshaderprogram.h:41
VkShaderModule rm
Definition vkshaderprogram.h:41
VkPipelineDynamicStateCreateInfo raytracingDynamicStateInfo
Definition vkshaderprogram.h:39
uint stencilWriteMask
Definition vkshaderprogram.h:42
VkPipelineVertexInputStateCreateInfo vertexInfo
Definition vkshaderprogram.h:30
VkShaderModule ca
Definition vkshaderprogram.h:41
VkPipelineTessellationStateCreateInfo tessInfo
Definition vkshaderprogram.h:37
VkPipelineLayout layout
Definition vkshaderprogram.h:45
VkShaderModule ri
Definition vkshaderprogram.h:41
VkShaderModule vs
Definition vkshaderprogram.h:41
VkShaderModule hs
Definition vkshaderprogram.h:41
VkShaderModule ds
Definition vkshaderprogram.h:41
uint32_t uniqueId
Definition vkshaderprogram.h:47
VkPipelineColorBlendAttachmentState colorBlendAttachments[8]
Definition vkshaderprogram.h:35
VkPipelineDynamicStateCreateInfo graphicsDynamicStateInfo
Definition vkshaderprogram.h:36
VkPipeline pipeline
Definition vkshaderprogram.h:43
VkShaderModule ts
Definition vkshaderprogram.h:41
Definition vkshaderprogram.h:21
CoreGraphics::ShaderFeature::Mask mask
Definition vkshaderprogram.h:24
VkDevice dev
Definition vkshaderprogram.h:22
Util::String name
Definition vkshaderprogram.h:23
unsigned int uint
Definition types.h:31