Misc bug and typo fixes
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user