Nebula
Loading...
Searching...
No Matches
vkshaderprogram.cc File Reference

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 
namespace  CoreGraphics
 Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
 

Functions

void Vulkan::VkShaderProgramSetup (const Ids::Id24 id, const Resources::ResourceName &shaderName, GPULang::Deserialize::Program *program, const CoreGraphics::ResourcePipelineId &pipelineLayout)
 setup from GPULang program
 
void Vulkan::VkShaderProgramCreateShader (const VkDevice dev, VkShaderModule *shader, unsigned binarySize, char *binary)
 create shader object
 
void Vulkan::VkShaderProgramCreateShader (const VkDevice dev, VkShaderModule *shader, GPULang::Deserialize::Program::Shader *binary)
 create shader object
 
VkStencilOp Vulkan::StencilOpFromGPULang (GPULang::Serialization::StencilOp op)
 
VkCompareOp Vulkan::CompareOpFromGPULang (GPULang::Serialization::CompareMode mode)
 
VkPolygonMode Vulkan::PolygonModeFromGPULang (GPULang::Serialization::RasterizationMode mode)
 
VkFrontFace Vulkan::PolygonModeFromGPULang (GPULang::Serialization::WindingOrderMode mode)
 
VkLogicOp Vulkan::LogicOpFromGPULang (GPULang::Serialization::LogicOp op)
 
VkBlendFactor Vulkan::BlendFactorFromGPULang (GPULang::Serialization::BlendFactor factor)
 
VkBlendOp Vulkan::BlendOpFromGPULang (GPULang::Serialization::BlendOp op)
 
VkCullModeFlags Vulkan::CullModeFromGPULang (GPULang::Serialization::CullMode mode)
 
void Vulkan::VkShaderProgramSetupAsGraphics (GPULang::Deserialize::Program *program, const Resources::ResourceName &shaderName, VkShaderProgramRuntimeInfo &runtime)
 create this program as a graphics program
 
void Vulkan::VkShaderProgramSetupAsCompute (VkShaderProgramSetupInfo &setup, VkShaderProgramRuntimeInfo &runtime)
 create this program as a compute program (can be done immediately)
 
void Vulkan::VkShaderProgramSetupAsRaytracing (GPULang::Deserialize::Program *program, const Resources::ResourceName &shaderName, VkShaderProgramSetupInfo &setup, VkShaderProgramRuntimeInfo &runtime)
 create this program as a compute program (can be done immediately)
 
VkPipeline Vulkan::VkShaderProgramGetRaytracingLibrary (const CoreGraphics::ShaderProgramId id)
 Get raytracing library pipepline.
 
VkPipelineLayout Vulkan::VkShaderProgramGetLayout (const CoreGraphics::ShaderProgramId id)
 Get resource layout of shader program.
 
void Vulkan::VkShaderProgramGetRaytracingVaryingSizes (const CoreGraphics::ShaderProgramId id, uint &rayPayloadSize, uint &hitAttributeSize)
 Get ray payload and hit attribute sizes.
 
void Vulkan::VkShaderProgramDiscard (VkShaderProgramSetupInfo &info, VkShaderProgramRuntimeInfo &rt, VkPipeline &computePipeline)
 discard variation
 
RayTracingBits CoreGraphics::ShaderProgramGetRaytracingBits (const ShaderProgramId id)
 

Variables

uint32_t Vulkan::UniqueIdCounter = 0
 
ShaderProgramAllocator Vulkan::shaderProgramAlloc