Record TubeField packet authority
This commit is contained in:
parent
10bddb0d0e
commit
32834e50ee
5 changed files with 13 additions and 5 deletions
|
|
@ -221,8 +221,10 @@ semantics to their selected lowering. TubeField now uses that generated-mesh
|
|||
lane explicitly: compute emits private geometry/indirect buffers and render
|
||||
binds them as a pipeline-private generated mesh before applying TubeField
|
||||
material state. The generated-mesh DrawIndexed indirect command signature is
|
||||
shared ABI; TubeField only owns the argument buffer it emits. That is engine
|
||||
ownership, not a reason for Mimir to create a parallel renderer.
|
||||
shared ABI; TubeField only owns the argument buffer it emits. TubeField
|
||||
expansion is now gated by selected backend packets, so explicit lowering
|
||||
metadata cannot bypass validation/planning authority. That is engine ownership,
|
||||
not a reason for Mimir to create a parallel renderer.
|
||||
|
||||
### 3. Calibration Constraint
|
||||
|
||||
|
|
|
|||
|
|
@ -194,7 +194,9 @@ a named invariant that the native runtime cannot protect yet.
|
|||
TubeField source/ramp/material state. The DrawIndexed indirect command
|
||||
signature is now generated-mesh-owned rather than TubeField-owned, so future
|
||||
generated lowerings can reuse the same draw ABI with their own producer
|
||||
buffers and material bindings.
|
||||
buffers and material bindings. TubeField dispatch now obeys the selected
|
||||
backend packet plan; unplanned `TubeSplineLowering` records are counted but
|
||||
not expanded.
|
||||
- `MimirRuntime` queues bioacoustic timeline PCM through Fensalir audio when the
|
||||
active timing witness is allowed. `MimirAudioSynchronizationSettings.Mode`
|
||||
selects `chirp-only`, `passive`, or `hybrid`; passive disables active
|
||||
|
|
|
|||
|
|
@ -349,7 +349,8 @@ emits and consumes. TubeField is the first concrete generated-mesh consumer:
|
|||
its compute pass emits private vertex/index/indirect buffers and render binds
|
||||
them as `D3D12PipelinePrivateGeneratedMesh` before applying source/ramp/material
|
||||
state. The DrawIndexed indirect command signature has been lifted to the
|
||||
generated-mesh lane instead of being TubeField-owned.
|
||||
generated-mesh lane instead of being TubeField-owned. TubeField expansion now
|
||||
requires a planned TubeField backend packet for the lowering's claim.
|
||||
|
||||
The current teardown/migration map is
|
||||
`docs/fensalir-rendering-rebuild-migration.md`, paired with Fensalir's
|
||||
|
|
|
|||
|
|
@ -153,3 +153,4 @@
|
|||
{"ts": "2026-05-26T21:58:00+01:00", "type": "decision", "status": "ok", "note": "Clarified Fensalir Mesh layout authority: imported/user-facing FBX/OBJ-style meshes use the standard PositionNormalUvColor vertex layout, while generated meshes declare PipelinePrivate and let their selected lowering own the exact minimal byte layout. The generic mesh ABI is no longer the blocker; next renderer work should choose the first selected mesh/page/volume lowering and material path."}
|
||||
{"ts": "2026-05-26T22:49:00+01:00", "type": "implementation", "status": "ok", "note": "Fensalir TubeField now renders through the first explicit pipeline-private generated mesh lane. Compute owns the private D3D12TubeFieldVertex/index/indirect argument layout; render binds those buffers as a D3D12PipelinePrivateGeneratedMesh before applying TubeField source/ramp/material root bindings and ExecuteIndirect. This follows the generated-mesh option without adding a public imported mesh renderer."}
|
||||
{"ts": "2026-05-26T22:52:00+01:00", "type": "implementation", "status": "ok", "note": "Fensalir lifted the DrawIndexed indirect command signature from TubeField to the generated-mesh lane. TubeField still emits its own indirect argument buffer, but future pipeline-private generated mesh lowerings can share the same five-uint D3D12 DrawIndexedArguments ABI with their own producer buffers/material bindings."}
|
||||
{"ts": "2026-05-26T22:55:00+01:00", "type": "implementation", "status": "ok", "note": "Fensalir TubeField expansion now follows selected backend packet authority. D3D12Renderer expands only TubeSplineLowerings whose claim has a planned TubeField packet; unplanned lowerings are counted in debug status instead of rendered. This prevents explicit lowering metadata from bypassing validation/planning."}
|
||||
|
|
|
|||
|
|
@ -343,7 +343,9 @@ accepted_design:
|
|||
mesh binding: compute owns the private vertex/index/indirect layout, and
|
||||
render binds that generated mesh before applying TubeField material state.
|
||||
The generated-mesh DrawIndexed indirect command signature is shared ABI now;
|
||||
TubeField only owns the argument buffer it emits.
|
||||
TubeField only owns the argument buffer it emits. TubeField expansion is now
|
||||
gated by the selected backend packet plan, so lowering metadata cannot
|
||||
bypass validation/planning authority.
|
||||
- `config/perfect-machine.example.json` declares live owners, sensors,
|
||||
reservoir views, and runtime policy.
|
||||
- `src/Mimir.Runtime/Synchronization` now includes the Perfect Machine module
|
||||
|
|
|
|||
Loading…
Reference in a new issue