From c29105b461135f3909cca0308fb05715cee45763 Mon Sep 17 00:00:00 2001 From: Quentin LADEVIE Date: Sun, 26 Jan 2025 22:27:10 +0100 Subject: DX12 command buffers and resources --- include/api-test/command-buffer.hpp | 103 ------------------------------------ 1 file changed, 103 deletions(-) delete mode 100644 include/api-test/command-buffer.hpp (limited to 'include/api-test/command-buffer.hpp') diff --git a/include/api-test/command-buffer.hpp b/include/api-test/command-buffer.hpp deleted file mode 100644 index 0eff93a..0000000 --- a/include/api-test/command-buffer.hpp +++ /dev/null @@ -1,103 +0,0 @@ -#pragma once - -#include -#include - -#include - -#include "handle.hpp" - -#include "vec3.hpp" - -#include "vk-device-types.hpp" - -struct device_texture; -struct device_buffer; -struct device_pipeline; - -struct dispatch_params { - enum class PARAM_BINDING : uint32_t { - PARAM1, - PARAM2, - PARAM3, - PARAM4, - PARAM5, - PARAM6, - PARAM7, - PARAM8, - MAX - }; - - handle pipeline; - vec3u group_size; - vec3u local_group_size; - uint64_t params[static_cast(PARAM_BINDING::MAX)]; -}; - -struct renderpass_params { -private: - struct rect { - int32_t x; - int32_t y; - uint32_t width; - uint32_t height; - }; - -public: - rect render_area; - std::span> color_attachments; -}; - -struct draw_params { - handle pipeline; - handle index_buffer; - uint32_t vertex_count; - uint32_t vertex_offset; - uint32_t instance_count; - uint64_t globals_address = 0U; // TODO: This is probably stupid and should be set elsewhere once ??? - uint64_t instances_address = 0U; - uint64_t uniforms_address = 0U; - uint64_t vertex_address = 0U; -}; - -struct draw_indexed_params { - handle pipeline; - handle index_buffer; - uint32_t vertex_count; - uint32_t vertex_offset; - uint32_t index_offset; - uint32_t instance_count; - uint64_t globals_address = 0U; // TODO: This is probably stupid and should be set elsewhere once ??? - uint64_t instances_address = 0U; - uint64_t uniforms_address = 0U; - uint64_t vertex_address = 0U; -}; - -struct command_buffer { - void start() const; - void stop() const; - - void barrier(handle texture_handle, VkPipelineStageFlags2 stage, VkAccessFlags2 access, VkImageLayout layout) const; - - void copy(handle buffer_handle, handle texture_handle, VkDeviceSize offset = 0) const; - - VkCommandBuffer vk_command_buffer; - QueueType queue_type; -}; - -// General purpose queue -struct graphics_command_buffer: public command_buffer { - void dispatch(const dispatch_params& params) const; - - void begin_renderpass(const renderpass_params& params) const; - void draw(const draw_params& params) const; - void draw_indexed(const draw_indexed_params& params) const; - void end_renderpass() const; -}; - -struct compute_command_buffer: public command_buffer { - void dispatch(const dispatch_params& params); -}; - -struct transfer_command_buffer: public command_buffer { -}; -- cgit v1.3