From 33cfea1f360576343a4468816637c8cefbe5ef35 Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Thu, 6 Aug 2026 17:17:29 +0800 Subject: [PATCH] fix: correct thread count and shadow projection uniform - Add reserved client thread count to client threads in server generation calculation. - Set projection matrix uniform only for non-shadow rendering. --- include/Cubed/tools/threas_utils.hpp | 4 ++-- src/render/model_renderer.cpp | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/include/Cubed/tools/threas_utils.hpp b/include/Cubed/tools/threas_utils.hpp index fd01fad..a598433 100644 --- a/include/Cubed/tools/threas_utils.hpp +++ b/include/Cubed/tools/threas_utils.hpp @@ -110,7 +110,7 @@ inline size_t get_server_gen_threads(RunMode mode) { auto update_pool = get_server_compute_treads(mode); - auto client_pool = get_client_threads(mode); + auto client = get_client_threads(mode) + CLIENT_RESERVED_THREADS; size_t remain = available; @@ -118,7 +118,7 @@ inline size_t get_server_gen_threads(RunMode mode) { remain -= std::min(remain, update_pool); - remain -= std::min(remain, client_pool); + remain -= std::min(remain, client); return std::max(1, remain); } diff --git a/src/render/model_renderer.cpp b/src/render/model_renderer.cpp index 851e139..1bec3ef 100644 --- a/src/render/model_renderer.cpp +++ b/src/render/model_renderer.cpp @@ -76,9 +76,10 @@ void ModelRender::render_instance(ModelID id, size_t sum, const Camera& camera, auto& shader = shadow ? m_renderer.get_shader("depth_model_instance") : m_renderer.get_shader("model_instance"); glm::mat4 view = camera.get_camera_lookat(); - shader.set_loc("proj_matrix", m_renderer.p_mat()); + if (shadow) { } else { + shader.set_loc("proj_matrix", m_renderer.p_mat()); shader.set_loc("view_matrix", view); } for (const auto& entry : batch.entries) {