From 2f46fe21efbe03ce29ac3f6eaf6e4ed298130b15 Mon Sep 17 00:00:00 2001 From: bailwillharr Date: Mon, 13 Mar 2023 20:35:15 +0000 Subject: [PATCH] Get depth buffer working --- src/gfx_device_vulkan.cpp | 15 ++++++++------- src/vulkan/swapchain.cpp | 2 ++ test/src/camera_controller.cpp | 2 +- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/gfx_device_vulkan.cpp b/src/gfx_device_vulkan.cpp index 4d847f9..5002a14 100644 --- a/src/gfx_device_vulkan.cpp +++ b/src/gfx_device_vulkan.cpp @@ -752,11 +752,12 @@ namespace engine { { // RECORDING - VkClearValue clearValue{}; // Using same value for all components enables compression according to NVIDIA Best Practices - clearValue.color.float32[0] = 1.0f; - clearValue.color.float32[1] = 1.0f; - clearValue.color.float32[2] = 1.0f; - clearValue.color.float32[3] = 1.0f; + std::array clearValues{}; // Using same value for all components enables compression according to NVIDIA Best Practices + clearValues[0].color.float32[0] = 1.0f; + clearValues[0].color.float32[1] = 1.0f; + clearValues[0].color.float32[2] = 1.0f; + clearValues[0].color.float32[3] = 1.0f; + clearValues[1].depthStencil.depth = 1.0f; VkRenderPassBeginInfo passBegin{}; passBegin.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; @@ -765,8 +766,8 @@ namespace engine { passBegin.framebuffer = std::get<2>(pimpl->swapchain.images[swapchainImageIndex]); passBegin.renderArea.extent = pimpl->swapchain.extent; passBegin.renderArea.offset = { 0, 0 }; - passBegin.clearValueCount = 1; - passBegin.pClearValues = &clearValue; + passBegin.clearValueCount = clearValues.size(); + passBegin.pClearValues = clearValues.data(); vkCmdBeginRenderPass(frameData.drawBuf, &passBegin, VK_SUBPASS_CONTENTS_INLINE); VkViewport viewport{}; diff --git a/src/vulkan/swapchain.cpp b/src/vulkan/swapchain.cpp index 3179f9d..43ccfcf 100644 --- a/src/vulkan/swapchain.cpp +++ b/src/vulkan/swapchain.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include @@ -146,6 +147,7 @@ namespace engine { imageInfo.format = sc->depthStencil.format; imageInfo.extent.width = sc->extent.width; imageInfo.extent.height = sc->extent.height; + imageInfo.extent.depth = 1; imageInfo.mipLevels = 1; imageInfo.arrayLayers = 1; imageInfo.samples = VK_SAMPLE_COUNT_1_BIT; diff --git a/test/src/camera_controller.cpp b/test/src/camera_controller.cpp index db1a84c..b46d4f4 100644 --- a/test/src/camera_controller.cpp +++ b/test/src/camera_controller.cpp @@ -153,7 +153,7 @@ void CameraControllerSystem::onUpdate(float ts) " y: " + std::to_string(t->position.y) + " z: " + std::to_string(t->position.z) }; - m_scene->app()->window()->infoBox("POSITION", pos_string); + //m_scene->app()->window()->infoBox("POSITION", pos_string); LOG_INFO("position: " + pos_string); }