Sync wiki with main e4893ed1c: slot-based artifact names, compact object-cache paths, enabled GPU range coverage, M4 cursor capture, gather-merge registry, shape_id domain move
Describe current design without performance history
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.
Sync wiki BufferRange s_AllBytes wording vs main f474b31fb (stash H27)
Wiki GPU-Task-Graph.md:167 used stale BufferRange::AllBytes; main renamed
the sentinel to BufferRange::s_AllBytes (core/graphics/rhi/resource.h:384,
static constexpr u64 s_AllBytes = Limit<u64>::s_Max; 'marks an unbounded
range; resolve() clamps it'). core/task/gpu/README.md:64 uses the s_-prefixed
spelling. One-line sync; bare AllBytes has zero remaining hits in main source
or wiki.
Document Expected result and ownership contracts
Align wiki with current runtime and authoring contracts
Document async performance and accepted synchronization contracts
Describe shared read-state anchors, conditional recovery cost, accepted return-state refresh, legal live-effect coalescing and explicit inherited-wait accounting in current telemetry version 10. Correct retired timing scope names and M4 gate wording.
Retain the three final Windows ARM64 M4 results and original failure range, with device/workload limits and one-frame diagnostic counts. Preserve historical qualification evidence.
Align graphics verification with selected public backend 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.
Document task_graph recording-lifecycle and reset split
Align documented static APIs with uppercase naming
Update qualified and descriptive static helper and task callback names
across five pages to match the current source contracts.
Document current launcher and prepared rendering contracts
Align Windows requirements, strict executable discovery, asset-type admission, Skin-owned mesh binding, and GPU timing fields with source c93bdcd1c518bd1ad3341cff525e184f79017a6f. Document required prepared CSG, AVBOIT, caustic, shadow, and Surfel GI graph contracts while preserving current feature routes and resource handoffs.
Document compile-time graphics backend selection
docs: sync wiki with current main (e2402c9589bb61977651d5b02bb6b42eef993a1c)
Main e2402c958 on top of 77 commits since last sync (9c0c9279b):
- GPU scheduler: compiler-owned automatic queue placement from task
command requirements (s_CommandRequirements/commandRequirements);
callers no longer request queues; diagnosticQueueOverrides stay
diagnostics-only. Same-class/cross-family routing keeps explicit
opt-ins.
- Shadow quality knobs: SoftwareShadowBlockerSearch gains Center1,
SoftwareShadowCaptureCadence gains ReuseTwoFrames; opaque and
transparent temporal filtering merged into one combined reproject
pass; fully lit tiles skip wavelet work; ShadowQualitySettings adds
selectable half/quarter receiver resolution shared by HW/SW-BVH/
light-space paths; TransparentShadowSampling ReferenceThree/
TemporalOne (TemporalOne needs accepted history).
- Bounded CSG shadows on HW+SW paths (light-space receiver maps,
analytic cutter-interval subtraction, projected-region-bounded
camera work); AVBOIT accumulate rejects unused fragments before
material evaluation; caustic resolve skips inactive regions.
- Surfel GI gather resolution selectable (half default, quarter
opt-in via SurfelGiQualitySettings); stress profile now uses
Center1 + ReuseTwoFrames + quarter shadow receivers/surfel gather.
- Shader cooker split: Slang process backend is SlangShaderCompiler
(slang_compiler.h/.cpp); cook.cpp keeps the metadata front-end.
docs: sync wiki with current main (91e869244deb963c5cd19a7c7f5b65181391126d)
Main 91e869244 on top of 46 commits since last sync (368d5e93b):
- Shadow quality knobs: FittedVolume coverage, CompactCross5 blocker
penumbra estimation, EveryFrame/ReuseOneFrame capture cadence with
ticket-owned accepted-capture history; TemporalOne transparent
sampling after accepted filtered history; caustic photon-grid
divisors 1/2/4 with opaque-instance prefilter before resource
resolution.
- Removed unreachable uniform transparent fallback and dormant shadow
diagnostics/edge-stat plumbing; adaptive transparent fallback fold
remains (coarse transmittance / full-resolution adaptive).
- Shadow sampling stays finite float (R2 indices, hash offsets,
jitter-cone blends); BVH miss outputs initialized for Slang
definite assignment; inner-node traversal shared via
nwbBvhPickNearChild.
- Skinning: frame-owned accepted-state buffer reuse, accepted-snapshot
self-filtering, removed unused cache lookup/helpers.
- Vulkan: descriptor readiness/bind scans bounded to nextFresh
high-water mark; indexed light-space capture with shared
interpolation helper.
- Stress record docs/stress_rendering_performance.md: >60 FPS both
routes (70.8933 HW / 62.3919 no-RT), --minimum-fps 60 enforcement,
no-RT five-marker qualification, caustic/CPU timing harnesses.
- Split translation units: rt_swbvh_* scene/mesh infra, caustic
quality/settings, shadow quality/capture-history/transparent-sampling
histories, backend_forward.h.
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 source maps for per-concern domain splits (compiled_graph
read-view/attempt-binding, task_graph storage/teardown, state/accessor/
declaration-view, packet lifecycle/discard, packet_runtime exception
finalizer, device_queue topology, volume segment compaction), renderer
frame-pipeline stage builders, AVBOIT upload helper, raytrace snapshot and
prepared-build ABI headers, frame snapshot ownership on
RendererRayTracingState, and resetFrameTaskState in pipeline resources.
docs: sync wiki with current main
Document the frame-owned CPU and GPU task schedulers, persistent arena,
buffer byte-range GPU synchronization, CPU profiling, and current
third-party TBB/curl integration notes.
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.
Document ARM64 Vulkan and scheduler contracts
docs: sync wiki with current main
docs: sync wiki with current main
docs: rewrite wiki for current engine
docs: sync wiki with main
docs: note hardware caustics cross-family routing
docs: note surfel cross-family routing
docs: note caustics cross-family routing
docs: sync GPU task graph wiki with main
docs: document GPU task graph