Misc bug and typo fixes

This commit is contained in:
2025-05-03 17:28:47 +10:00
parent e18d165217
commit 7039fdf93e
3 changed files with 17 additions and 24 deletions

View File

@@ -30,6 +30,8 @@ namespace Nova {
[[nodiscard]] virtual bool get_device_supports_surface(u32 index, SurfaceID surface) const = 0;
virtual void select_device(u32 index) = 0;
[[nodiscard]] virtual QueueID get_queue() = 0;
[[nodiscard]] virtual SurfaceID create_surface(WindowID window) = 0;
virtual void destroy_surface(SurfaceID surface) = 0;
@@ -48,9 +50,6 @@ namespace Nova {
[[nodiscard]] virtual PipelineID create_pipeline(ComputePipelineParams& params) = 0;
virtual void destroy_pipeline(PipelineID pipeline) = 0;
[[nodiscard]] virtual QueueID create_queue() = 0;
virtual void destroy_queue(QueueID queue) = 0;
[[nodiscard]] virtual CommandPoolID create_command_pool(QueueID queue) = 0;
virtual void destroy_command_pool(CommandPoolID command_pool) = 0;

View File

@@ -375,6 +375,15 @@ void VulkanRenderDriver::select_device(const u32 p_index) {
_init_device(queues);
}
QueueID VulkanRenderDriver::get_queue() {
NOVA_AUTO_TRACE();
NOVA_ASSERT(m_device);
// TODO: Actually create/get a queue
Queue* queue = new Queue();
queue->family_index = 0;
return queue;
}
SurfaceID VulkanRenderDriver::create_surface(WindowID p_window) {
NOVA_AUTO_TRACE();
NOVA_ASSERT(m_window_driver);
@@ -456,6 +465,7 @@ SwapchainID VulkanRenderDriver::create_swapchain(SurfaceID p_surface) {
// TODO: Change VkRenderPass to VkRenderPass2KHR (Vulkan 1.2+)
resize_swapchain(swapchain);
return swapchain;
}
@@ -607,7 +617,6 @@ void VulkanRenderDriver::destroy_swapchain(SwapchainID p_swapchain) {
}
if (p_swapchain->render_pass) {
destroy_render_pass(p_swapchain->render_pass);
p_swapchain->render_pass = nullptr;
}
delete p_swapchain;
@@ -677,7 +686,6 @@ PipelineID VulkanRenderDriver::create_pipeline(GraphicsPipelineParams& p_params)
}
std::vector<VkVertexInputBindingDescription> vertex_bindings;
std::vector<VkVertexInputAttributeDescription> vertex_attributes;
for (const auto& binding : p_params.bindings) {
VkVertexInputBindingDescription binding_desc {};
binding_desc.binding = binding.binding;
@@ -685,6 +693,7 @@ PipelineID VulkanRenderDriver::create_pipeline(GraphicsPipelineParams& p_params)
binding_desc.inputRate = VK_VERTEX_INPUT_RATE_MAP[static_cast<int>(binding.rate)];
vertex_bindings.push_back(binding_desc);
}
std::vector<VkVertexInputAttributeDescription> vertex_attributes;
for (const auto& attribute : p_params.attributes) {
VkVertexInputAttributeDescription attribute_desc {};
attribute_desc.binding = attribute.binding;
@@ -830,21 +839,6 @@ void VulkanRenderDriver::destroy_pipeline(PipelineID p_pipeline) {
delete p_pipeline;
}
QueueID VulkanRenderDriver::create_queue() {
NOVA_AUTO_TRACE();
NOVA_ASSERT(m_device);
// TODO: Actually create/get a queue
Queue* queue = new Queue();
queue->family_index = 0;
return queue;
}
void VulkanRenderDriver::destroy_queue(QueueID p_queue) {
NOVA_AUTO_TRACE();
NOVA_ASSERT(p_queue);
delete p_queue;
}
CommandPoolID VulkanRenderDriver::create_command_pool(QueueID p_queue) {
NOVA_AUTO_TRACE();
NOVA_ASSERT(p_queue);
@@ -892,10 +886,11 @@ CommandBufferID VulkanRenderDriver::create_command_buffer(CommandPoolID p_pool)
NOVA_LOG("VkCommandBuffer created");
p_pool->allocated_buffers.push_back(buffer);
return nullptr;
return buffer;
}
void VulkanRenderDriver::begin_command_buffer(CommandBufferID p_command_buffer) {
NOVA_ASSERT(p_command_buffer);
VkCommandBufferBeginInfo info {};
info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
// TODO: Support flag options

View File

@@ -76,6 +76,8 @@ namespace Nova {
[[nodiscard]] bool get_device_supports_surface(u32 index, SurfaceID surface) const override;
void select_device(u32 index) override;
[[nodiscard]] QueueID get_queue() override;
[[nodiscard]] SurfaceID create_surface(WindowID window) override;
void destroy_surface(SurfaceID surface) override;
@@ -94,9 +96,6 @@ namespace Nova {
[[nodiscard]] PipelineID create_pipeline(ComputePipelineParams& params) override;
void destroy_pipeline(PipelineID pipeline) override;
[[nodiscard]] QueueID create_queue() override;
void destroy_queue(QueueID queue) override;
[[nodiscard]] CommandPoolID create_command_pool(QueueID queue) override;
void destroy_command_pool(CommandPoolID command_pool) override;