diff options
Diffstat (limited to 'src/frygon/vulkan/fgvk_cmd_buffer.h')
| -rw-r--r-- | src/frygon/vulkan/fgvk_cmd_buffer.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/frygon/vulkan/fgvk_cmd_buffer.h b/src/frygon/vulkan/fgvk_cmd_buffer.h new file mode 100644 index 00000000000..151ed631166 --- /dev/null +++ b/src/frygon/vulkan/fgvk_cmd_buffer.h @@ -0,0 +1,42 @@ +/* + * Copyright © 2025 Lucas Francisco Fryzek + * SPDX-License-Identifier: MIT + */ +#ifndef FGVK_CMD_BUFFER_H +#define FGVK_CMD_BUFFER_H 1 + +#include "fgvk_private.h" + +#include "vk_command_buffer.h" +#include "vk_shader.h" + +struct fgvk_graphics_state { + struct vk_vertex_input_state _dynamic_vi; + struct vk_sample_locations_state _dynamic_sl; +}; + +struct fgvk_cmd_buffer { + struct vk_command_buffer vk; + + struct fgvk_cmd_state { + struct fgvk_graphics_state gfx; + } state; +}; + +VK_DEFINE_HANDLE_CASTS(fgvk_cmd_buffer, vk.base, VkCommandBuffer, + VK_OBJECT_TYPE_COMMAND_BUFFER) + +static inline struct fgvk_cmd_pool * +fgvk_cmd_buffer_pool(struct fgvk_cmd_buffer *cmd) +{ + return (struct fgvk_cmd_pool *)cmd->vk.pool; +} + +extern const struct vk_command_buffer_ops fgvk_cmd_buffer_ops; + +void fgvk_cmd_bind_shaders(struct vk_command_buffer *vk_cmd, + uint32_t stage_count, + const mesa_shader_stage *stages, + struct vk_shader ** const shaders); + +#endif |