Release Healer Man 0.1.7
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import assert from "node:assert/strict";
|
||||
import test from "node:test";
|
||||
import { analyzeGlbJson } from "./glb-performance.mjs";
|
||||
|
||||
test("counts repeated mesh placements as avoidable draw calls", () => {
|
||||
const report = analyzeGlbJson({
|
||||
meshes: [
|
||||
{ primitives: [{}, {}] },
|
||||
{ primitives: [{}] },
|
||||
],
|
||||
nodes: [
|
||||
{ mesh: 0 },
|
||||
{ mesh: 0 },
|
||||
{ mesh: 0 },
|
||||
{ mesh: 1 },
|
||||
],
|
||||
materials: [
|
||||
{ doubleSided: true, alphaMode: "BLEND" },
|
||||
{},
|
||||
],
|
||||
textures: [{}, {}],
|
||||
});
|
||||
|
||||
assert.equal(report.estimatedDrawCalls, 7);
|
||||
assert.equal(report.expandedPrimitiveInstances, 7);
|
||||
assert.equal(report.eligibleRepeatedMeshes, 1);
|
||||
assert.equal(report.eligibleRepeatedNodes, 3);
|
||||
assert.equal(report.unbatchedDrawCallSavings, 4);
|
||||
assert.equal(report.doubleSidedMaterials, 1);
|
||||
assert.equal(report.blendedMaterials, 1);
|
||||
});
|
||||
|
||||
test("counts one draw-call set for an EXT_mesh_gpu_instancing batch", () => {
|
||||
const report = analyzeGlbJson({
|
||||
extensionsUsed: ["EXT_mesh_gpu_instancing"],
|
||||
accessors: [{ count: 12 }],
|
||||
meshes: [{ primitives: [{}, {}, {}] }],
|
||||
nodes: [{
|
||||
mesh: 0,
|
||||
extensions: {
|
||||
EXT_mesh_gpu_instancing: {
|
||||
attributes: { TRANSLATION: 0 },
|
||||
},
|
||||
},
|
||||
}],
|
||||
});
|
||||
|
||||
assert.equal(report.estimatedDrawCalls, 3);
|
||||
assert.equal(report.expandedPrimitiveInstances, 36);
|
||||
assert.equal(report.gpuInstanceBatches, 1);
|
||||
assert.equal(report.gpuInstances, 12);
|
||||
assert.equal(report.unbatchedDrawCallSavings, 0);
|
||||
assert.equal(report.usesGpuInstancing, true);
|
||||
});
|
||||
Reference in New Issue
Block a user