51 size_t push_constant_size = 0);
58 size_t push_constant_size = 0);
74 void bind_descriptor_sets(
77 const std::vector<DescriptorSetID>& descriptor_set_ids);
95 void dispatch(
CommandBufferID cmd_id, uint32_t x, uint32_t y, uint32_t z);
100 void dispatch_indirect(
102 vk::Buffer indirect_buffer,
103 vk::DeviceSize offset = 0);
112 std::vector<DescriptorSetID> allocate_pipeline_descriptors(
ComputePipelineID pipeline_id);
120 const std::vector<DescriptorSetID>& descriptor_set_ids,
121 const void* push_constants_data =
nullptr,
122 size_t push_constant_size = 0);
127 void cleanup_pipelines();
138 std::atomic<uint64_t> m_next_pipeline_id { 1 };