About Social Code
aboutsummaryrefslogtreecommitdiff
path: root/src/frygon/vulkan/fgvk_cmd_buffer.h
diff options
context:
space:
mode:
authorLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2025-11-24 19:39:30 -0500
committerLucas Fryzek <lucas.fryzek@fryzekconcepts.com>2025-11-24 19:39:30 -0500
commitb5f3587df4048d2ba807721ff2faea8c8a43a93f (patch)
tree6913f730a41822b98fecd5e82b7cae46164fd9c0 /src/frygon/vulkan/fgvk_cmd_buffer.h
parent41c700fdbf1d79dfb571105ee93bfa46da6c8428 (diff)
Diffstat (limited to 'src/frygon/vulkan/fgvk_cmd_buffer.h')
-rw-r--r--src/frygon/vulkan/fgvk_cmd_buffer.h42
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