PeriDyno 1.0.0
Loading...
Searching...
No Matches
dyno::VkProgram Class Reference

#include <VkProgram.h>

Collaboration diagram for dyno::VkProgram:

Public Member Functions

template<typename... Args>
 VkProgram (Args... args)
 
 ~VkProgram ()
 
void begin ()
 
void setupArgs (std::vector< VkVariable * > &vars, VkVariable *t)
 
template<typename... Args>
void enqueue (dim3 groupSize, Args... args)
 
template<typename... Args>
void write (Args... args)
 
void dispatch (dim3 groupSize)
 
void end ()
 
void update (bool sync=false)
 
void wait ()
 
template<typename... Args>
void flush (dim3 groupSize, Args... args)
 
bool load (std::string fileName)
 
void addMacro (std::string key, std::string value)
 
void addGraphicsToComputeBarriers (VkCommandBuffer commandBuffer)
 
void addComputeToComputeBarriers (VkCommandBuffer commandBuffer)
 
void addComputeToGraphicsBarriers (VkCommandBuffer commandBuffer)
 
void setVkCommandBuffer (VkCommandBuffer cmdBuffer)
 
void bindPipeline ()
 
void suspendInherentCmdBuffer (VkCommandBuffer cmdBuffer)
 
void restoreInherentCmdBuffer ()
 

Public Attributes

struct { 
 
   struct Semaphores
 
      VkSemaphore   ready { 0L } 
 
      VkSemaphore   complete { 0L } 
 
   }   semaphores 
 
compute 
 

Protected Member Functions

void pushFormalParameter (VkVariable *arg)
 
void pushFormalConstant (VkVariable *arg)
 
void pushArgument (VkVariable *arg)
 
void pushConstant (VkVariable *arg)
 
void pushDeviceBuffer (VkVariable *arg)
 
void pushUniform (VkVariable *arg)
 

Private Member Functions

VkPipelineShaderStageCreateInfo createComputeStage (std::string fileName)
 

Private Attributes

VkContextctx = nullptr
 
std::vector< VkVariable * > mFormalParamters
 
std::vector< VkVariable * > mFormalConstants
 
std::vector< VkVariable * > mAllArgs
 
std::vector< VkVariable * > mBufferArgs
 
std::vector< VkVariable * > mUniformArgs
 
std::vector< VkVariable * > mConstArgs
 
VkDescriptorPool descriptorPool = VK_NULL_HANDLE
 
VkDescriptorSetLayout descriptorSetLayout = VK_NULL_HANDLE
 
VkDescriptorSet descriptorSet = VK_NULL_HANDLE
 
VkPipelineLayout pipelineLayout = VK_NULL_HANDLE
 
VkPipeline pipeline = VK_NULL_HANDLE
 
VkFence mFence
 
VkQueue queue = VK_NULL_HANDLE
 
VkCommandPool mCommandPool = VK_NULL_HANDLE
 
VkCommandBuffer mCommandBuffers = VK_NULL_HANDLE
 
VkCommandBuffer mCmdBufferCopy = VK_NULL_HANDLE
 
std::vector< VkShaderModule > shaderModules
 

Detailed Description

Definition at line 102 of file VkProgram.h.

Constructor & Destructor Documentation

◆ VkProgram()

template<typename... Args>
dyno::VkProgram::VkProgram ( Args... args)

Definition at line 202 of file VkProgram.h.

Here is the call graph for this function:

◆ ~VkProgram()

dyno::VkProgram::~VkProgram ( )

Definition at line 8 of file VkProgram.cpp.

Member Function Documentation

◆ addComputeToComputeBarriers()

void dyno::VkProgram::addComputeToComputeBarriers ( VkCommandBuffer commandBuffer)

Definition at line 128 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ addComputeToGraphicsBarriers()

void dyno::VkProgram::addComputeToGraphicsBarriers ( VkCommandBuffer commandBuffer)

Definition at line 153 of file VkProgram.cpp.

Here is the call graph for this function:

◆ addGraphicsToComputeBarriers()

void dyno::VkProgram::addGraphicsToComputeBarriers ( VkCommandBuffer commandBuffer)

Definition at line 98 of file VkProgram.cpp.

Here is the call graph for this function:

◆ addMacro()

void dyno::VkProgram::addMacro ( std::string key,
std::string value )

◆ begin()

void dyno::VkProgram::begin ( )

Definition at line 30 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ bindPipeline()

void dyno::VkProgram::bindPipeline ( )

Definition at line 185 of file VkProgram.cpp.

◆ createComputeStage()

VkPipelineShaderStageCreateInfo dyno::VkProgram::createComputeStage ( std::string fileName)
private

Definition at line 225 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ dispatch()

void dyno::VkProgram::dispatch ( dim3 groupSize)

Definition at line 39 of file VkProgram.cpp.

Here is the call graph for this function:

◆ end()

void dyno::VkProgram::end ( )

Definition at line 58 of file VkProgram.cpp.

Here is the caller graph for this function:

◆ enqueue()

template<typename... Args>
void dyno::VkProgram::enqueue ( dim3 groupSize,
Args... args )

Definition at line 290 of file VkProgram.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ flush()

template<typename... Args>
void dyno::VkProgram::flush ( dim3 groupSize,
Args... args )
inline

Definition at line 133 of file VkProgram.h.

Here is the call graph for this function:

◆ load()

bool dyno::VkProgram::load ( std::string fileName)

