Vulkan Schnee 0.0.1
High-performance rendering engine
Loading...
Searching...
No Matches
EngineCore::DispatcherComputePass Class Reference

#include <ComputePass.h>

Inheritance diagram for EngineCore::DispatcherComputePass:
Collaboration diagram for EngineCore::DispatcherComputePass:

Public Member Functions

 DispatcherComputePass (const std::string &name)
uint32_t getTargetThreadCount () const
Public Member Functions inherited from EngineCore::ComputePass
virtual ~ComputePass ()=default
 ComputePass (const std::string &name)
void create (VkDevice device, const VkPipelineLayoutCreateInfo *pPipelineLayoutCreateInfo, const VkDescriptorSetLayoutCreateInfo *pDescriptorSetLayoutCreateInfo, std::string shaderName, std::optional< const PipelineSpecializationData * > pSpecializationData)
 Creates a whole compute pass with a layout and everything. This is one of two steps needed to create a full compute shader.
uint32_t getThreadCount () const
 Gets the amount of threads this compute shader is running on on the GPU.
VkPipelineLayout & getPipelineLayout ()
 Gets the layout of this compute pipeline.
ComputePipelinegetComputePipeline ()
 Getter for the raw compute pipeline.
VkDescriptorSetLayout & getDescriptorSetLayout ()
 Gets the descriptor set layout associated with this pipeline.
VkPushConstantsInfo createPushConstantsInfo (uint32_t size, const void *pValues) const
 Used to create preconfigured push constants where you only pass in the size of the push constant and a pointer to the data.
void createDescriptorSet (VkDevice device, uint32_t frameInFlightIndex, VkDescriptorPool descriptorPool)
 Creates a vulkan descriptor set resource for a frame in flight into a specified descriptor pool.
DescriptorSetUpdaterupdateDescriptorSet (uint32_t frameInFlightIndex)
 Creates a descriptor set updater which is used to batch update descriptor set resources.
VkDescriptorSet getDescriptorSet (uint32_t frameInFlightIndex) const
 Getter for the descriptor set of this pipeline.
void bindDescriptorSets (VkCommandBuffer commandBuffer, uint32_t frameInFlightIndex)
 Binds the descriptor set of a frame in flight.
void cleanup (VkDevice device)
 Cleanup of owned resources using direct VkDevice handle.
void cleanup (ApplicationContext *context)
 Cleanup of owned resources using ApplicationContext.

Protected Member Functions

void extractSpecializationData (std::optional< const PipelineSpecializationData * > pSpecializationData) override
Protected Member Functions inherited from EngineCore::ComputePass
std::string getName () const

Protected Attributes

uint32_t targetThreadCount = 32
Protected Attributes inherited from EngineCore::ComputePass
uint32_t threadCount = 32

Detailed Description

Definition at line 182 of file ComputePass.h.

Constructor & Destructor Documentation

◆ DispatcherComputePass()

EngineCore::DispatcherComputePass::DispatcherComputePass ( const std::string & name)

Definition at line 61 of file ComputePass.cpp.

References EngineCore::ComputePass::ComputePass(), and EngineCore::ComputePass::name.

Here is the call graph for this function:

Member Function Documentation

◆ extractSpecializationData()

void EngineCore::DispatcherComputePass::extractSpecializationData ( std::optional< const PipelineSpecializationData * > pSpecializationData)
overrideprotectedvirtual

Reimplemented from EngineCore::ComputePass.

Definition at line 68 of file ComputePass.cpp.

References EngineCore::ComputePass::getName(), targetThreadCount, and EngineCore::ComputePass::threadCount.

Here is the call graph for this function:

◆ getTargetThreadCount()

uint32_t EngineCore::DispatcherComputePass::getTargetThreadCount ( ) const
nodiscard

Definition at line 64 of file ComputePass.cpp.

References targetThreadCount.

Member Data Documentation

◆ targetThreadCount

uint32_t EngineCore::DispatcherComputePass::targetThreadCount = 32
protected

Definition at line 191 of file ComputePass.h.

Referenced by extractSpecializationData(), and getTargetThreadCount().


The documentation for this class was generated from the following files:
  • /home/magerbeton/Documents/gl3-vulkan/Engine/include/Engine/Core/ComputePass.h
  • /home/magerbeton/Documents/gl3-vulkan/Engine/src/Engine/Core/ComputePass.cpp