34#include "VulkanComputeDevice.h"
35#include "../../VulkanGraphics/Headers/VulkanShader.h"
36#include <NDEVR/Buffer.h>
37#include <NDEVR/Pointer.h>
47 class VULKAN_COMPUTE_API VulkanComputePipeline
51 ~VulkanComputePipeline();
95 uint04 m_push_constant_size = 0;
97 VkDescriptorSetLayout m_descriptor_set_layout = VK_NULL_HANDLE;
98 VkDescriptorPool m_descriptor_pool = VK_NULL_HANDLE;
99 VkDescriptorSet m_descriptor_set = VK_NULL_HANDLE;
100 VkPipelineLayout m_pipeline_layout = VK_NULL_HANDLE;
101 VkPipeline m_pipeline = VK_NULL_HANDLE;
The equivelent of std::vector but with a bit more control.
Provides a constant, unmodifiable pointer that has shared ownership of a dynamically allocated object...
void addStorageBuffer(uint04 binding)
Declare an SSBO binding in the descriptor set layout.
void addPushConstantRange(uint04 size)
Declare a push constant range accessible from the compute stage.
void bindBuffer(uint04 binding, VkBuffer vk_buffer, VkDeviceSize size)
Update a descriptor set binding to point to the given buffer.
void pushConstants(VkCommandBuffer cmd, const void *data, uint04 size) const
Record push constants into a command buffer.
static void computeBarrier(VkCommandBuffer cmd)
Insert a compute-to-compute memory barrier (SSBO write → read).
void dispatch(VkCommandBuffer cmd, uint04 gx, uint04 gy, uint04 gz) const
Record a pipeline bind + dispatch into a command buffer.
void create(const VulkanShader &shader)
Create the descriptor set layout, pipeline layout, descriptor pool, descriptor set,...
void cleanup()
Free all Vulkan resources.
A shader program used to render data in Vulkan.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...