Nishi Family › Compare › Engine Instruments

Nishi Compare · capabilities, evidence and delivery

Engine Instruments

Compare capabilities and delivery evidence. Source discovery, qualification, deployment and accepted outcomes are separate; an open contract names work still to verify.

Nishi vs RenderDoc and Tracy and MangoHud and GpuVis and O3DE -- the tools an engine is MEASURED with, built from the first byte in NishiLang. The field ships five excellent programs with five separate capture formats and five clocks, so a frame-time spike can never be joined to the draw call that caused it: you see the spike in one tool and go hunting in another, by eye. Here every subsystem writes into ONE record layout on ONE clock, so that join is arithmetic. Measured 2026-08-28: 24 of 32 rows grounded in source, nx_enginelab_gate 38 of 38 GREEN with 6 bite-proven cells and 7 named negative controls, and the instrument found a real defect in an incumbent on its first run.

Overview

The purpose, declared position and evidence coverage of this domain. Source presence and completed acceptance are different measures.

Where we are. The SPINE is built and gate-proven and the DEPTH is not. One record layout carries frames, CPU zones, GPU queue slices, draw calls, allocations and lock waits on one clock, which makes the cross-class join arithmetic rather than detective work: 24 of 32 board rows ground in source and nx_enginelab_gate runs 38 of 38 GREEN with 6 bite-proven cells and 7 named negative controls. Exact zone self-time, submit-to-start queue latency, an order-sensitive pipeline state hash, redundant-bind counting, a capture diff that names the divergent draw, golden-image regression composed in-process from nx_visual_diff, and a bound verdict that abstains rather than acquits are all present and toothed. On its first run the instrument found a real defect in an incumbent (nx_fpsmeter counted its zero-initialised ring tail as frames on a replayed clock), which was root-fixed and given a regression tooth in the incumbent's own gate. What is absent is everything that makes these tools INTERACTIVE rather than archival: captures live only in memory, nothing replays, no buffer contents or shader source are inspected, there is no sampling profiler for uninstrumented code, no flame export, no live overlay, and no ability to ingest a hardware trace from an engine we did not build.

Where we need to go. An engine instrument that can be pointed at a running system we did not write and answer, in one place, why a frame was slow: capture persisted to a file that can be attached to a bug report and replayed deterministically, real resource and shader contents inspectable per draw, call stacks sampled without source instrumentation, a live overlay for the operator watching the thing run, and hardware trace import so the board can measure rival engines on the same ruler instead of only measuring ours. The join stays the exceed at every rung -- each new capability enters the SAME record layout, so it is joinable to every other on arrival rather than becoming a sixth format.

The unit. 1 u is roughly one focused build-and-prove cycle: an organ or symbol shipped with its gate teeth, bite-proven in both directions, promoted and run GREEN.
rows grounded at admission: 22 of 30. Measured from disk at emit, not asserted: each grounded row names a symbol declared in runtime/nx_enginelab_lib.nx and exercised by a tooth.
gate teeth GREEN: 64 of 64 lib plus 20 of 20 driver. RE-MEASURED 2026-09-01 FROM THIS LANE, and the earlier figure is kept rather than overwritten because a correction that erases the prior measurement costs the next reader the ability to see the board move. The row previously read 38 of 38 against promoted sha f6676af0 on 2026-08-28 including 6 gv_bite cells and 7 neg-control teeth, and that measurement stands for that day; THE BOARD WAS SIMPLY BEHIND ITS OWN CODE. Run today: nx_enginelab_gate 64 of 64 GREEN, and the NEW nx_enginelab_driver_gate 20 of 20 GREEN with 4 named negative controls -- the bound verdict abstains rather than acquits at 999 permil CPU occupancy, an unwritable capture destination is refused by name instead of reported as a successful round trip, a zero-frame run is UNMEASURABLE and takes no measurement at all, and an unrecognised verb refuses with usage rather than falling through into the default action. THE TWO GATES ARE NOT INTERCHANGEABLE AND THE ESTATE IS TOLD SO MECHANICALLY: knowledge/organ_gate.conf now declares nx_enginelab -> nx_enginelab_driver_gate, because the convention rule would have resolved the driver to nx_enginelab_gate, which never forks the driver, never touches the engine, and would report a clean 64 of 64 with the driver deleted. HONEST LIMIT ON THE DRIVER GATE: nx_gate_bite at 2 and at 6 sites returned INCONCLUSIVE, not GREEN -- twins restored byte-identical with mutant_live=0, but no mutant reached an assertion, so the gate is proven to PASS on real data and is NOT yet proven to be able to FAIL. That is a bound on the evidence, stated here rather than left for a reader to assume.
incumbent defects found on first run: 1. nx_fpsmeter over-counted its zero-initialised ring on a near-zero clock. Root-fixed, neutral once the ring is warm, regression tooth added to the incumbent gate which now runs 4 of 4.
import edges from the runtime frame controller to the governed quality policy: 0 of 1. MEASURED FROM THIS LANE 2026-08-28, corroborating a sibling lane's finding and sharpening it rather than repeating it. nx_quality_balance IS the estate's governed quality-versus-speed policy, and it is not a stub: its own declaration encodes the operator law that quality is SLIGHTLY MORE VALUABLE THAN RAW SPEED under a HARD QUALITY FLOOR, never strip quality for speed, weighted 11 quality to 9 speed and derived from real measured perplexity deltas. A full-coverage scan of the runtime, coverage_complete=1 and corpus_complete=1, finds exactly ONE import edge to it in the entire tree: nx_builder_quant, a BUILD-TIME quantisation organ. The RUNTIME adaptive-quality controller does not consult it. So the policy exists, is governed, is data-driven and is wired into the lane that chooses a build -- while the loop that actually degrades what the operator looks at cannot read it. The controller can only SPEND quality, never buy it. THAT IS THE ACCOUNT OF performance improves and the operator sees pixels, and it is exactly why EL7 requires a frame-time number and an image-quality number on the same clock: an overlay reporting milliseconds alone would instrument the spending and leave the cost invisible. CORRECTED THE SAME DAY BY THE LANE THAT ORIGINATED IT, AND THE CORRECTION IS WORTH MORE THAN THE FINDING WAS -- I had published the remedy as A WIRING EDGE, connect the controller to the policy, and that is WRONG IN TWO WAYS THAT BOTH MATTER. FIRST, THE BLOCKER IS UNIT INCOMMENSURABILITY, NOT A MISSING IMPORT: the policy speaks perplexity-permil and bits-per-weight, the render controller speaks milliseconds and ray-pixel-size, and NO CONVERSION EXISTS ANYWHERE IN THE CORPUS -- so an import would hand the controller a number it has no way to interpret, which is a worse outcome than the disconnection because it would look connected. SECOND, AND THIS IS THE REAL FINDING, QUALITY MEANS TWO DIFFERENT QUANTITIES IN THE TWO PLACES: the policy's quality is QUANTISATION LOSS, model-weight fidelity derived from llama.cpp perplexity deltas, while the controller's subject is IMAGE QUALITY IN A RENDER. Same word, different physical thing. That is exactly why the law READS as though it should apply here and CANNOT be applied as written, and it is this estate's own banked homonym trap arriving at policy level rather than in a vocabulary probe -- a word is not an axis. ⇒ THE HONEST ROW: a governed quality policy exists and is UNUSABLE by the render controller because the two speak incommensurable units and the estate holds no conversion between them. Connecting them is a DESIGN rung -- someone must define what image quality means as a measurable quantity and what trading it against milliseconds costs -- and NOT the wiring edge I published. Reachability itself is honestly UNPROVEN rather than refuted: nx_absent will not scope to a single file, so the closure argument rests on the controller's only callee being a pointer cast. I RECORD THE CORRECTION RATHER THAN QUIETLY EDITING THE CLAIM BECAUSE A STALE CLAIM LEFT STANDING COSTS THE NEXT READER THE WHOLE INVESTIGATION, AND BECAUSE THE CHEAP FALSE VERSION OF THIS ROW WOULD HAVE SENT SOMEONE TO WRITE AN IMPORT THAT COULD NOT HAVE WORKED.
the instrument has now MEASURED A REAL FRAME: 5 frames of nx_wasm_craft at 1920x1200. MEASURED 2026-09-01 by nx_enginelab, THE DRIVER, which did not exist until today and whose absence is why every figure on this board was previously a statement about the instrument rather than about an engine. The gate that proves the library says so in its own verdict -- fixtures whose answers are known by construction -- so it passes exactly as well with zero real subjects as with a thousand, and that is the shape of BUILT-AND-UNWIRED that a green gate makes invisible. The driver attaches natively with no browser at init_impl_v tick_impl render_impl, which is the one render path reachable outside a page. THE BEACH v=2 seed=20260728 AT ITS OWN NATIVE RESOLUTION: 2,304,000 rays per frame, median 1,961,266 us, worst 2,215,790 us, 0.498 fps against a 60 fps budget of 16,666 us, i.e. headroom -1,944,600 us and 118x over budget. Simulation is noise beside rasterisation -- tick self time 646 us TOTAL across five frames against 10,021,761 us of render -- and world init is 65,782 us paid once and attributed separately so it can never inflate a frame. Coverage complete, zero dropped events, zero clock or stack errors. Runs taken SEQUENTIALLY: an earlier concurrent set was discarded because three renders sharing eight cores measure contention, not the engine.
cost per ray across a 64x range in resolution: 869 to 976 ns. MEASURED 2026-09-01, four sequential runs of five frames each. q=1 2,304,000 rays 869 ns per ray, q=2 576,000 rays 976, q=4 144,000 rays 926, q=8 36,000 rays 971. THE ADAPTIVE QUALITY DIAL IS PURELY LINEAR IN RAYS: there is no meaningful fixed per-frame overhead and no cache cliff anywhere in that range, so the governor buys exactly proportional time and nothing else. That is the first fact anyone optimising this renderer needs and it points the work at the per-ray DDA inner loop rather than at batching or per-frame setup. ns-per-ray is published because it is the only figure comparable ACROSS resolutions -- a bare frame time cannot be compared between two quality levels.
the abstention held on real data, where it costs something: BOUND=UNKNOWN at 999 permil CPU occupancy. MEASURED 2026-09-01. CPU occupancy of these frames is about 999 permil, so a bound verdict keyed on occupancy alone would answer CPU-BOUND with total confidence and would be believed. el_bound_verdict returns UNKNOWN because the capture holds NO GPU EVIDENCE AT ALL and an answer built on an absent axis is an acquittal rather than a measurement. This is the first time that discipline has been exercised where it actually withholds a conclusion a reader wants, and the driver gate carries it as neg-control-T11 with the words CPU-BOUND and GPU-BOUND asserted ABSENT from the report.
instrument defect found on the FIRST REAL ATTACHMENT: 1. MEASURED 2026-09-01 by nx_enginelab against nx_enginelab_lib. el_bound_verdict returns EL_BOUND_UNKNOWN on seen_gpu == 0 BEFORE writing out EL_BV_CPUUS and out EL_BV_CPUOCC, so the caller receives a zeroed out-buffer and loses the CPU occupancy the function had ALREADY COMPUTED in the same scan. THE ABSTENTION IS RIGHT AND IT DISCARDS THE HALF THAT WAS MEASURABLE -- an honest UNKNOWN becomes an uninformative one, and the caller cannot tell a frame at 999 permil CPU from one at 20. The remedy is strictly additive: write the CPU fields before the early return and leave the verdict UNKNOWN. NOT APPLIED FROM THIS LANE because the change belongs beside the instrument lane's own gate teeth, and a one-line edit to a shared spine without them is how a fix ships unproven.
the draw class has no subject on this engine, declared by name: draws=0 UNMEASURABLE. MEASURED 2026-09-01. nx_wasm_craft emits NO draw stream -- there is no el_draw call anywhere in it -- so draws, redundant binds, pipeline state hashes, el_capture_diff and el_replay have nothing to measure here, and the driver prints them as UNMEASURABLE with the cause and the owed emission site in the same block as the numbers, every run. IT DELIBERATELY DOES NOT RECONSTRUCT THE ENGINE'S VISIBILITY TEST FROM OUTSIDE: mob_draw culls on 200 less than vz less than 40x256, and copying that predicate into the instrument would be a duplicate ruler that drifts silently the day the engine changes it. A NAMED ABSENCE IS A BUILD CONTRACT; A RECONSTRUCTED NUMBER IS A LIE WITH A DENOMINATOR. The contract: one el_draw inside mob_draw's vis branch and one for the voxel pass in render_impl, owned by the engine lane.
bit-determinism of the real render path, per cell: 256 of 256 cells at 1000 permil. MEASURED 2026-09-01 by nx_enginelab golden: two INDEPENDENT engine arenas, one seed, the real framebuffer compared cell by cell through el_golden. nx_mhbench lists bit-determinism as a HAVE axis for this estate and this is the first time it has been measured on the real render path with a per-cell ruler rather than asserted. A whole-image compare would say only same or different; a grid says WHERE, which is the only form a regression report can act on.
EL7's second clause is now satisfiable in RENDER units, and the remaining blocker is NAMED: a scale-aware image compare. MEASURED 2026-09-01, and it SHARPENS the import-edge row above rather than repeating it. That row's own correction is right: the blocker was never a missing import, it is that the governed policy speaks perplexity-permil while the render controller speaks milliseconds, and quality means two different physical things in the two places. What was missing on the RENDER side was any measurable image-quality quantity at all. The driver now publishes, from ONE call on ONE clock, the frame time AND the quality level actually rendered AND the fraction of native as native_permil AND the ray count, and el_golden supplies a per-cell IMAGE ruler over the real framebuffer in render units rather than model units. THE ONE REMAINING PIECE IS SMALL AND EXACT: vd_grid_parity walks the SAME pixel coordinates in both images -- read from its source, cw greater than b.w REFUSES -- so it is scale-blind and a 240x150 reduced render cannot be compared against the 1920x1200 native reference. With a scale-aware grid the board gets the curve it actually needs, image parity permil against frame milliseconds per quality level, which IS the conversion the design rung was missing. Stated as a bound, not a claim: nothing here converts perplexity to pixels and nothing here should try.

