Nebula
Loading...
Searching...
No Matches
vkshaderprogram.h File Reference
#include "core/refcounted.h"
#include "lowlevel/vk/vkprogram.h"
#include "coregraphics/shaderfeature.h"
#include "coregraphics/resourcetable.h"
#include "util/arraystack.h"

Go to the source code of this file.

Classes

struct  Vulkan::VkShaderProgramSetupInfo
 
struct  Vulkan::VkShaderProgramRuntimeInfo
 
struct  Vulkan::VkProgramReflectionInfo
 

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 

Typedefs

typedef Ids::IdAllocator< VkShaderProgramSetupInfo, VkProgramReflectionInfo, VkShaderProgramRuntimeInfoVulkan::ShaderProgramAllocator
 

Enumerations

enum  { Vulkan::ShaderProgram_SetupInfo , Vulkan::ShaderProgram_ReflectionInfo , Vulkan::ShaderProgram_RuntimeInfo }
 

Functions

void Vulkan::VkShaderProgramDiscard (VkShaderProgramSetupInfo &info, VkShaderProgramRuntimeInfo &rt, VkPipeline &computePipeline)
 discard variation
 
void Vulkan::VkShaderProgramSetup (const Ids::Id24 id, const Resources::ResourceName &shaderName, AnyFX::VkProgram *program, const CoreGraphics::ResourcePipelineId &pipelineLayout)
 setup from AnyFX program
 
void Vulkan::VkShaderProgramCreateShader (const VkDevice dev, VkShaderModule *shader, unsigned binarySize, char *binary)
 create shader object
 
void Vulkan::VkShaderProgramSetupAsGraphics (AnyFX::VkProgram *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 (AnyFX::VkProgram *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.