| /* |
| * Copyright 2020 Google LLC |
| * SPDX-License-Identifier: MIT |
| */ |
| |
| #ifndef VKR_COMMAND_BUFFER_H |
| #define VKR_COMMAND_BUFFER_H |
| |
| #include "vkr_common.h" |
| |
| #include "vkr_context.h" |
| |
| struct vkr_command_pool { |
| struct vkr_object base; |
| |
| struct list_head command_buffers; |
| }; |
| VKR_DEFINE_OBJECT_CAST(command_pool, VK_OBJECT_TYPE_COMMAND_POOL, VkCommandPool) |
| |
| struct vkr_command_buffer { |
| struct vkr_object base; |
| |
| struct vkr_device *device; |
| }; |
| VKR_DEFINE_OBJECT_CAST(command_buffer, VK_OBJECT_TYPE_COMMAND_BUFFER, VkCommandBuffer) |
| |
| void |
| vkr_context_init_command_pool_dispatch(struct vkr_context *ctx); |
| |
| void |
| vkr_context_init_command_buffer_dispatch(struct vkr_context *ctx); |
| |
| static inline void |
| vkr_command_pool_release(struct vkr_context *ctx, struct vkr_command_pool *pool) |
| { |
| vkr_context_remove_objects(ctx, &pool->command_buffers); |
| } |
| |
| #endif /* VKR_COMMAND_BUFFER_H */ |