From c9c4a15e9abd8d73cec2e8e08b5b9eef8e37796f Mon Sep 17 00:00:00 2001 From: Kelsi Date: Wed, 6 May 2026 00:06:40 -0700 Subject: [PATCH] fix(editor): remove per-model upload waits, single batch flush MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Log showed: models=2, instances=3, draws=0 — models loaded and instances created but zero draw calls. The M2 renderer skips instances where cachedIsValid is false, which depends on the GPU vertex buffer being valid after upload. The per-model waitAllUploads/pollUploadBatches calls inside the loading loop may have corrupted the upload batch context (started at beginUploadBatch but flushed mid-loop). Now all models upload in a single batch with one final waitAllUploads+pollUploadBatches at the end of rebuildObjects. --- tools/editor/editor_viewport.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tools/editor/editor_viewport.cpp b/tools/editor/editor_viewport.cpp index 762a2fb8..e3037d16 100644 --- a/tools/editor/editor_viewport.cpp +++ b/tools/editor/editor_viewport.cpp @@ -215,8 +215,6 @@ void EditorViewport::rebuildObjects(const std::vector& objects, LOG_WARNING("M2 failed to upload to GPU: ", obj.path); continue; } - vkCtx_->waitAllUploads(); - vkCtx_->pollUploadBatches(); LOG_INFO("M2 loaded: ", obj.path, " (modelId=", modelId, ", ", model.vertices.size(), " verts)"); m2ModelIds[obj.path] = modelId; @@ -262,8 +260,6 @@ void EditorViewport::rebuildObjects(const std::vector& objects, LOG_WARNING("WMO failed to upload to GPU: ", obj.path); continue; } - vkCtx_->waitAllUploads(); - vkCtx_->pollUploadBatches(); LOG_INFO("WMO loaded: ", obj.path, " (modelId=", modelId, ", ", model.groups.size(), " groups)"); wmoModelIds[obj.path] = modelId; @@ -370,8 +366,6 @@ void EditorViewport::rebuildObjects(const std::vector& objects, model.batches.size(), "b)"); continue; } - vkCtx_->waitAllUploads(); - vkCtx_->pollUploadBatches(); m2ModelIds[npc.modelPath] = modelId; } glm::vec3 rotRad = glm::radians(glm::vec3(0, 0, npc.orientation));