Sync wiki output-layer contributor/frozen-generation contract vs main f474b31fb (stash H26/H29/H41/H46)
- GPU-Task-Graph: output-layer contributors declare independent raster
work + exact color version for final output consumer; accepted final
consumption retires exact CPU generation; acceptance != GPU completion
(texture/descriptor/backing live through final-consumer token); slot
reuse needs completion of all accepted upload/clear/raster prefix;
rejected/unsubmitted leaves immutable generation pending for retry;
presentation work runs before terminal presentation endpoint.
Verified vs core/task/gpu/output_layer_contributor.h:26-27,48-60 and
impl/ecs_ui/toolkit/gpu/README.md:29-38,40-49.
- Project-API: output-layer contributor declares independent raster work
and exact-generation consumption at accepted final presentation.
- Runtime-and-ECS: Scene mode registers output-layer contributor with
frozen premultiplied linear Rec.709 generation consumed by accepted
final presentation (README:3,51-52); standalone rejection requests
device recreation since adapter cannot abort acquired frame
(README:70-73, layer_system.cpp:143-158).
- Testbed: UI layer is frozen before recording (preparation captures
immutable frame/resource versions pre-recording per
output_layer_contributor.h:48; frozen DrawSnapshot per README:3,40).
- Out of scope, left untouched: H26 telemetry reword, H27 s_AllBytes
(done in 26164f6), H40 Builder-inventory paragraph.
Align wiki with current runtime and authoring contracts
docs: sync wiki with current main (4d46499fb)
Main 4d46499fb46b29341eebcea31827d6a553ebb8c5 on top of wiki f9c109c:
launcher facade split into domain modules (models/discovery/host/
cmake_settings/build/process/profile/dispatch/cli/constants),
input toolkit control.h/popup.h token contracts, layout validation.h
shared predicates, shared utf8_text_internal.h decoder, combo_probe_common
shared ComboProbe contract, partial-DAG/grapheme test path moves,
packet_runtime artifact/gate split, and execute-side focused units.
Updated 5 wiki pages to match HEAD (verified against tree):
Build-and-Verification, Code-Reading-Guide, GPU-Task-Graph,
Runtime-and-ECS, Testbed. Other 30 pages re-checked clean.
Align wiki build and utility instructions with launcher
Use the repository launcher for configuration, project and multi-target
builds, native utility preparation and custom build directories. Correct
relative utility paths and keep CTest as the test execution interface.
Correct dependency_computer spelling, optional skin texture dependency
behavior, launcher ownership and root namespace.h macro ownership.
Validation: all 35 wiki pages and 222 links, launcher dry-run/help plans,
source contracts, balanced fences, UTF-8/CRLF and git diff checks.
docs: sync wiki with current main (0d4a84d91)
Main 0d4a84d91618e98726d676a2757de6afa429e5a1 on top of 8 commits since last sync (c7bd6f108):
decimated guided surfel GI (surfel_guide.slangi, 16-cell guide,
4-uniform + up-to-8-guided mature rays, sampling.slangi deleted,
converged rays 32->12), UI toolkit move impl/ui->impl/ecs_ui/toolkit,
NWB_BEGIN/END ownership global/namespace.h->core/global.h, plus
arena-backed widget-state index, glyph-atlas index, and once-per-pass
UI raster heap/state reuse.
Updated 7 wiki pages to match HEAD (verified against tree):
toolkit paths, namespace-macro owner, guided-surfel trace contract,
converged ray counts, live-only guide pool/snapshot scope,
sampling.slangi deletion, surfel-gi-complex A/B baseline profile.
docs: sync wiki with current main (c7bd6f108bdd0ab546bcd798bafbbbe61c6e3b8d)
Main c7bd6f10 on top of 65 commits since last sync (76f1f5c96):
custom UI migration merged to main (custom_ui branch work through
dfd7d514f): Dear ImGui vendoring (3rd_parties/imgui) and the legacy
ImGui ECS path deleted; Testbed and ECS now use UiLayerSystem with
UiPaintComponent paint callbacks fed by impl/ui CPU paint/layout/text
plus OS clipboard/text-input services; new impl/assets/graphics/ui
raster/output shaders, font_builder and ui_skin utilities.
Updated 9 wiki pages to match HEAD (verified against tree):
UiSystem->UiLayerSystem, UiComponent->UiPaintComponent,
UiDrawContext->UiPaintContext (fields incl. clipboard/textInput/paint/
text/display/ui), Testbed UI wiring (fonts/skin/presentation, galleries),
UI ctor args, bindless UI bindings, 203-nit HDR10 UI encode, float4 UI
raster color (no half4), UI shader asset list.
docs: sync wiki with current main (c2012a2f78ee567e04c84c45f66ca73448864307)
Main c2012a2f7 Fix remaining standard section 5 include-grouping violations across whole sources.
- GPU task graph: scheduleGraph is the single execution-admission
entry (scheduler_compilation.cpp, FrontierSafe + shadow-prepare to
frame-timing-end envelope from graph_schedule.cpp); source maps
name scheduler_compilation.cpp, compiler_internal.h,
packet_runtime_internal.h, graph/ per-domain task bodies,
execute/frame_execute_lifecycle.* with merge validators, and the
graph_schedule/packet_metrics split units.
- Shadows: light-space depth path on no-RT frames
(setSoftwareShadowSettings Automatic/SoftwareTrace/LightSpace,
BuildLightSpacePlan directional+point admission, D32 view array,
snapshot on graph plan/payloads); combined HalfA/HalfB resolve
preparation shared by hardware and software preflights.
- Refraction: interface-hit admission before material reconstruction
(interface_hit.slangi entry/exit).
- No-RT qualification: --disable-hardware-ray-tracing policy, Vulkan
disabled-route report line, ctest -L software_raytracing matrix.
- fin diagnostics: smoke-contract logs are ESSENTIAL_INFO, --gpudbg
accepted-but-inert in fin, resize log ESSENTIAL; window capture
--resize-client replacement coverage.
- Tests: native kernel ingress suites retired with the headless
smoke-test surface (results stay as decision evidence in
RENDERER_OPTIMIZATION_STEPS.md); unit tree pruned to mandatory
edge cases; optical-upload reuse now in nwb_ecs_graphics_tests;
descriptor coverage via task_graph_descriptor_contract_tests;
cpu arena identity reduced to core/task/cpu/scheduler.
docs: sync wiki with current main
Update Renderer-Feature-Paths, Renderer, Renderer-Frame-Flow,
Platform-and-GPU-Support, and CSG-and-Transparency for the staged
hardware transparent-shadow path (gather/evaluate/overflow
continuation) with the HalfA/HalfB combined upsample; caustic
resolve stage specialization (prepare/wavelet/upsample plus
direct large-dilation wavelet); and the persistent VertexIndexed
raster route alongside compute emulation.
Record the Unspecified-boundary reflection specialization,
current-pose optical bounds, accepted object-space geometry reuse,
half-precision spatial HDR fix, and optical-path diagnostics in
Reflections, Mesh-Model-and-Skinning, and Diagnostics-and-Telemetry.
Note AVBOIT generated-geometry reuse, the twenty-body stress
default with fixed/rotating modes and kernel parity coverage in
Build-and-Verification, new file entry points in Code-Reading-Guide,
and the _NET_WM_PID X11 teardown tag in Testbed.
Point launcher references at python -m launcher package
docs: sync wiki with current main
Align the GitHub wiki with the staged asset pipeline, IFilesystem mounts, terminal-only exception handling, and related contracts on main.
docs: rewrite wiki for current engine
docs: sync wiki with current main contracts
Sync wiki with current main
Refresh build and runtime wiki guidance
Update wiki for hardware soft shadow path
Update wiki for main branch runtime changes
Update wiki for vendored package refresh
Update wiki for hybrid shadow tracing
Update wiki for main branch renderer and material changes
Correct wiki against source and generalize volatile sections
Verified all 25 pages against the engine source and fixed drift:
- Frame loop does not tick ECS; the project ticks its own world in
onUpdate (Runtime-Boot, Frame-Life-Cycle).
- Document the resource-mount res probe order.
- skin asset is cooked in impl/assets_mesh, not a separate module; add
the cook-only modules assets_volume/assets_graphics/assets_bunch.
- Add mesh reference-delta streams and skin influence types.
- CSG bounds callback is required and shapes use engine/csg/* names;
CsgFrameState carries flags/counts (work region is on CsgFrameGpuData);
AVBOIT passes interleave with the dispatches.
- Use the real ray-tracing capability log string; BVH self-tests are
three functions (refit is a phase of the build test).
- Vulkan rejects CPU-type devices (no by-name lavapipe check); note the
cooperative-vector split and unsupported SamplerFeedback/VirtualResources.
- Add CsgReceiverComponent; add logger/ and configuration/ to the
repository map; note archive stage is derived from stage.
- Frame determinism as the convergence procedure, not an in-tree test.
- Generalize the dated, untracked smoke-run sections so they do not go
stale (Testbed, Diagnostics-and-Telemetry, Renderer-Feature-Paths).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Expand engine wiki detail
Split engine overview wiki into topic pages