11#include "lowlevel/vk/vkprogram.h"
15#include "util/serialize.h"
38 VkPipelineTessellationStateCreateInfo
tessInfo;
42 VkShaderModule
vs,
hs,
ds,
gs,
ps,
cs,
ts,
ms,
rg,
ra,
rc,
rm,
ri,
ca;
66 VkShaderProgramSetupInfo,
67 VkProgramReflectionInfo,
68 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
A StringAtom.
Definition stringatom.h:22
ShaderPipeline
Definition config.h:111
uint32_t Id24
Definition id.h:139
Util::StringAtom ResourceName
Definition resourceid.h:33
Array< TYPE, STACK_SIZE > StackArray
Definition array.h:1881
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:1080
Ids::IdAllocator< VkShaderProgramSetupInfo, VkProgramReflectionInfo, VkShaderProgramRuntimeInfo > ShaderProgramAllocator
Definition vkshaderprogram.h:69
ShaderProgramAllocator shaderProgramAlloc
Definition vkshaderprogram.cc:18
VkPipelineLayout VkShaderProgramGetLayout(const CoreGraphics::ShaderProgramId id)
Get resource layout of shader program.
Definition vkshaderprogram.cc:1090
void VkShaderProgramCreateShader(const VkDevice dev, VkShaderModule *shader, unsigned binarySize, char *binary)
create shader object
Definition vkshaderprogram.cc:162
void VkShaderProgramSetupAsGraphics(AnyFX::VkProgram *program, const Resources::ResourceName &shaderName, VkShaderProgramRuntimeInfo &runtime)
create this program as a graphics program
Definition vkshaderprogram.cc:208
void VkShaderProgramDiscard(VkShaderProgramSetupInfo &info, VkShaderProgramRuntimeInfo &rt, VkPipeline &pipeline)
discard variation
Definition vkshaderprogram.cc:1111
@ ShaderProgram_SetupInfo
Definition vkshaderprogram.h:61
@ ShaderProgram_RuntimeInfo
Definition vkshaderprogram.h:63
@ ShaderProgram_ReflectionInfo
Definition vkshaderprogram.h:62
void VkShaderProgramGetRaytracingVaryingSizes(const CoreGraphics::ShaderProgramId id, uint &rayPayloadSize, uint &hitAttributeSize)
Get ray payload and hit attribute sizes.
Definition vkshaderprogram.cc:1100
void VkShaderProgramSetupAsCompute(VkShaderProgramSetupInfo &setup, VkShaderProgramRuntimeInfo &runtime)
create this program as a compute program (can be done immediately)
Definition vkshaderprogram.cc:931
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:967
uint32_t UniqueIdCounter
Definition vkshaderprogram.cc:17
A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan)
Definition resourcetable.h:399
Nebula's universal string class.
Definition String.cs:8
Definition vkshaderprogram.h:54
Util::StringAtom name
Definition vkshaderprogram.h:56
Util::StackArray< uint32_t, 8 > vsInputSlots
Definition vkshaderprogram.h:55
Definition vkshaderprogram.h:29
VkShaderModule ra
Definition vkshaderprogram.h:42
VkShaderModule gs
Definition vkshaderprogram.h:42
uint hitAttributeSize
Definition vkshaderprogram.h:45
VkPipelineRasterizationStateCreateInfo rasterizerInfo
Definition vkshaderprogram.h:32
VkShaderModule rg
Definition vkshaderprogram.h:42
VkShaderModule cs
Definition vkshaderprogram.h:42
uint rayPayloadSize
Definition vkshaderprogram.h:45
VkPipelineShaderStageCreateInfo graphicsShaderInfos[5]
Definition vkshaderprogram.h:39
VkShaderModule rc
Definition vkshaderprogram.h:42
uint32_t stageCount
Definition vkshaderprogram.h:30
uint stencilFrontRef
Definition vkshaderprogram.h:43
uint stencilBackRef
Definition vkshaderprogram.h:43
VkPipelineShaderStageCreateInfo raytracingShaderInfos[6]
Definition vkshaderprogram.h:41
VkShaderModule ms
Definition vkshaderprogram.h:42
VkPipelineDepthStencilStateCreateInfo depthStencilInfo
Definition vkshaderprogram.h:34
uint stencilReadMask
Definition vkshaderprogram.h:43
CoreGraphics::ShaderPipeline type
Definition vkshaderprogram.h:47
VkPipelineMultisampleStateCreateInfo multisampleInfo
Definition vkshaderprogram.h:33
VkPipelineColorBlendStateCreateInfo colorBlendInfo
Definition vkshaderprogram.h:35
VkShaderModule ps
Definition vkshaderprogram.h:42
VkShaderModule rm
Definition vkshaderprogram.h:42
VkPipelineDynamicStateCreateInfo raytracingDynamicStateInfo
Definition vkshaderprogram.h:40
uint stencilWriteMask
Definition vkshaderprogram.h:43
VkPipelineVertexInputStateCreateInfo vertexInfo
Definition vkshaderprogram.h:31
VkShaderModule ca
Definition vkshaderprogram.h:42
VkPipelineTessellationStateCreateInfo tessInfo
Definition vkshaderprogram.h:38
VkPipelineLayout layout
Definition vkshaderprogram.h:46
VkShaderModule ri
Definition vkshaderprogram.h:42
VkShaderModule vs
Definition vkshaderprogram.h:42
VkShaderModule hs
Definition vkshaderprogram.h:42
VkShaderModule ds
Definition vkshaderprogram.h:42
uint32_t uniqueId
Definition vkshaderprogram.h:48
VkPipelineColorBlendAttachmentState colorBlendAttachments[8]
Definition vkshaderprogram.h:36
VkPipelineDynamicStateCreateInfo graphicsDynamicStateInfo
Definition vkshaderprogram.h:37
VkPipeline pipeline
Definition vkshaderprogram.h:44
VkShaderModule ts
Definition vkshaderprogram.h:42
Definition vkshaderprogram.h:22
CoreGraphics::ShaderFeature::Mask mask
Definition vkshaderprogram.h:25
VkDevice dev
Definition vkshaderprogram.h:23
Util::String name
Definition vkshaderprogram.h:24
unsigned int uint
Definition types.h:33