CNA-GAP-037: EXT_mesh_gpu_instancing is not imported: each node keeps one placement and its per-instance transforms are dropped
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
A node declaring EXT_mesh_gpu_instancing is imported with its own single transform, so the file renders one copy where it describes many; the drop is reported per file (gpu-instancing-dropped).
- Identifier
CNA-GAP-037- Category
- Functional gap
- Subsystem
- Models & glTF
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- ContentManager::Load<Model> on glTF files using EXT_mesh_gpu_instancing
Expected behaviour
An importer that accepts a file declaring EXT_mesh_gpu_instancing should reproduce the instances it describes.
Actual behaviour at TARGET
ContentManager.cpp (GLTF-146/GLTF-352) logs that such nodes are imported with their own placement only; GltfImportCore.cpp classifies the extension as Unsupported, counts gpuInstancedNodeCount and emits the gpu-instancing-dropped diagnostic. gltf-limitations.md lists it as UNSUPPORTED and explains why the instancing path was not built.
Source locations
modules/content/src/Xna/ContentManager.cpp— ReadGltfModel: GLTF-146 warningmodules/content/src/GltfImport/GltfImportCore.cpp— AppendGltfNodeGraphReportEXT (gpu-instancing-dropped) and the extension-support tabledocs/gltf-limitations.md— EXT_mesh_gpu_instancing: UNSUPPORTED, section 4.1
Evidence
Checked by reading at 009d40f5; not executed.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
GltfImportReportTests.cpp and GltfNodeHierarchyTests.cpp cover the report and the instanced-node count; no instanced rendering exists to test.
Regression test
If implemented, an L4 placement oracle over an instanced fixture (N placements expected).
Blast radius
glTF files that rely on GPU instancing (vegetation, crowds, repeated props).
Workaround
Expand the instances into ordinary nodes before import.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- User guide
- Model loading: runtime glTF
- Known issues
- Functional gap index