kiba-engine
pipeline.c
1 #include <kiba/gpu/pipeline.h>
2 
3 #include <kiba/gpu/device.h>
4 
5 b8 gpu_pipeline_layout_create(gpu_pipeline_layout *layout,
6  gpu_device device,
7  struct gpu_pipeline_layout_descriptor desc) {
8  if (!gpu_device_resource_pipeline_layout_create(device, layout)) {
9  KB_ERROR("could not create device-tracked pipeline layout");
10  return false;
11  }
12  struct gpu_pipeline_layout *l = *layout;
13  return gpu_backend_pipeline_layout_create(&l->bl, &device->bd, desc);
14 }
15 
16 void gpu_pipeline_layout_destroy(gpu_pipeline_layout layout) {
17  gpu_device_resource_pipeline_layout_enqueue_destroy(layout);
18 }
19 
20 void gpu_pipeline_layout_destroy_internal(gpu_pipeline_layout layout) {
21  gpu_backend_pipeline_layout_destroy(&layout->bl, &layout->device->bd);
22 }
23 
24 b8 gpu_render_pipeline_create(gpu_pipeline *pipeline, gpu_device device, struct gpu_render_pipeline_descriptor desc) {
25  if (!gpu_device_resource_pipeline_create(device, pipeline)) {
26  KB_ERROR("could not create device-tracked pipeline");
27  return false;
28  }
29  struct gpu_pipeline *p = *pipeline;
30  return gpu_backend_render_pipeline_create(&p->bp, &device->bd, desc);
31 }
32 
33 void gpu_render_pipeline_destroy(gpu_pipeline pipeline) { gpu_device_resource_pipeline_enqueue_destroy(pipeline); }
34 
35 void gpu_render_pipeline_destroy_internal(gpu_pipeline pipeline) {
36  gpu_backend_render_pipeline_destroy(&pipeline->bp, &pipeline->device->bd);
37 }
#define KB_ERROR(...)
Log entry with error log level.
Definition: log.h:142