Research bar. Tracy CPU profiling is measured on Nanosecond-resolution zones, allocations, lock contention and call-stack sampling. Theirs: instrumented zones plus sampling plus flame view. Ours: exact instrumented zones with self time, no sampling and no flame export.

Research bar. MangoHud pacing telemetry is measured on Live in-swapchain overlay of frame times, lows and system telemetry. Theirs: live overlay while the game runs. Ours: post-hoc analysis of a recorded spine, no overlay.

Latest recorded release

No valid dated release entry is recorded for this domain.

Release entries describe recorded changes; they do not establish that every capability passed evaluation.

30 of 32 capability source symbols found|6 of them authored stronger-claims|2 open|coverage 937/1000|adoption 26 full / 4 partial

Evidence profile — what the gaps on this board actually are

Measured by nx_swcompare_evidence, read back by nx_evprofile_lib. Every figure is a count with its denominator — there is deliberately no score, no grade and no percentage anywhere in this band, because a stored scalar is a field a seat can edit and a counted partition is not.

evidence|grounded 30/30|unsupported 0|gates green 2/2|proven able to fail 2/2|never bitten 0|green at 0/0 0|open gaps 2|of them unnamed 0|of them proof withheld 0|flips ready 1

proven able to fail counts the gates that have a RECORDED RED — nx_gate_bite mutated the gate subject, rebuilt it, watched the gate go red, and that record is inside the shared TTL. never bitten is its complement over the same denominator: those gates ran and were green, and nothing has ever shown them able to detect anything, so their green is a statement about this run and not about the gate. green at 0/0 is a separate and much weaker observation — the gate printed GREEN on a zero denominator, so its own tooth counter says it examined nothing. A gate can be green, non-zero, and still never bitten; that is the common case and it is now visible instead of implied.

partition: grounded + unsupported = 30 vs present 30 · named + unnamed + withheld = 2 vs open 2 · both reconcile

liar-kill conj=GPQN · all four conjuncts held

graded document: BUILDROOT tree, 17173 bytes · gates map: PRIMARY · stamped 0d 13h ago · source ../knowledge/status/evstamp_enginelab.verdict

Gap classWhat it is, and the work it names
FLIP-READYA watch contract symbol is now present in the organ it named: the cell can flip on a pure data edit with no new code. These are the cheapest closures on this board and they belong before any new work.
This band reports the referee counts. The per-axis worklist rows — which axis is unsupported, which watch is ready to flip, which gap is unnamed — are printed by nx_swcompare_evidence enginelab itself and are not carried on the stamp, so this page names the classes and the producer names the rows. That split is stated rather than hidden: a count without a worklist is not actionable, and this band is honest about which half of that it is.

Production map

Follow the dependencies, declared acceptance criteria and recorded priorities. Inspect source binding before treating a rank as executable work.

Ranking source binding: STALE_INCONSISTENT. Recorded priorities require current acceptance evidence and resource checks before execution.

Recorded ranking withheld

Current prerequisite graph is invalid or unavailable. Historical rank data is retained, but cannot establish a current order. Latest execution outcome is unverified.

Declared roadmap — contract, acceptance, executor, effort