Definition at line 201 of file VkProgram.cpp.

Here is the call graph for this function:

◆ pushArgument()

void dyno::VkProgram::pushArgument ( VkVariable * arg)
protected

Definition at line 249 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushConstant()

void dyno::VkProgram::pushConstant ( VkVariable * arg)
protected

Definition at line 254 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushDeviceBuffer()

void dyno::VkProgram::pushDeviceBuffer ( VkVariable * arg)
protected

Definition at line 262 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushFormalConstant()

void dyno::VkProgram::pushFormalConstant ( VkVariable * arg)
protected

Definition at line 242 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushFormalParameter()

void dyno::VkProgram::pushFormalParameter ( VkVariable * arg)
protected

Definition at line 237 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pushUniform()

void dyno::VkProgram::pushUniform ( VkVariable * arg)
protected

Definition at line 270 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ restoreInherentCmdBuffer()

void dyno::VkProgram::restoreInherentCmdBuffer ( )

Definition at line 196 of file VkProgram.cpp.

◆ setupArgs()

void dyno::VkProgram::setupArgs ( std::vector< VkVariable * > & vars,
VkVariable * t )
inline

Definition at line 113 of file VkProgram.h.

◆ setVkCommandBuffer()

void dyno::VkProgram::setVkCommandBuffer ( VkCommandBuffer cmdBuffer)
inline

Definition at line 157 of file VkProgram.h.

◆ suspendInherentCmdBuffer()

void dyno::VkProgram::suspendInherentCmdBuffer ( VkCommandBuffer cmdBuffer)

Definition at line 190 of file VkProgram.cpp.

◆ update()

void dyno::VkProgram::update ( bool sync = false)

Definition at line 63 of file VkProgram.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ wait()

void dyno::VkProgram::wait ( )

Definition at line 93 of file VkProgram.cpp.

Here is the caller graph for this function:

◆ write()

template<typename... Args>
void dyno::VkProgram::write ( Args... args)

Definition at line 359 of file VkProgram.h.

Here is the call graph for this function:

Member Data Documentation

◆ complete

VkSemaphore dyno::VkProgram::complete { 0L }

Definition at line 153 of file VkProgram.h.

◆ [struct]

struct { ... } dyno::VkProgram::compute

◆ ctx

VkContext* dyno::VkProgram::ctx = nullptr
private

Definition at line 175 of file VkProgram.h.

◆ descriptorPool

VkDescriptorPool dyno::VkProgram::descriptorPool = VK_NULL_HANDLE
private

Definition at line 186 of file VkProgram.h.

◆ descriptorSet

VkDescriptorSet dyno::VkProgram::descriptorSet = VK_NULL_HANDLE
private

Definition at line 188 of file VkProgram.h.

◆ descriptorSetLayout

VkDescriptorSetLayout dyno::VkProgram::descriptorSetLayout = VK_NULL_HANDLE
private

Definition at line 187 of file VkProgram.h.

◆ mAllArgs

std::vector<VkVariable*> dyno::VkProgram::mAllArgs
private

Definition at line 180 of file VkProgram.h.

◆ mBufferArgs

std::vector<VkVariable*> dyno::VkProgram::mBufferArgs
private

Definition at line 181 of file VkProgram.h.

◆ mCmdBufferCopy

VkCommandBuffer dyno::VkProgram::mCmdBufferCopy = VK_NULL_HANDLE
private

Definition at line 197 of file VkProgram.h.

◆ mCommandBuffers

VkCommandBuffer dyno::VkProgram::mCommandBuffers = VK_NULL_HANDLE
private

Definition at line 195 of file VkProgram.h.

◆ mCommandPool

VkCommandPool dyno::VkProgram::mCommandPool = VK_NULL_HANDLE
private

Definition at line 194 of file VkProgram.h.

◆ mConstArgs

std::vector<VkVariable*> dyno::VkProgram::mConstArgs
private

Definition at line 183 of file VkProgram.h.

◆ mFence

VkFence dyno::VkProgram::mFence
private

Definition at line 192 of file VkProgram.h.

◆ mFormalConstants

std::vector<VkVariable*> dyno::VkProgram::mFormalConstants
private

Definition at line 178 of file VkProgram.h.

◆ mFormalParamters

std::vector<VkVariable*> dyno::VkProgram::mFormalParamters
private

Definition at line 177 of file VkProgram.h.

◆ mUniformArgs

std::vector<VkVariable*> dyno::VkProgram::mUniformArgs
private

Definition at line 182 of file VkProgram.h.

◆ pipeline

VkPipeline dyno::VkProgram::pipeline = VK_NULL_HANDLE
private

Definition at line 190 of file VkProgram.h.

◆ pipelineLayout

VkPipelineLayout dyno::VkProgram::pipelineLayout = VK_NULL_HANDLE
private

Definition at line 189 of file VkProgram.h.

◆ queue

VkQueue dyno::VkProgram::queue = VK_NULL_HANDLE
private

Definition at line 193 of file VkProgram.h.

◆ ready

VkSemaphore dyno::VkProgram::ready { 0L }

Definition at line 152 of file VkProgram.h.

◆ [struct]

struct { ... } ::Semaphores dyno::VkProgram::semaphores

◆ shaderModules

std::vector<VkShaderModule> dyno::VkProgram::shaderModules
private

Definition at line 198 of file VkProgram.h.


The documentation for this class was generated from the following files: