package bonsai-rt:acorn/pipeline
⌘K
Ctrl+K
or
/
Index
Constants (0)
This section is empty.
Variables (0)
This section is empty.
Procedures (13)
- base_type_to_format
- calculate_binding_description
- create_compute_pipeline
- create_frame_buffer
- create_grahics_pipeline
- delete_compute_pipeline
- invoke_compute_pipeline
- invoke_graphics_pipeline
- run_compute_pipeline_and_wait
- run_graphics_pipeline_and_wait
- vk_create_graphics_pipeline
- vk_create_render_pass
- write_compute_command_buffer
Procedure Groups (0)
This section is empty.
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
- delete_compute_pipeline
- invoke_compute_pipeline
- run_compute_pipeline_and_wait
- write_compute_command_buffer
Related Procedures With Returns
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
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