RungCloses withDefinition of done (pre-declared)ExecutorEst.
Persist a capture to a file and reopen it byte-identically (EL1)
after none
el_capture_writeA capture written, reloaded, and proven to reproduce every analyzer figure bit-identically to the in-memory original, with a truncated file REFUSED rather than partially parsedorgan2 u
Deterministic replay of a captured draw stream (EL2)
after EL1
el_replayReplaying a capture reproduces the same state-hash sequence, proven by a tooth that mutates one draw and sees the replay diverge at exactly that ordinalorgan3 u
Inspect real resource and buffer contents per draw (EL3)
after EL1
el_resource_readA named buffer readable back from a capture with its bytes, and a tooth proving two draws whose state hash matches also match on contents, so the hash is shown to be a sound proxy rather than assumed to beorgan3 u
Shader and pipeline source inspection per draw (EL4)
after EL3
el_shader_dumpThe shader bound at a given draw ordinal recoverable from the capture, bite-proven against a capture where two draws bind different shadersorgan2 u
Sampling profiler for code with no instrumentation (EL5)
after none
el_sample_stackPeriodic stack samples attributed to zones with a stated sampling interval and a published horizon, so what the sampler CANNOT see is on the record beside what it canorgan4 u
Flame graph and call-tree export (EL6)
after none
el_flame_emitA call tree emitted from the existing parent-child accounting, with a tooth asserting the tree total reconciles exactly to the sum of root inclusive timesorgan2 u
Live overlay driven by the running frame spine (EL7)
after none
el_overlay_emitAn overlay reading the same spine the analyzers read, with a tooth proving the overlay figure equals el_frame_stats on the same data -- one ruler, two surfaces, no second answer. SECOND CLAUSE, added 2026-08-28 from a sibling lane and binding: the overlay must publish a frame-time number and an IMAGE-QUALITY number ON THE SAME CLOCK, because a pacing figure published alone is exactly how performance work silently becomes pixels -- nothing in this estate currently measures the image that an adaptive-quality controller degrades, so an overlay that reports only milliseconds would make the degradation invisible while appearing to instrument itorgan4 u
Import a hardware or vendor GPU trace onto the spine (EL8)
after EL1
el_trace_importAn external trace mapped onto EL_K_GPU records such that el_bound_verdict and el_frame_attr work unchanged on it, proving the spine is a general format and not a private oneorgan5 u

Milestones

MilestoneRungsCumulative
M0 · The spine, provenadmission0 u
M1 · Captures that leave the processEL1 EL25 u
M2 · Depth inside a captureEL3 EL410 u
M3 · Profiling code we did not instrumentEL5 EL616 u
M4 · Live and externalEL7 EL825 u
RungCloses withDefinition of done (pre-declared)ExecutorEst.
The engine-lab spine is admitted and proven (admission)-DECLARED 2026-09-04 by nx_board_idref_gate. This board's milestone M0 reads The spine, proven at cost 0 with exactly one member, admission, and no rung of that name existed, so M0 counted a member the board could not enumerate and its cumulative estimate was over a set nobody could list. The member is a real subject rather than a typo -- the admission spine that every later engine-lab rung builds on -- and M0 carries it at zero cost because it was already proven when the milestone was written. Declaring it makes M0 enumerable. If the owning lane meant an EL-numbered rung instead, renumber this row rather than deleting it.Board0 u
Ladder verdict. NOT DECLARED. This board names no dated best-in-class or frontier target and no rung roles (sotatarget and rungrole rows on its plan); the ranker labels it NO-LADDER until it does, and until then its rungs climb toward a target nobody has written down. Bars read NO-BAR against the current month 2026-10.
Bar freshness, counted
ClassCountNote
bars0sotabar rows on the plan
fresh0the bar month is the current month
attested0an older bar with a this-month barscan reporting no newer entry
stale0a this-month scan saw a newer month the bar ignores
unattested0nobody looked this month
malformed0a sotabar row missing a field
duplicate0bar ids an earlier row already carries
bars, summed0RECONCILED: the parts sum to the total 0
current month2026-10the month every bar is judged against
Treatment verdict. NOT DECLARED. No rung on this board declares its three-step treatment (a treat row naming the MCP row, the API route, the primitive it composes, the workflow that composes it and the agent beat that runs it); the ranker labels every rung TREATMENT-UNDECLARED until it does.

Inspect a rung and its prerequisites

Declared nodes 9. Rank input binding: STALE_INCONSISTENT. Dependency order is authored. Implementation, acceptance evidence, authority and resource readiness are unverified. No action is recommended or dispatched here.

Plan SHA-256 2e8c9fc75fa90cf39749b3658b718203b9fcc5a092265828fc49ebaa518004c2. Target rows 0; role rows 0. Existing risks and release worklog retain their own scope; no node completion is inferred.

Invalid declared graph. Malformed rows or IDs 0; duplicate IDs 0; duplicate prerequisites 0; missing prerequisites 4; cyclic or cycle-dependent nodes 0. Node paths withheld.

Learning and practice paths

No structured learning path is declared for this plan. Existing research, roadmap and worklog remain available above.

Rung dossiers — every record that bears on a rung, in one place

Joined by symbol, never typed. Each dossier is assembled on every publish from the rows this board already carries: the plan's rung row, the matrix row that carries its contract symbol (its status re-measured by the one symbol ruler), the gate the organ declares and the verdict the evidence referee recorded on its last run, the reference marks in the rung text, the design rows that name the rung and the work log filed against it. The capability matrix links each cell to its dossier and each dossier links back to its cell and forward to the rungs it stands on; a dependency naming no rung on this plan is written as UNRESOLVED rather than linked. Absences are named: NO-MATRIX-ROW, NO-GATE-DECLARED, UNRECORDED.
Gate verdicts: UNSTAMPED — no per-gate verdict artifact is published for this domain yet (nx_swcompare_evidence enginelab writes it beside its stamp); every gate below reads UNRECORDED until it runs.
Gate declarations: knowledge/organ_gate.conf read from this working directory (1 rows) and from the estate root (196 rows); rows in both counted once: 0; declarations read: 197. Every declaration in either copy counts, so a stub beside the publisher can never hide the root.
EL1 Persist a capture to a file and reopen it byte-identically · cell PRESENT · gate NO-GATE-DECLARED
Contractel_capture_write · executor organ · 2 u · stands on none (UNRESOLVED: no such rung on this plan)
Definition of doneA capture written, reloaded, and proven to reproduce every analyzer figure bit-identically to the in-memory original, with a truncated file REFUSED rather than partially parsed
Matrix cellCAPTURE: persist a capture to a file so it can be shipped and reopened · runtime/nx_enginelab_store.nx · PRESENT decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_store; declare nx_enginelab_store TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL2 Deterministic replay of a captured draw stream · cell PRESENT · gate NO-GATE-DECLARED
Contractel_replay · executor organ · 3 u · stands on EL1
Definition of doneReplaying a capture reproduces the same state-hash sequence, proven by a tooth that mutates one draw and sees the replay diverge at exactly that ordinal
Matrix cellCAPTURE: deterministic replay of a captured frame · runtime/nx_enginelab_analysis.nx · PRESENT decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_analysis; declare nx_enginelab_analysis TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL3 Inspect real resource and buffer contents per draw · cell WATCHING · gate NO-GATE-DECLARED
Contractel_resource_read · executor organ · 3 u · stands on EL1
Definition of doneA named buffer readable back from a capture with its bytes, and a tooth proving two draws whose state hash matches also match on contents, so the hash is shown to be a sound proxy rather than assumed to be
Matrix cellCAPTURE: inspect real resource and buffer CONTENTS per draw · runtime/nx_enginelab_lib.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_lib; declare nx_enginelab_lib TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL4 Shader and pipeline source inspection per draw · cell PRESENT · gate NO-GATE-DECLARED
Contractel_shader_dump · executor organ · 2 u · stands on EL3
Definition of doneThe shader bound at a given draw ordinal recoverable from the capture, bite-proven against a capture where two draws bind different shaders
Matrix cellCAPTURE: shader and pipeline source inspection · runtime/nx_enginelab_analysis.nx · PRESENT decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_analysis; declare nx_enginelab_analysis TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL5 Sampling profiler for code with no instrumentation · cell PRESENT · gate NO-GATE-DECLARED
Contractel_sample_stack · executor organ · 4 u · stands on none (UNRESOLVED: no such rung on this plan)
Definition of donePeriodic stack samples attributed to zones with a stated sampling interval and a published horizon, so what the sampler CANNOT see is on the record beside what it can
Matrix cellCPU: sampling profiler that needs no source instrumentation · runtime/nx_enginelab_analysis.nx · PRESENT decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_analysis; declare nx_enginelab_analysis TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL6 Flame graph and call-tree export · cell PRESENT · gate NO-GATE-DECLARED
Contractel_flame_emit · executor organ · 2 u · stands on none (UNRESOLVED: no such rung on this plan)
Definition of doneA call tree emitted from the existing parent-child accounting, with a tooth asserting the tree total reconciles exactly to the sum of root inclusive times
Matrix cellCPU: flame graph and call-tree export · runtime/nx_enginelab_analysis.nx · PRESENT decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_analysis; declare nx_enginelab_analysis TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL7 Live overlay driven by the running frame spine · cell LANDED · gate NO-GATE-DECLARED
Contractel_overlay_emit · executor organ · 4 u · stands on none (UNRESOLVED: no such rung on this plan)
Definition of doneAn overlay reading the same spine the analyzers read, with a tooth proving the overlay figure equals el_frame_stats on the same data -- one ruler, two surfaces, no second answer. SECOND CLAUSE, added 2026-08-28 from a sibling lane and binding: the overlay must publish a frame-time number and an IMAGE-QUALITY number ON THE SAME CLOCK, because a pacing figure published alone is exactly how performance work silently becomes pixels -- nothing in this estate currently measures the image that an adaptive-quality controller degrades, so an overlay that reports only milliseconds would make the degradation invisible while appearing to instrument it
Matrix cellPACING: a live on-screen overlay in the swapchain · runtime/nx_enginelab_lib.nx · LANDED decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_lib; declare nx_enginelab_lib TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
EL8 Import a hardware or vendor GPU trace onto the spine · cell WATCHING · gate NO-GATE-DECLARED
Contractel_trace_import · executor organ · 5 u · stands on EL1
Definition of doneAn external trace mapped onto EL_K_GPU records such that el_bound_verdict and el_frame_attr work unchanged on it, proving the spine is a general format and not a private one
Matrix cellGPU: import a real hardware GPU trace · runtime/nx_enginelab_lib.nx · WATCHING decl
GateNO-GATE-DECLARED — knowledge/organ_gate.conf carries no row for nx_enginelab_lib; declare nx_enginelab_lib TAB <gate> and the ship loop proves it and the verdict lands here.
Work logno log row names this rung yet
admission The engine-lab spine is admitted and proven · cell NO-MATRIX-ROW · gate NO-MATRIX-ROW
Contract- · executor Board · 0 u · stands on nothing
Definition of doneDECLARED 2026-09-04 by nx_board_idref_gate. This board's milestone M0 reads The spine, proven at cost 0 with exactly one member, admission, and no rung of that name existed, so M0 counted a member the board could not enumerate and its cumulative estimate was over a set nobody could list. The member is a real subject rather than a typo -- the admission spine that every later engine-lab rung builds on -- and M0 carries it at zero cost because it was already proven when the milestone was written. Declaring it makes M0 enumerable. If the owning lane meant an EL-numbered rung instead, renumber this row rather than deleting it.
Matrix cellNO-MATRIX-ROW — no matrix row carries -; the ranker reads this rung as unmapped and no cell can flip for it. Add the row and the join completes on the next publish.
Gatethe gate join needs a matrix row: no organ is named for this rung
Work logno log row names this rung yet

