1 type ComputePipeline = 2 val instance : Instance 3 val shader : ComputeShader 4 val object : VkPipeline 5 val pipeline_layout : VkPipelineLayout 6 val push_constant_size : u32 7 val push_constant_stages : ShaderStageFlags 8 val local_group_size : [u32; 3] 9 10 def discard = 11 vk/destroy_pipeline_layout instance.device pipeline_layout null 12 13 object ComputePipeline = 14 def create (shader : ComputeShader) = 15 let instance : Instance @auto 16 let pipeline_layout = PipelineLayout.compute shader 17 18 let compute_pipeline_create_info = ComputePipelineCreateInfo 19 type = StructureType/ComputePipelineCreateInfo 20 next = null 21 flags = PipelineCreateFlags@zero 22 stage = shader.create_info 23 layout = pipeline_layout.object 24 base_pipeline_handle = null 25 base_pipeline_index = 0 26 27 let mut object = null 28 vk/create_compute_pipelines instance.device null 1 29 compute_pipeline_create_info@ptr 30 null object@mut_ptr 31 |> assert_success 32 33 ComputePipeline =instance =shader =object 34 pipeline_layout = pipeline_layout.object 35 push_constant_size = shader.push_constant_size 36 push_constant_stages = shader.push_constant_stages 37 local_group_size = shader.compute_local_size 38