| 518 | } |
| 519 | |
| 520 | void finalize() |
| 521 | { |
| 522 | cgpu_wait_fences(exec_fences, FLIGHT_FRAMES); |
| 523 | cgpu_free_buffer(streaming_heap); |
| 524 | for (uint32_t i = 0; i < FLIGHT_FRAMES; i++) |
| 525 | { |
| 526 | cgpu_free_command_buffer(cmds[i]); |
| 527 | cgpu_free_command_pool(pools[i]); |
| 528 | cgpu_free_fence(exec_fences[i]); |
| 529 | } |
| 530 | cgpu_wait_queue_idle(App.gfx_queue); |
| 531 | cgpu_free_semaphore(present_semaphore); |
| 532 | cgpu_free_descriptor_set(desc_set); |
| 533 | if (desc_set2) cgpu_free_descriptor_set(desc_set2); |
| 534 | cgpu_free_sampler(sampler_state); |
| 535 | cgpu_free_texture(sampled_texture); |
| 536 | for (uint32_t i = 0; i < TOTAL_MIPS; i++) |
| 537 | cgpu_free_texture_view(sampled_views[i]); |
| 538 | for (uint32_t i = 0; i < App.swapchain->buffer_count; i++) |
| 539 | cgpu_free_texture_view(views[i]); |
| 540 | cgpu_free_render_pipeline(pipeline); |
| 541 | cgpu_free_root_signature(root_sig); |
| 542 | app_finalize(&App); |
| 543 | } |
| 544 | |
| 545 | void ProgramMain(void* usrdata) |
| 546 | { |
no test coverage detected