package bonsai-rt:acorn/pipeline

⌘K
Ctrl+K
or
/

    Types

    Attachment ¶

    Attachment :: struct {
    	type:  AttachmentType,
    	image: resource.ImageInfo,
    }

    AttachmentConfig ¶

    AttachmentConfig :: struct {
    	type:         AttachmentType,
    	format:       vulkan.Format,
    	sample_count: vulkan.SampleCountFlags,
    }

    AttachmentType ¶

    AttachmentType :: enum untyped integer {
    	Color, 
    	Depth, 
    	Resolve, 
    }

    AttachmentTypeSet ¶

    AttachmentTypeSet :: bit_set[AttachmentType]

    ComputePipelineContext ¶

    ComputePipelineContext :: struct {
    	shader_group:    shader_group.ShaderGroupContext,
    	pipeline_layout: vulkan.PipelineLayout,
    	pipeline:        vulkan.Pipeline,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    DrawCmd ¶

    DrawCmd :: struct {
    	index_count:    u32,
    	instance_count: u32,
    	first_index:    u32,
    	first_vertex:   u32,
    	first_instance: u32,
    }

    FrameBufferContext ¶

    FrameBufferContext :: struct {
    	linked_render_pass: vulkan.RenderPass,
    	frame_buffer:       vulkan.Framebuffer,
    	width:              u32,
    	height:             u32,
    }
     

    frame buffers just groups the resources you are rendeing to togeather theses resources should match up with the attachments

    Related Procedures With Parameters
    Related Procedures With Returns

    GraphicsPipelineContext ¶

    GraphicsPipelineContext :: struct {
    	shader_group:              shader_group.ShaderGroupContext,
    	render_pass:               vulkan.RenderPass,
    	pipeline_layout:           vulkan.PipelineLayout,
    	pipeline:                  vulkan.Pipeline,
    	render_finished_semaphore: vulkan.Semaphore,
    	attachment_configs:        []AttachmentConfig,
    	vertex_types:              []typeid,
    	instance_types:            []typeid,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Constants

    This section is empty.

    Variables

    This section is empty.

    Procedures

    base_type_to_format ¶

    base_type_to_format :: proc(t: typeid) -> vulkan.Format {…}

    calculate_binding_description ¶

    calculate_binding_description :: proc(binding: u32, location_offset: u32, t: typeid, input_rate: vulkan.VertexInputRate) -> (vulkan.VertexInputBindingDescription, []vulkan.VertexInputAttributeDescription) {…}

    create_compute_pipeline ¶

    create_compute_pipeline :: proc(device_context: ^device.DeviceContext, shader_group: shader_group.ShaderGroupContext) -> ComputePipelineContext {…}

    create_frame_buffer ¶

    create_frame_buffer :: proc(device_context: ^device.DeviceContext, graphics_pipeline: ^GraphicsPipelineContext, attachments: []Attachment) -> FrameBufferContext {…}

    create_grahics_pipeline ¶

    create_grahics_pipeline :: proc(
    	device_context:        ^device.DeviceContext, 
    	vertex_types:          []typeid, 
    	instance_types:        []typeid, 
    	shader_group:          shader_group.ShaderGroupContext, 
    	attachment_configs:    []AttachmentConfig, 
    	enable_multisampleing: bool, 
    	max_instances:         u32, 
    ) -> GraphicsPipelineContext {…}

    delete_compute_pipeline ¶

    delete_compute_pipeline :: proc(device_context: ^device.DeviceContext, compute_pipeline: ComputePipelineContext) {…}

    invoke_compute_pipeline ¶

    invoke_compute_pipeline :: proc(device_context: ^device.DeviceContext, compute_pipeline: ^ComputePipelineContext, descriptor_sets: []descriptor_set.DescriptorSetContext, invokation_counts: [3]u32) {…}

    invoke_graphics_pipeline ¶

    invoke_graphics_pipeline :: proc(
    	device_context:   ^device.DeviceContext, 
    	pipeline:         ^GraphicsPipelineContext, 
    	index_buffer:     resource.GenericResource, 
    	vertex_buffers:   []resource.GenericResource, 
    	instance_buffers: []resource.GenericResource, 
    	descriptor_sets:  []descriptor_set.DescriptorSetContext, 
    	draw_cmds:        []DrawCmd, 
    	frame_buffer:     FrameBufferContext, 
    	wait_semaphores:  []vulkan.Semaphore, 
    ) -> vulkan.Semaphore {…}

    run_compute_pipeline_and_wait ¶

    run_compute_pipeline_and_wait :: proc(
    	device_context:  ^device.DeviceContext, 
    	descriptor_sets: []vulkan.DescriptorSet, 
    	pipeline:        ComputePipelineContext, 
    	x_count:         u32, 
    	y_count:         u32, 
    	z_count:         u32, 
    ) {…}

    run_graphics_pipeline_and_wait ¶

    run_graphics_pipeline_and_wait :: proc(
    	device_context:       ^device.DeviceContext, 
    	pipeline:             ^GraphicsPipelineContext, 
    	index_buffer:         resource.GenericResource, 
    	vertex_buffers:       []resource.GenericResource, 
    	instance_buffers:     []resource.GenericResource, 
    	descriptor_sets:      []vulkan.DescriptorSet, 
    	draw_cmds:            []DrawCmd, 
    	frame_buffer_context: FrameBufferContext, 
    ) {…}

    vk_create_graphics_pipeline ¶

    vk_create_graphics_pipeline :: proc(
    	device_context:        ^device.DeviceContext, 
    	vertex_types:          []typeid, 
    	instance_types:        []typeid, 
    	render_pass:           vulkan.RenderPass, 
    	shader_group:          shader_group.ShaderGroupContext, 
    	enable_multisampleing: bool, 
    	subpass_index:         u32, 
    ) -> (vulkan.PipelineLayout, vulkan.Pipeline) {…}

    vk_create_render_pass ¶

    vk_create_render_pass :: proc(device_context: ^device.DeviceContext, attachment_configs: []AttachmentConfig) -> vulkan.RenderPass {…}
     

    think we need a seperate pipeline for evey subpass

    write_compute_command_buffer ¶

    write_compute_command_buffer :: proc(
    	device_context:  ^device.DeviceContext, 
    	descriptor_sets: []vulkan.DescriptorSet, 
    	pipeline:        ComputePipelineContext, 
    	x_count:         u32, 
    	y_count:         u32, 
    	z_count:         u32, 
    ) {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2025-04 (vendor "odin") Linux_amd64 @ 2025-05-13 09:15:52.879423848 +0000 UTC