From 76b0e87f280d50468884c81951e322da9fa52b75 Mon Sep 17 00:00:00 2001 From: Jayden Grubb Date: Sun, 16 Mar 2025 12:58:15 +1000 Subject: [PATCH] Add various assertions throughout renderer --- engine/include/nova/render/render_device.h | 2 +- engine/src/drivers/vulkan/render_driver.cpp | 10 ++++------ engine/src/drivers/vulkan/render_driver.h | 1 - engine/src/render/renderer.cpp | 2 ++ 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/engine/include/nova/render/render_device.h b/engine/include/nova/render/render_device.h index 8acbb42..c53480d 100644 --- a/engine/include/nova/render/render_device.h +++ b/engine/include/nova/render/render_device.h @@ -22,4 +22,4 @@ namespace Nova { u32 deviceID; void* handle; }; -} // namespace Nova \ No newline at end of file +} // namespace Nova diff --git a/engine/src/drivers/vulkan/render_driver.cpp b/engine/src/drivers/vulkan/render_driver.cpp index 57a788e..2fec744 100644 --- a/engine/src/drivers/vulkan/render_driver.cpp +++ b/engine/src/drivers/vulkan/render_driver.cpp @@ -53,16 +53,14 @@ u32 VulkanRenderDriver::get_device_count() const { } const RenderDevice& VulkanRenderDriver::get_device(const u32 index) const { + NOVA_ASSERT(index < m_devices.size()); return m_devices[index]; } void VulkanRenderDriver::create_device(const u32 index) { NOVA_AUTO_TRACE(); - - if (m_device) { - NOVA_ERROR("VkDevice already created"); - return; - } + NOVA_ASSERT(index < m_devices.size()); + NOVA_ASSERT(!m_device); m_physical_device = static_cast(m_devices[index].handle); std::vector queues; @@ -324,4 +322,4 @@ VkAllocationCallbacks* VulkanRenderDriver::_get_allocator(const VkObjectType typ // TODO: Add custom allocator (void)type; return nullptr; -} \ No newline at end of file +} diff --git a/engine/src/drivers/vulkan/render_driver.h b/engine/src/drivers/vulkan/render_driver.h index 8adde92..2444295 100644 --- a/engine/src/drivers/vulkan/render_driver.h +++ b/engine/src/drivers/vulkan/render_driver.h @@ -41,7 +41,6 @@ namespace Nova { void _init_instance(); void _init_hardware(); - // TODO: Other init functions for device void _check_device_extensions(); void _check_device_features(); void _init_queues(std::vector& queues) const; diff --git a/engine/src/render/renderer.cpp b/engine/src/render/renderer.cpp index eee2ada..1c0c7f8 100644 --- a/engine/src/render/renderer.cpp +++ b/engine/src/render/renderer.cpp @@ -17,6 +17,7 @@ static std::unique_ptr s_driver; void Renderer::create(const RenderAPI api) { NOVA_AUTO_TRACE(); + NOVA_ASSERT(!s_driver); switch (api) { case RenderAPI::VULKAN: s_driver = std::make_unique(); @@ -33,5 +34,6 @@ void Renderer::shutdown() { } RenderDriver* Renderer::get_driver() { + NOVA_ASSERT(s_driver); return s_driver.get(); }