From 63fb822f8a3f7339803c26f78b764ad0995817e2 Mon Sep 17 00:00:00 2001 From: nmzik Date: Wed, 16 Sep 2026 21:29:48 +0400 Subject: [PATCH] Warn and continue mesh draws with primitive restart enabled --- src/graphics/host_gpu/renderer/renderDraw.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/graphics/host_gpu/renderer/renderDraw.cpp b/src/graphics/host_gpu/renderer/renderDraw.cpp index 60abb212a..983afc3e8 100644 --- a/src/graphics/host_gpu/renderer/renderDraw.cpp +++ b/src/graphics/host_gpu/renderer/renderDraw.cpp @@ -1068,7 +1068,13 @@ void RenderExecutor::ExecutePreparedDraw(uint64_t submit_id, CommandBuffer& buff uint32_t mesh_groups = 0; if (mesh_active) { const auto& mesh = state.vertex_info[0].mesh; - if (primitive_restart_enable || mesh.primitives_per_group == 0) { + static std::atomic_bool restart_warned = false; + if (primitive_restart_enable && !restart_warned.exchange(true, std::memory_order_relaxed)) { + std::printf("Warning: primitive restart is not implemented for mesh shaders; " + "continuing draw (primitive=%u indexed=%u)\n", + static_cast(ucfg.GetPrimType()), draw.IsIndexed()); + } + if (mesh.primitives_per_group == 0) { EXIT("unsupported mesh draw: primitive=%u indexed=%u restart=%u\n", static_cast(ucfg.GetPrimType()), draw.IsIndexed(), primitive_restart_enable); }