enki_anu/recording/
task.rs1use crate::nam_args_api::IngressContext;
2use ash::vk;
3
4pub struct ComputeTask<'a> {
5 pub pipeline: vk::Pipeline,
6 pub layout: vk::PipelineLayout,
7 pub grid_size: (u32, u32, u32),
8 pub local_size: (u32, u32, u32),
9 pub args_ctx: IngressContext<'a>,
10 pub stack_bda: u64,
11 pub _stack_buffer: Option<apsu::GpuStackBuffer>,
12}
13
14pub struct PresentBufferTask {
15 pub buffer_id: u32,
16 pub buffer: vk::Buffer,
17 pub offset: u64,
18 pub width: u32,
19 pub height: u32,
20}
21
22pub enum RawTask<'a> {
23 Compute(ComputeTask<'a>),
24 PresentBuffer(PresentBufferTask),
25 WriteTimestamp {
26 query_index: u32,
27 stage: vk::PipelineStageFlags2,
28 },
29}
30
31impl<'a> Default for ComputeTask<'a> {
32 fn default() -> Self {
33 Self {
34 pipeline: vk::Pipeline::null(),
35 layout: vk::PipelineLayout::null(),
36 grid_size: (1, 1, 1),
37 local_size: (1, 1, 1),
38 args_ctx: IngressContext::new(),
39 stack_bda: 0,
40 _stack_buffer: None,
41 }
42 }
43}