diff --git a/tools/editor/editor_markers.cpp b/tools/editor/editor_markers.cpp index c5dd2dc4..70020027 100644 --- a/tools/editor/editor_markers.cpp +++ b/tools/editor/editor_markers.cpp @@ -43,6 +43,11 @@ void EditorMarkers::update(const std::vector& objects) { std::vector verts; for (const auto& obj : objects) { + // Skip markers for objects with non-finite transform — would + // produce NaN vertex positions and trip Vulkan validation or + // collapse the entire vertex buffer to garbage. + if (!std::isfinite(obj.position.x) || !std::isfinite(obj.position.y) || + !std::isfinite(obj.position.z) || !std::isfinite(obj.scale)) continue; float s = 3.0f * obj.scale; float x = obj.position.x; float y = obj.position.y;