53 uint32_t num_input_buffers = 1,
54 uint32_t num_props_floats = 1);
63 const std::vector<VulkanBuffer*>& input_buffers,
65 uint32_t width, uint32_t height, int32_t frame_number);
68 void compileShader(
const std::string& glsl_source);
69 void createDescriptorSetLayout(uint32_t num_input_buffers,
70 bool with_props_buffer);
71 void createPipeline();
72 void updateDescriptorSets(
const std::vector<VulkanBuffer*>& input_buffers,
78 bool has_props_buffer;
80 std::vector<VkBuffer> cached_input_buffers;
81 VkBuffer cached_output_buffer = VK_NULL_HANDLE;
82 VkBuffer cached_props_buffer = VK_NULL_HANDLE;
84 std::vector<uint32_t> spirv_code;
85 vk::raii::ShaderModule shader_module =
nullptr;
86 vk::raii::DescriptorSetLayout descriptor_set_layout =
nullptr;
87 vk::raii::PipelineLayout pipeline_layout =
nullptr;
88 vk::raii::Pipeline pipeline =
nullptr;
90 vk::raii::DescriptorPool descriptor_pool =
nullptr;
91 vk::raii::DescriptorSet descriptor_set =
nullptr;
void recordDispatch(vk::raii::CommandBuffer &command_buffer, const std::vector< VulkanBuffer * > &input_buffers, VulkanBuffer &output_buffer, VulkanBuffer *props_buffer, uint32_t width, uint32_t height, int32_t frame_number)