From 607255a8fd901da7a3d6dcdafe9c0585f8c81521 Mon Sep 17 00:00:00 2001 From: Frederico Linhares Date: Wed, 27 Sep 2023 15:19:02 -0300 Subject: refa Remove redundant uniform buffer updates * src/vk/graphics_pipeline_3d.cpp: Remove redundant uniform buffer updates * src/vk/renderer.cpp: Update world colors just once for each frame. --- src/vk/graphics_pipeline_3d.cpp | 13 ------------- src/vk/renderer.cpp | 17 +++++++++++++++++ 2 files changed, 17 insertions(+), 13 deletions(-) (limited to 'src') diff --git a/src/vk/graphics_pipeline_3d.cpp b/src/vk/graphics_pipeline_3d.cpp index 6639d99..355509e 100644 --- a/src/vk/graphics_pipeline_3d.cpp +++ b/src/vk/graphics_pipeline_3d.cpp @@ -625,19 +625,6 @@ GraphicsPipeline3D::draw( view->ub_3d[image_index].copy_data(&ubo_view_3d); } - - // TODO: Do not update this for each view. All views use the same data. - { // Update world uniform buffer - ODOWorld3D_Vert ubo_world_3d_vert{}; - ubo_world_3d_vert.ambient_light_color = glm::vec4{0.25, 0.25, 0.25, 1.0}; - this->ub_world_vert[image_index].copy_data(&ubo_world_3d_vert); - - ODOWorld3D_Frag ubo_world_3d_frag{}; - ubo_world_3d_frag.directional_light_direction = - glm::vec3{-0.57735, 0.57735, -0.57735}; - ubo_world_3d_frag.directional_light_color = glm::vec4{0.8, 0.8, 0.8, 1.0}; - this->ub_world_frag[image_index].copy_data(&ubo_world_3d_frag); - } } } diff --git a/src/vk/renderer.cpp b/src/vk/renderer.cpp index b240cb9..b886175 100644 --- a/src/vk/renderer.cpp +++ b/src/vk/renderer.cpp @@ -19,6 +19,7 @@ #include #include "../core.hpp" +#include "uniform_data_object.hpp" namespace { @@ -207,6 +208,22 @@ Renderer::draw() clear_values[0].color = {0.12f, 0.12f, 0.18f, 1.0f}; clear_values[1].depthStencil = {1.0f, 0}; + { // Update world uniform buffer + ODOWorld3D_Vert ubo_world_3d_vert{}; + ubo_world_3d_vert.ambient_light_color = + glm::vec4{0.25, 0.25, 0.25, 1.0}; + cg_core.vk_graphics_pipeline_3d->ub_world_vert[image_index].copy_data( + &ubo_world_3d_vert); + + ODOWorld3D_Frag ubo_world_3d_frag{}; + ubo_world_3d_frag.directional_light_direction = + glm::vec3{-0.57735, 0.57735, -0.57735}; + ubo_world_3d_frag.directional_light_color = + glm::vec4{0.8, 0.8, 0.8, 1.0}; + cg_core.vk_graphics_pipeline_3d->ub_world_frag[image_index].copy_data( + &ubo_world_3d_frag); + } + VkRenderPassBeginInfo render_pass_begin{}; render_pass_begin.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; render_pass_begin.pNext = nullptr; -- cgit v1.2.3