28 void setup_backend_service(
const std::shared_ptr<Registry::Service::ComputeService>& compute_service);
39 std::shared_ptr<VKShaderModule> create_shader_module(
const std::string& spirv_path, uint32_t stage);
49 std::shared_ptr<VKDescriptorManager> create_descriptor_manager(uint32_t pool_size);
56 vk::DescriptorSetLayout create_descriptor_layout(
57 const std::shared_ptr<VKDescriptorManager>& manager,
58 const std::vector<std::pair<uint32_t, uint32_t>>& bindings);
70 std::shared_ptr<VKComputePipeline> create_compute_pipeline(
71 const std::shared_ptr<VKShaderModule>& shader,
72 const std::vector<vk::DescriptorSetLayout>& layouts,
73 uint32_t push_constant_size);
80 std::shared_ptr<VKGraphicsPipeline> create_graphics_pipeline(
90 void cleanup_compute_resource(
void* resource);
102 void track_shader(
const std::shared_ptr<VKShaderModule>& shader);
103 void track_descriptor_manager(
const std::shared_ptr<VKDescriptorManager>& manager);
104 void track_compute_pipeline(
const std::shared_ptr<VKComputePipeline>& pipeline);
105 void track_graphics_pipeline(
const std::shared_ptr<VKGraphicsPipeline>& pipeline);
High-level wrapper for Vulkan instance and device.