dossiers=9 cells_joined=8 no_matrix_row=1 (sum 9) gates_recorded=0 gates_unrecorded=0 no_gate_declared=8 (sum 8 of cells_joined) evgates=UNSTAMPED

Capability comparisons

Compare the field, search individual capabilities and open their source and adoption evidence. Documented presence does not establish comparative quality.

Position map — centrality and distinctiveness

The four-quadrant map the field uses for brand strategy (Dawar and Bagga, HBR June 2015), re-derived from this matrix on every publish. Centrality is the share of the category's feature mass a player covers, each feature weighted by how many hold it; distinctiveness is the average lead over each rival on the rows the player holds; breadth is the depth-weighted share of the whole matrix (the bubble); depth is how deeply the rows held are held; momentum is the day-over-day move off the spine (green rising, red falling, grey until day two); the dashed path runs first day → previous day → today. Dividers are the category means. Axes are fitted to the field of play, so read the tick numerals, not the frame. Rival marks are documented presence, so a rival's position reads the record, never its quality. The picture grades its own readability below; the table beside it is the same data for a screen reader or a second method.

Rows. 32 feature rows mapped of 32 matrix rows; 0 substrate rows (kernels, bounds and instruments the plan's rungrole marks substrate) are the estate's scaffolding, not category features, and stay off the map
Views. 2D cut: centrality, distinctiveness · 3D cube: centrality, distinctiveness, breadth · axes registered: centrality, distinctiveness, breadth, depth, momentum · a board picks its own in knowledge/compare/enginelab.cdmap (cut|x|y, cube|x|y|z); absent = the HBR defaults
Position map, two-dimensional cutOne bubble per player. Bubble area is breadth, the ring colour is momentum, the dashed lines are the category means, and both axes are fitted to the field of play with their tick numerals shown. Every value is repeated in the table that follows. 0 200 400 600 800 1000 350 400 450 500 550 600 650 700 750 centrality (permil, fitted 0–1000) distinctiveness (permil, fitted 350–750) mean 453 mean 574 Unconventional Aspirational Peripheral Mainstream Nishi, centrality 972, distinctiveness 551, breadth 687, depth 733, momentum 0 RenderDoc 1.45, centrality 356, distinctiveness 680, breadth 281, depth 900, momentum 0 Tracy, centrality 520, distinctiveness 594, breadth 333, depth 888, momentum 0 MangoHud, centrality 205, distinctiveness 688, breadth 166, depth 888, momentum 0 GpuVis, centrality 369, distinctiveness 511, breadth 218, depth 777, momentum 0 O3DE, centrality 301, distinctiveness 422, breadth 145, depth 777, momentum 0 Nishi RenderDoc 1.45 Tracy MangoHud GpuVis O3DE

bubble area = breadth · ring = momentum (green rising, red falling, grey until day two) · dashed = category means · axes fitted to the field of play: centrality 0–1000, distinctiveness 350–750 of 0–1000 permil (the full range put every player in one corner)
readability of the 2D cut, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 0 (a fact of the data: two players that close are that close) · data spread 715 permil of the plot · quadrant words unseated 0
text contrast, measured with wcag2-ratio (floors from contrast.conf), light theme: labels 16.24 (floor 4.50) · notes 16.24 (floor 4.50) · quadrant words 5.89 (floor 4.50) · tick numerals 5.89 (floor 4.50) · axis titles 5.59 (floor 4.50) · dark theme: labels 13.78 (floor 4.50) · quadrant words 5.55 (floor 4.50) · axis titles 5.97 (floor 4.50) · dark classes under their floor 0 (one figure serves both themes: a dark shortfall is a token to fix, never a class to hide) · classes refused under their floor 0 (a refused class is not drawn; the scale classes are measured, never hidden) · export: SVG PNG (receipt, rendered by the estate's own rasteriser from this page)
Position map, three-dimensional cubeThe same players in an isometric cube. Each axis is fitted to its own field of play and carries numerals on the floor grid and the vertical axis; each bubble drops a dotted line to its floor shadow so height reads as height. Values are in the table that follows. 0 200 400 600 800 1000 350 400 450 500 550 600 650 700 750 0 100 200 300 400 500 600 700 800 centrality distinctiveness breadth O3DE: centrality 301, distinctiveness 422, breadth 145 GpuVis: centrality 369, distinctiveness 511, breadth 218 MangoHud: centrality 205, distinctiveness 688, breadth 166 Tracy: centrality 520, distinctiveness 594, breadth 333 RenderDoc 1.45: centrality 356, distinctiveness 680, breadth 281 Nishi: centrality 972, distinctiveness 551, breadth 687 Nishi RenderDoc 1.45 Tracy MangoHud GpuVis O3DE
axes fitted: centrality 0–1000 · distinctiveness 350–750 · breadth 0–800 permil · farther bubbles are painted first, nearer ones over them · the floor shadow is each bubble's (x, y) at height 0
readability of the 3D cube, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 1 (a fact of the data: two players that close are that close) · data spread 386 permil of the plot
Position map, small multiplesEvery pair of registered axes as one small cut. Each panel fits both axes to the field of play, the dashed lines are the category means, bubble area is breadth and the ring colour is momentum; the legend below names the colours. 0 1000 350 750 distinctiveness vs centrality Nishi: centrality 972, distinctiveness 551 RenderDoc 1.45: centrality 356, distinctiveness 680 Tracy: centrality 520, distinctiveness 594 MangoHud: centrality 205, distinctiveness 688 GpuVis: centrality 369, distinctiveness 511 O3DE: centrality 301, distinctiveness 422 0 1000 0 800 breadth vs centrality Nishi: centrality 972, breadth 687 RenderDoc 1.45: centrality 356, breadth 281 Tracy: centrality 520, breadth 333 MangoHud: centrality 205, breadth 166 GpuVis: centrality 369, breadth 218 O3DE: centrality 301, breadth 145 0 1000 700 950 depth vs centrality Nishi: centrality 972, depth 733 RenderDoc 1.45: centrality 356, depth 900 Tracy: centrality 520, depth 888 MangoHud: centrality 205, depth 888 GpuVis: centrality 369, depth 777 O3DE: centrality 301, depth 777 0 1000 480 520 momentum vs centrality Nishi: centrality 972, momentum 500 RenderDoc 1.45: centrality 356, momentum 500 Tracy: centrality 520, momentum 500 MangoHud: centrality 205, momentum 500 GpuVis: centrality 369, momentum 500 O3DE: centrality 301, momentum 500 350 750 0 800 breadth vs distinctiveness Nishi: distinctiveness 551, breadth 687 RenderDoc 1.45: distinctiveness 680, breadth 281 Tracy: distinctiveness 594, breadth 333 MangoHud: distinctiveness 688, breadth 166 GpuVis: distinctiveness 511, breadth 218 O3DE: distinctiveness 422, breadth 145 350 750 700 950 depth vs distinctiveness Nishi: distinctiveness 551, depth 733 RenderDoc 1.45: distinctiveness 680, depth 900 Tracy: distinctiveness 594, depth 888 MangoHud: distinctiveness 688, depth 888 GpuVis: distinctiveness 511, depth 777 O3DE: distinctiveness 422, depth 777 350 750 480 520 momentum vs distinctiveness Nishi: distinctiveness 551, momentum 500 RenderDoc 1.45: distinctiveness 680, momentum 500 Tracy: distinctiveness 594, momentum 500 MangoHud: distinctiveness 688, momentum 500 GpuVis: distinctiveness 511, momentum 500 O3DE: distinctiveness 422, momentum 500 0 800 700 950 depth vs breadth Nishi: breadth 687, depth 733 RenderDoc 1.45: breadth 281, depth 900 Tracy: breadth 333, depth 888 MangoHud: breadth 166, depth 888 GpuVis: breadth 218, depth 777 O3DE: breadth 145, depth 777 0 800 480 520 momentum vs breadth Nishi: breadth 687, momentum 500 RenderDoc 1.45: breadth 281, momentum 500 Tracy: breadth 333, momentum 500 MangoHud: breadth 166, momentum 500 GpuVis: breadth 218, momentum 500 O3DE: breadth 145, momentum 500 700 950 480 520 momentum vs depth Nishi: depth 733, momentum 500 RenderDoc 1.45: depth 900, momentum 500 Tracy: depth 888, momentum 500 MangoHud: depth 888, momentum 500 GpuVis: depth 777, momentum 500 O3DE: depth 777, momentum 500
Nishi RenderDoc 1.45 Tracy MangoHud GpuVis O3DE
10 panels over 5 registered axes, every pair once (the lower axis on x, the higher on y) · each panel fitted to its own field of play, first and last tick numerals shown · no labels in a small cut, the legend names the colours; the grade below reports the mark terms only (MM summed over the panels, spread averaged)
readability of the small multiples, self-graded by the layout ruler: label overlaps 0 · labels over marks 0 · off-canvas 0 · unresolved labels 0 · mark overlaps 6 (a fact of the data: two players that close are that close) · data spread 554 permil of the plot
PlayerQuadrantcentralitydistinctivenessbreadthdepthmomentumRows heldDays on spineFirst seen
NishiMainstream9725516877330 since 2026-09-2330102026-09-15
RenderDoc 1.45Unconventional3566802819000 since 2026-09-2310102026-09-15
TracyAspirational5205943338880 since 2026-09-2312102026-09-15
MangoHudUnconventional2056881668880 since 2026-09-236102026-09-15
GpuVisPeripheral3695112187770 since 2026-09-239102026-09-15
O3DEPeripheral3014221457770 since 2026-09-236102026-09-15
DayMatrix rows reviewedPlayers recorded
2026-09-15326
2026-09-16326
2026-09-17326
2026-09-18326
2026-09-19326
2026-09-20326
2026-09-21326
2026-09-22326
2026-09-23326
2026-10-08326

players 6|matrix rows 32|feature mass 73|centrality mean 453|distinctiveness mean 574|axes 5|spine days 10 (shown 10)|rows written today 0|readability defects 2D 0 cube 0|spine knowledge/status/cdmap/enginelab.spine

How to read this evidence. A Nishi source mark records whether the named symbol is declared in the selected source file. It does not establish working behavior or accepted delivery. A watching tag names an expected source entry; discovering it updates source coverage only. A dark tag means the file exists but the named symbol was not found: inspect the source and contract before assuming the capability is missing or renaming code. Peer codes are authored assessments; unassessed means no comparison is established, not absence. Qualification, deployment identity, runtime observations and acceptance must carry their own evidence. Adoption records the catalog's observed path through source, build, promotion, registration and invocation; libraries use importer evidence and gates use declared execution surfaces. A full catalog path does not establish quality, freshness or a successful user outcome. Partial and unknown states retain their stated next action. Census stamps: importers asof 1790637268, gate census asof 1790104131 (unix seconds; -1 = census absent).

Capability matrix — measured against source

◉ authored stronger claim; source present● present◐ partial○ absent? unassessed; excluded from relative comparison · click any capability for its evidence

Peer cell coverage: authored assessed 160, unassessed 0. Authored assessments are not verified outcomes.

CapabilityNishiRenderDoc 1.45TracyMangoHudGpuVisO3DE
SPINE
one record layout for frame, zone, GPU slice, draw, allocation and lock, on one clockSource present; authored stronger claim: el_push in runtime/nx_enginelab_lib.nx, verified at emit. THE reason this board exists. Eight i64 per event, payload meanings named per kind rather than remembered. Every rival records a DIFFERENT format with a different clock, which is not a criticism of any of them -- each is excellent at its own subject -- but it is why no rival can offer the join row below. Gate T1 asserts a pushed record reads back on every field. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉○○○○○
a full store REFUSES the event, counts the refusal, and reports incomplete coverageSource present; authored stronger claim: el_complete in runtime/nx_enginelab_lib.nx, verified at emit. NO SILENT CAPS, made structural rather than remembered. A cap reached in silence becomes a measurement nobody knows is partial, so el_push returns -1 and increments a drop counter, and el_complete is the one call that says whether every event offered was stored. Gate T2 plus a named negative control proving the store reports complete BEFORE it overflows. Profilers in the field drop events under load by design; the difference here is that the drop is reported in the same structure that holds the data. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉○○○○○
CPU
zone SELF time, computed exactly by charging each child back to its parentMeasured: el_zone_self exists in runtime/nx_enginelab_lib.nx, verified at emit. Inclusive time says a function is expensive; only SELF time says whether the cost is IN it or BELOW it, and an instrument reporting inclusive alone sends every reader to the top of the call tree. Each open zone accumulates its direct children in its own record, so self equals duration minus children, exact and never sampled. Gate T3 asserts 100 inclusive minus 30 child equals 70 self. Tracy is the reference implementation of this idea and is coded Best [tracy]. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud; fully adopted on the estate ladderCons behind Tracy (leads)
●○◉○●●
per-name aggregation with still-open scopes reported, never folded into the totalsMeasured: el_zone_agg exists in runtime/nx_enginelab_lib.nx, verified at emit. Calls, inclusive, self and max per zone name, plus a separate count of occurrences still open at read time. An open scope has no duration, and averaging it in as zero is how a hot zone disappears from its own report. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind Tracy (leads)
●○◉○○○
the hottest zone by SELF time across a captureMeasured: el_zone_hottest exists in runtime/nx_enginelab_lib.nx, verified at emit. Returns -1 rather than nominating record zero when no closed zone exists, because an empty capture has no hottest zone and a default that looks like an answer is worse than an absence. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind Tracy (leads)
●○◉○○○
root-zone resolution so nested scopes are never double-countedMeasured: el_zone_is_root exists in runtime/nx_enginelab_lib.nx, verified at emit. A zone is a root when no other closed zone on the same thread strictly contains it. Summing nested zones would manufacture an occupancy above 1000 permil out of entirely correct data, which is the arithmetic that makes a CPU-bound verdict wrong in the flattering direction. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○●○○○
allocation and free accounting with UNMATCHED FREES surfaced as their own classMeasured: el_mem_stats exists in runtime/nx_enginelab_lib.nx, verified at emit. Live bytes are allocations minus the allocations actually matched by a free. An unmatched free means the capture began mid-run, so the leak number describes the WINDOW and not the program -- surfaced as ORPHAN rather than swallowed, so the caller can say which. Gate T31 plus a named negative control. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind Tracy (leads)
●○◉○○○
lock-wait events carried on the same spine as everything elseMeasured: el_lock_wait exists in runtime/nx_enginelab_lib.nx, verified at emit. Contention is recorded as a first-class event with its owner, so it lands in the frame join below rather than in a separate tool. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, O3DE; fully adopted on the estate ladderCons behind Tracy (leads)
●○◉○●○
PACING
frame statistics with every definition stated in the sourceMeasured: el_frame_stats exists in runtime/nx_enginelab_lib.nx, verified at emit. Frames, span, average, worst, median, stutter count, and the count of frames left OPEN and therefore excluded from every statistic. A percentile with an unstated definition is a number two people read two ways. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, GpuVis; fully adopted on the estate ladderCons behind MangoHud (leads)
●○●◉○●
the 1 percent low as the MEAN of the worst 1 percent, not the 99th percentile frame timeMeasured: el_low_mean_fps exists in runtime/nx_enginelab_lib.nx, verified at emit. These two are different numbers and quoting one while meaning the other is how pacing claims drift. The CapFrameX and MangoHud sense is implemented and named in the source [mangohud]. Gate T10 asserts the low is STRICTLY worse than the average on a spiky series, so the statistic is proven to DISCRIMINATE rather than merely to compute -- a signal that fires on everything discriminates nothing. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, GpuVis, O3DE; fully adopted on the estate ladderCons behind MangoHud (leads)
●○○◉○○
stutter detection against a multiple of the MEDIAN, threshold passed as a parameterMeasured: el_frame_stats exists in runtime/nx_enginelab_lib.nx, verified at emit. Bars are arguments with named default consts, never numbers buried in code, so a stutter definition can be driven from conf. Gate T11 is a BITE cell: the detector fires on an injected 100ms spike and stays silent on a perfectly paced series. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, GpuVis, O3DE; fully adopted on the estate ladderCons behind MangoHud (leads)
●○○◉○○
rolling FPS COMPOSED from nx_fpsmeter rather than re-implementedMeasured: el_fps_rolling exists in runtime/nx_enginelab_lib.nx, verified at emit. There is exactly one rolling FPS meter in this estate and this routes through it, so if that meter changes this changes with it and there is no second answer to reconcile. THIS ROW FOUND A REAL DEFECT: gate T13 failed on its first run because fm_fps scanned all 128 ring slots and counted the zero-initialised tail as real frames whenever the clock was near zero -- exactly the regime a REPLAYED capture lives in. Root-fixed in the incumbent to scan only its own fill count, which is bit-identical once the ring is warm. The incumbent gate could not have caught it: all three of its teeth start at t0 equals 100000, so its fixture could never reach the condition. It now carries a regression tooth and runs 4 of 4 GREEN. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○●○○
per-frame budget verdict COMPOSED from nx_frame_budgetMeasured: el_budget_verdict exists in runtime/nx_enginelab_lib.nx, verified at emit. Budget and headroom come from the estate's one budget organ. Gate T14 asserts a 16ms frame fits the 60fps budget at 16666us with 666us headroom, and T15 bite-proves the over-run direction. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, GpuVis; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
●○○●○●
GPU
queue slices recorded with SUBMIT and START as separate timestampsMeasured: el_gpu_slice exists in runtime/nx_enginelab_lib.nx, verified at emit. Recording only execution time cannot answer whether the GPU is starved by the CPU or backed up behind itself. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of MangoHud, O3DE; fully adopted on the estate ladderCons behind GpuVis (leads)
●●●○◉○
submit-to-start LATENCY measured, not just execution timeMeasured: el_gpu_stats exists in runtime/nx_enginelab_lib.nx, verified at emit. The number that says which of those two is happening. Gate T19 asserts a 50us wait is measured from a slice submitted at 50 and started at 100. GpuVis is the reference tool for reading hardware queue timelines and is coded Best on this row [gpuvis]. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, MangoHud, O3DE; fully adopted on the estate ladderCons behind GpuVis (leads)
●○○○◉○
the CPU-bound or GPU-bound verdict ABSTAINS when it has no GPU evidenceSource present; authored stronger claim: el_bound_verdict in runtime/nx_enginelab_lib.nx, verified at emit. Five outcomes and the third one is load-bearing. With no GPU slices in the window the answer is UNKNOWN, never CPU-BOUND: reporting a bound because the other unit was not instrumented is an instrument acquitting on absent evidence, and it fails in the flattering direction so nobody investigates. Gate T16 and T17 prove both real verdicts at 980 permil occupancy, and a NAMED negative control proves the abstention. No rival ships a bound verdict that refuses to answer. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉○○○●○
CAPTURE
draw calls recorded with pipeline, vertex count and bound-state hashMeasured: el_draw exists in runtime/nx_enginelab_lib.nx, verified at emit. RenderDoc is the reference frame debugger and is coded Best across the capture rows: its own introduction describes a graphics debugger for Vulkan, D3D11, D3D12, OpenGL and OpenGL ES [renderdoc]. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind RenderDoc 1.45 (leads)
●◉○○○○
an ORDER-SENSITIVE pipeline state hashMeasured: el_state_hash exists in runtime/nx_enginelab_lib.nx, verified at emit. Polynomial and integer. Two draws with the same bindings in a DIFFERENT order are not the same state and must not hash alike, which gate T26 asserts directly. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind RenderDoc 1.45 (leads)
●◉○○○○
redundant consecutive state binds countedMeasured: el_draw_redundant exists in runtime/nx_enginelab_lib.nx, verified at emit. Every redundant bind is work the engine paid for and did not need -- the classic finding a frame debugger exists to surface. Gate T24 is a BITE cell and T25 asserts the count is exactly one, not merely that something was flagged. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons behind RenderDoc 1.45 (leads)
●◉○○○○
two captures diffed to NAME the exact divergent draw, the field and both valuesSource present; authored stronger claim: el_capture_diff in runtime/nx_enginelab_lib.nx, verified at emit. The frame debugger's real job, made arithmetic. Two captures of the same frame that render differently: this returns the draw ordinal, a field code saying WHAT differs, and both values, instead of leaving a human to compare two lists by eye. Gate T21 asserts ordinal 2 field VERTS values 300 against 999, and T22 bite-proves it. A diff over ZERO draws returns UNMEASURABLE and never SAME, proven by a named negative control: two captures that recorded nothing are not two identical frames, and returning SAME there would let a harness that captured nothing report a clean run forever. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉●○○○○
REGRESSION
golden-image comparison COMPOSED in-process from nx_visual_diffMeasured: el_golden exists in runtime/nx_enginelab_golden.nx, verified at emit. Grid-cell parity against a stored reference, composed as a FUNCTION rather than forked as a program, because handing a whole-image walker the wrong shape of argument is how a zero-subject run comes back GREEN. O3DE is the reference for engine-side automated image-comparison testing and is coded Best [o3de]. Gate T27 and T28 assert 1000 permil on identical images and 15 of 16 cells on one altered cell, and T29 bite-proves the pair. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis; fully adopted on the estate ladderCons behind O3DE (leads)
●○○○○◉
the comparator's REFUSAL survives composition instead of flattening into a passSource present; authored stronger claim: el_golden in runtime/nx_enginelab_golden.nx, verified at emit. nx_visual_diff returns -1 for a window it cannot actually measure, and it does so because that exact case once banked eight perfect frames that were never compared. Turning that refusal into a PASS one layer up would re-open the defect, so el_golden returns UNMEASURABLE and a named negative control asserts it. A regression harness that reports PASS for a comparison it could not perform is worse than no harness. Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉○○○○○
THE JOIN
one call ties a frame to its draws, GPU queue time, CPU root time, lock wait and bytesSource present; authored stronger claim: el_frame_attr in runtime/nx_enginelab_lib.nx, verified at emit. THE EXCEED, and it is mechanical rather than clever: it exists only because all five instrument classes share one record layout and one clock. For a given frame it returns duration, draw count, GPU busy, CPU root time, lock wait, bytes allocated, and the hottest zone BY SELF TIME. No rival can answer this at all -- not through lack of skill but because their captures are separate files, and joining them would mean correlating two clocks after the fact. Gate T33 T34 and T35 assert every field including that CPU root time sums without double-counting. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
Pros Source symbol found; stronger capability claim is authored; ahead of RenderDoc 1.45, Tracy, MangoHud, GpuVis, O3DE; fully adopted on the estate ladderCons none on the measured axes (rival marks are documented presence, not depth)
◉○○○○○
HARNESS
the instrument is gate-proven with bite cells and named negative controlsMeasured: eg_mk_capture exists in runtime/nx_enginelab_gate.nx, verified at emit. 38 of 38 GREEN via /api/gate_run exit_code 0. Fixtures are built in memory inside the gate process, never on disk and never shared with a production beat, so there is no teardown to skip and no run that can poison the next. Seven controls are named neg-control so a census can COUNT them: a control nobody can find is a control nobody maintains. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: GATE:LIVE trial=- — fully adopted (top of its ladder).
Pros Implementing source symbol found; runtime acceptance separate; ahead of MangoHud, GpuVis; fully adopted on the estate ladderCons behind O3DE (leads)
●●●○○◉
CAPTURE
persist a capture to a file so it can be shipped and reopenedMeasured: el_capture_write exists in runtime/nx_enginelab_store.nx, verified at emit. OPEN AND STATED. Captures are in-memory only today, which means they cannot be attached to a bug report or diffed across machines. RenderDoc's rdc file is the reference for this and the whole workflow depends on it. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-WIRED importers=2 nonval=1 — fully adopted (top of its ladder).
dossier
Pros Implementing source symbol found; runtime acceptance separate; ahead of MangoHud; fully adopted on the estate ladderCons behind RenderDoc 1.45 (leads), Tracy (leads)
●◉◉○●●
deterministic replay of a captured frameMeasured: el_replay exists in runtime/nx_enginelab_analysis.nx, verified at emit. OPEN AND STATED. Recording a draw stream is not re-executing it, and replay is what makes a frame debugger interactive rather than archival. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
dossiernot adopted: imported only by validation organs (gates, tests, benches): wire it into a shipping program
Pros Implementing source symbol found; runtime acceptance separate; ahead of Tracy, MangoHud, GpuVis, O3DECons behind RenderDoc 1.45 (leads); not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program
●◉○○○○
inspect real resource and buffer CONTENTS per drawDARK — runtime/nx_enginelab_lib.nx EXISTS but does not declare el_resource_read: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN AND STATED. We record a state HASH, which detects that two draws differ; RenderDoc shows you the actual vertex buffer and texture, which tells you HOW. That is a genuinely deeper capability and the gap is named rather than blurred. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
dossierwatching el_resource_read
Pros none measured yetCons behind RenderDoc 1.45 (leads); open contract; expected source declaration not established
○◉○○○○
shader and pipeline source inspectionMeasured: el_shader_dump exists in runtime/nx_enginelab_analysis.nx, verified at emit. OPEN AND STATED. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
dossiernot adopted: imported only by validation organs (gates, tests, benches): wire it into a shipping program
Pros Implementing source symbol found; runtime acceptance separate; ahead of Tracy, MangoHud, GpuVis, O3DECons behind RenderDoc 1.45 (leads); not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program
●◉○○○○
CPU
sampling profiler that needs no source instrumentationMeasured: el_sample_stack exists in runtime/nx_enginelab_analysis.nx, verified at emit. OPEN AND STATED. Every zone here is an explicit begin and end in source. Sampling call stacks of an uninstrumented binary is a different mechanism and the one that makes a profiler usable on code you do not own. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
dossiernot adopted: imported only by validation organs (gates, tests, benches): wire it into a shipping program
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, O3DECons behind Tracy (leads); not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program
●○◉○●○
flame graph and call-tree exportMeasured: el_flame_emit exists in runtime/nx_enginelab_analysis.nx, verified at emit. OPEN AND STATED. The parent-child arithmetic is already there in the self-time accounting; what is absent is the emission. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them Adoption: LIB-GATE-ONLY importers=1 — PARTIAL: imported only by validation organs (gates, tests, benches): wire it into a shipping program.
dossiernot adopted: imported only by validation organs (gates, tests, benches): wire it into a shipping program
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, MangoHud, O3DECons behind Tracy (leads); not adopted yet: imported only by validation organs (gates, tests, benches): wire it into a shipping program
●○◉○●○
PACING
a live on-screen overlay in the swapchainMeasured: el_overlay_emit exists in runtime/nx_enginelab_lib.nx, verified at emit. OPEN AND STATED. Everything here is post-hoc analysis of a recorded spine. MangoHud draws while the game runs, which is a different and genuinely useful thing [mangohud]. Adoption: LIB-WIRED importers=6 nonval=4 — fully adopted (top of its ladder).
dossier
Pros Implementing source symbol found; runtime acceptance separate; ahead of RenderDoc 1.45, Tracy, GpuVis, O3DE; fully adopted on the estate ladderCons behind MangoHud (leads)
●○○◉○○
GPU
import a real hardware GPU traceDARK — runtime/nx_enginelab_lib.nx EXISTS but does not declare el_trace_import: something shipped at this path under another name, and this mark would read open forever. Repoint the contract to the real entry point (the plan rung AND this row) or rename the function; the flip follows on the next beat, and the comparewatch- plane row reads DARK until then. OPEN AND STATED. Queue slices are recorded by our own instrumentation today. Ingesting a vendor or kernel trace is what would let this board measure engines we did not build. rival marks uncited — the Yes, Best or Part codes on this row are an observation read with no reference mark behind them
dossierwatching el_trace_import
Pros none measured yetCons behind GpuVis (leads); open contract; expected source declaration not established
○○○○◉○
Rival-claim provenance. Every Yes, Best or Part mark in a rival column is a claim about someone else's product. A cited row carries a reference mark that resolves to a pinned mirror (the refs gate measures that); an uncited row is an observation read and is badged in its evidence until a reference lands. The badge is the receipt, never the proof: a mark proves a mirror exists, not that the mirror supports the code. The rows are counted below.
Rival claims, counted
ClassCountNote
rows with rival marks28rows carrying a Yes, Best or Part in a rival column
cited6a reference mark resolves to a pinned mirror
uncited22an observation read, badged until a reference lands
rows, summed28RECONCILED: the parts sum to the total 28

Delivery and evidence

Inspect risks, technical debt, rendered observations, experiments and references. Read scope and limitations alongside every result.

Risk register

RiskLikelihood x impactMitigation
The spine becomes a sixth capture format nobody else can readmedium x highEL8 is deliberately on the ladder: importing an external trace onto the same records is the proof that the layout is general rather than private, and it is the rung that makes the board able to measure engines we did not build.
A sampling profiler reports a confident distribution of noisemedium x highEL5 done-rule requires a stated sampling interval and a published horizon, so what the sampler cannot see is on the record beside what it can, exactly as the existing rolling-FPS horizon is stated rather than implied.
Depth rungs quietly drop the abstention discipline that makes the present rows trustworthylow x highEvery rung done-rule above names a bite or a refusal case, never only a success case: EL1 refuses a truncated file, EL2 must diverge at the mutated ordinal, EL3 must prove the hash is a sound proxy rather than assume it.
The instruments pass while the product is visibly wrong -- the case this board exists to answerhigh x highFIVE INDEPENDENT WITNESSES IN ONE DAY, 2026-08-28. ATTRIBUTION IS PART OF THE EVIDENCE: four were measured by a sibling lane and are recorded here as that lane's measurements, NOT re-verified from this one -- a capture organ published 240x150 of a 1920x1200 frame as evidence; a judge scored the top 50 rows of a 1200-row frame and returned a confident number; a governor ratcheted against a triangle count its only actuator could not touch and killed the GPU context; and the string operator frame 20:19 appears six times in live source as the QA of record. THE FIFTH I CAN CORROBORATE FROM THIS LANE'S OWN EVIDENCE, which is why it is the one to reason from: /world/beach served HTTP 200 with every asset decoded, a11y clean and nx_page_verify GREEN while rendering an empty shore with no characters at all. I ran nx_page_verify against /compare/enginelab today and read its verdict line myself -- it states exactly what it proves, every referenced asset fetches AND decodes, and it makes NO claim about whether the render has content. So a GREEN there on an empty scene is not the instrument lying; it is the instrument being asked a question it never claimed to answer, and a reader treating page-liveness as render-correctness supplying the error. THAT GAP IS THIS BOARD'S SUBJECT: el_golden compares a render against a stored reference and el_capture_diff names the divergent draw, and neither can be satisfied by a page that fetches cleanly and draws nothing.
A future capture rung acquires a browser driver-protocol dependency and the board stops being portablemedium x highNAMED BEFORE IT HAPPENS, 2026-08-28, prompted by an operator directive to use Waterfox and stop using Edge. Waterfox is Gecko, so the Chrome DevTools Protocol does not exist there and every CDP wire in this estate is inoperative against it -- it fails to CONNECT rather than failing usefully, which is the honest failure mode and not the dangerous one; the dangerous case is always a tool that connects and returns a confident wrong answer, and that distinction decides whether a remedy is port-to-BiDi or stop-trusting-the-number-already-collected. THIS BOARD HAS NO CDP DEPENDENCY TODAY, and that is mechanical rather than remembered: none of EL1 through EL8 names a driver protocol, every capture rung is our own instrumentation writing into the spine, and el_golden takes two DECODED IMAGE STRUCTS FROM ITS CALLER so where the pixels came from is never baked in. THE RISK IS A FUTURE SEAT, not the present state: EL1 capture-persistence and EL3 resource-inspection are precisely where somebody reaches for a driver protocol to grab a frame, and by the time it is load-bearing the argument is already lost. RULE FOR ANY RUNG THAT WANTS ONE: state why it is an ORACLE and not a DEPENDENCY -- the capability must survive the protocol being absent, which is the test CDP fails against Gecko by construction. EL7's in-page overlay is the portable half BY CONSTRUCTION because it runs inside the page rather than talking to it over a wire, which is the same reason the spine is pure integer. SHARPENED SAME DAY BY A SIBLING LANE'S MEASUREMENT, AND IT PARTLY INVERTS THE RISK ABOVE: against Gecko, CDP fails HONESTLY by not connecting, but against Chromium it can produce the DANGEROUS failure for exactly the measurement class these rungs care about. requestAnimationFrame was measured NOT FIRING on a CDP wire -- count 0 over 120 to 400 ms across five loads, recorded in the emitting organ's own comment -- so a frame-driven capture taken over that wire returns a CONFIDENT EMPTY RESULT rather than an error, and an empty frame series is indistinguishable from a scene that genuinely drew nothing. That is the same shape as the page-verify witness in the risk row above: not an instrument lying, but an instrument answering a question whose precondition silently did not hold. SO THE ORACLE-NOT-DEPENDENCY RULE IS NOT ONLY ABOUT PORTABILITY: a capture rung riding a driver protocol must first prove ITS SUBJECT ACTUALLY TICKS ON THAT WIRE, because until it does, every zero it reports is unreadable in both directions. That measurement is a sibling lane's, recorded here as theirs and not re-verified from this one.
On these two registers. Rows are declared in the domain's plan file and carry the debt id, which is the join key back to the sovereign debt plane — that plane, not this page, is the authority on state. Reconciling them automatically (the regen reading the plane and refreshing these rows) is a named, owed rung; until it lands, treat an id here as a pointer to look up, not a status to trust.
Honest verdict. The join is the exceed and it is mechanical, not rhetorical: one record layout means el_frame_attr answers in a single call what five capture formats structurally cannot answer at all. The abstention discipline is the second exceed -- a bound verdict with no GPU evidence returns UNKNOWN rather than resolving to CPU-BOUND, and a capture diff over zero draws returns UNMEASURABLE rather than identical, so neither instrument can acquit on absent evidence. Where the field leads is depth and it is not close: RenderDoc replays a captured frame and inspects real buffer contents, Tracy samples call stacks without source instrumentation, MangoHud draws a live overlay in the swapchain, and all of that is a watch contract here. The honest summary is that the SPINE is built and proven and the DEPTH is the roadmap.

Person · product · place — not yet measured for this domain

Every compare carries this layer. Declare knowledge/compare/enginelab.ppp (rows surface|nishi or c1..c4|label|url|connect naming OUR live surface and each rival's front door), run nx_ppp_probe domain enginelab, and this section fills itself on the next beat: the same ruler on both sides — privacy and CX (third-party hosts, tracker classes, cookies, security headers), design and longevity (design hygiene, computed WCAG contrast, render-blocking resources, unsized media, script weight, theme and motion queries), findability (landmarks, skip link, on-site search, breadcrumb, headings, internal links).

The field — discovered, not chosen

Rows written by nx_field_discover from enginelab.seeds: the industry's own lists (Wikipedia wikitext, GitHub topics, awesome lists) read mechanically, every candidate counted across seeds. The matrix columns above are a SEAT'S pick; this band is the population they were picked from, and the stats line measures one against the other. A rival here is a lead, never a verdict — it earns a column when its capabilities are read and pinned.

Discovery receipt. One row per counter the run wrote, in the receipt's own order; the rival rows follow in their own table.
Field discovery, counted
ClassCountNote
seeds5
scanned5
fetched5
reused0
failed0
named5
candidates5
mentions5
capped0
RankRivalSeedsMentionsFirst seedKindLink
1RenderDoc 1.4511col0-renderdocnamedhttps://renderdoc.org/docs/introduction.html
2Tracy11col1-tracynamedhttps://github.com/wolfpld/tracy
3MangoHud11col2-mangohudnamedhttps://github.com/flightlessmango/MangoHud
4GpuVis11col3-gpuvisnamedhttps://github.com/mikesart/gpuvis
5O3DE11col4-o3denamedhttps://www.docs.o3de.org/docs/user-guide/testing/

field candidates 5|shown 5 of 5|matrix columns in the field 5 of 5|discovered rivals with no column 0|malformed rows 0 (counted, never rendered)|read-capped 0

Exclusive and shared capabilities

One capability is graded on one board; every other board references it. The fleet duplicate census (nx_rivalcensus dupes, on the fleetdupes clock row) reads every board's matrix and names each capability graded as a row on two or more boards, with a home derived from evidence: rung when exactly one board's plan contracts the symbol (that board is starred), gates when no plan contracts it and exactly one board's executed gate map runs the organ's gate (that board is plussed), ambiguous when several boards carry the deciding evidence (a decision for their seats), and none when no evidence decides it, with the reason beside it: unmapped (no board of the duplicate declares a gates map; declare the maps) or unproven (a map exists and runs none of the organ's gates; gate the organ on its proving board, or declare it a shared library by policy). A home elsewhere means this board should carry an @xrow reference to the home board's row rather than a graded row of its own; a home here means the other boards should. The table is this board's slice of one estate-wide census: the shape is shared, the rows are the board's.

This board grades 30 capabilities: 30 exclusive to it and 0 shared with other boards. Shared rows on this page: 0 = home here 0 + home elsewhere 0 + ambiguous 0 + undecided 0 + refused 0 (partition 0); undecided = unmapped 0 + unproven 0 + unevidenced 0; homonyms 0; since the previous census: new 0, resolved 0. Census FRESH age_s=7025.

Gaps from the record — what the estate does that no board carries

The record census (nx_goalmap record) reads the invoked-tool population and every plan queue row and files each organ or directive that NO matrix, plan or gates row names. A row here is a callout the boards missed: adjudicate it onto a board or declare it infrastructure. Census state STALE (age 1396130 s), sources read 4 of 7 declared — a BLIND census is a FLOOR: unread sources can only add rows.

kindnameboardsourceevidence

rows shown 0|this board's directives 0|estate-wide un-boarded organs 452 (listed in full on /compare/ecosystem)|census rows 639|malformed 0 (counted, never rendered)

References

Beyond a link list. Every reference below resolves twice — the publisher's copy and, where banked, the estate's own non-rottable library mirror with a content pin — and carries its evidence class plus the exact claim on this page it grounds. Keyed marks like [key] in the matrix notes jump here. A dash means honestly absent, never assumed.
  1. [renderdoc] Karlsson, B. RenderDoc documentation, Introduction (v1.45). States: a graphics debugger currently available for Vulkan, D3D11, D3D12, OpenGL, and OpenGL ES development on Windows, Linux, Android, and Nintendo Switch. MIT licensed. publisher · read in our library knowledge/fetched/cmp_enginelab_renderdoc.html · pin h96306934f05cafe3b635eb01e0fbf0d081460b76d100e2783c654c7a06b9d086 · accessed 2026-08-28 · vendor-docGrounds: The RenderDoc column on every CAPTURE row, and the Best codes on draw capture, state hash, redundant binds, replay, resource inspection and shader inspection. DIRECT PROSE READ of the mirrored bytes: the API list and the licence sentence above were read verbatim from the mirror, not from a summary.
  2. [tracy] Taudul, B. Tracy Profiler, project repository page (branch master, oid 8b41c38ed9b0750e2c874ca7c9d82cf5b012a0e1 as served on the access date). publisher · read in our library knowledge/fetched/cmp_enginelab_tracy.html · pin haf5b46ea0d8e9c711287733fc095d445d3d6c983a10a0432dc05700c3bfb2862 · accessed 2026-08-28 · mirrored-indexGrounds: The Tracy column on the CPU rows: zone self time, per-name aggregation, allocation accounting, lock waits, sampling and flame export. TOKEN-WITNESSED: the string nanosecond resolution was located in the mirrored bytes by nx_absent with coverage_complete=1, so the nanosecond-scale profiler characterisation is grounded; the per-feature cells are repository-index level and are coded as presence, not depth.
  3. [mangohud] flightlessmango. MangoHud, project repository page (branch master, oid 00b63717ed7220e4476df7936cf047a11964ea2d as served on the access date). publisher · read in our library knowledge/fetched/cmp_enginelab_mangohud.html · pin h8624423e64b6311f84a66e96ae76ca19a65cbc2c26181d4c19a5de66ec6f46f1 · accessed 2026-08-28 · mirrored-indexGrounds: The MangoHud column on the PACING rows: frame statistics, the 1 percent low definition, stutter detection and the live overlay. TOKEN-WITNESSED: the string frametime was located in the mirrored bytes by nx_absent with coverage_complete=1. The 1 percent low is implemented here in the CapFrameX and MangoHud sense (mean of the worst 1 percent) and that definition is named in our source rather than inferred from this page.
  4. [gpuvis] Sartori, M. gpuvis, GPU trace visualiser, project repository page. publisher · read in our library knowledge/fetched/cmp_enginelab_gpuvis.html · pin h3d9e22682d092e88fe2b6f1ffa6fb4b00f2c493f328eae5b71c18b9839a6c891 · accessed 2026-08-28 · mirrored-indexGrounds: The GpuVis column on the GPU rows: queue slices, submit-to-start latency, bound analysis and hardware trace import. INDEX-LEVEL ONLY, stated plainly: the mirrored bytes are a repository shell and no feature prose was witnessed in them, so these cells are coded from what the project publishes about itself at index level. A vblank probe over the corpus returned ABSENT-PROVEN, so the vsync capability this tool is known for is NOT claimed on this board.
  5. [o3de] Open 3D Foundation. Open 3D Engine user guide, Testing section index. publisher · read in our library knowledge/fetched/cmp_enginelab_o3de.html · pin h750b5097c97eb11d61b6f34ade05692632bd91d9da2b3532d5f72407a73c03a9 · accessed 2026-08-28 · vendor-docGrounds: The O3DE column on the REGRESSION and HARNESS rows: golden-image comparison and the automated test harness. INDEX-LEVEL ONLY, stated plainly: the fetch returned the testing section of the user guide and the bytes read were its navigation tree, so the cells are coded from the documented existence of an engine-side testing surface and not from witnessed harness prose.

generated by nx_swcompare_matrix (sovereign NishiLang organ) from knowledge/compare/enginelab.matrix · source checks show implementation presence; runtime and user-outcome evidence are reported separately · JavaScript supports page controls