Describe current design without performance history
Sync wiki with current main (f474b31fb): IOR eligibility, SIMD naming, UI input, CSG optics
- Refraction IOR eligibility: finite IOR above 1.0 per nwbRefractionIorEligible (ior.slangi), replacing stale above-1.0001 in 6 pages.
- Math naming: SIMDVectorSingle/SIMDVectorDouble four-lane contracts with SIMDMatrix/SIMDMatrixDouble, aligned Float#/Double# storage, global/simd layout.
- UI input: press-arm/release-submit command semantics, Cancel retirement, PointerInput/Phase/Intent provider contract with stable contact identity.
- Reflection: retained-CSG dispatches sliced into bounded 8192-ray native packets preserving the frame ray budget.
- Shadows: mixed receivers integrate retained open surfaces independently of closed solid/cap boundaries.
- Code-Reading-Guide: input routing README entry point.
Document compact GPU payload contracts
Align wiki with current runtime and authoring contracts
Align graphics verification with selected public backend contracts
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.
docs: sync wiki with current main (368d5e93b35778e81b4dddcb1e4a6d7889867800)
Main 368d5e93b Remove SIMD_BOUNDARY_AUDIT.md, on top of 22 commits since
last sync (3fd693503):
- Half precision for provably bounded shader temporaries (6 commits):
mesh cone-cull factors, skinned cone-cutoff accumulation,
punctual sine half-angle, shadow temporal-delta/wavelet ratios,
B-spline weights, reproject temporal factors, reflection
screen-trace confidence, refraction Fresnel path, transparent
budget moments, surfel SH projection scale, coarse edge thresholds.
Positions/depths/normals/ray extents/ABI/stores stay float.
- global/ neutral-domain clarification (standard section 18):
namespace.h hosts only NWB_BEGIN/END macros; texture payload
layouts stay in global/texture_payload.h for impl/assets_texture
and utilities/tex_conv.
- New global/ helpers: HasEnvironmentValue/EnvironmentVariableEquals,
IsAsciiIdentifierChar, NEON/SSE f64 triangle-area path,
s_BitsPerByte/s_BitsPerU64 limit constants.
- Named s_/k- constants across Vulkan/scheduler/reflection/shadow
sources; scheduler queue-topology slots use named counts.
- Setup/consume split: Session::ensureMemoryScopes plus consume-only
TimingRecorder/MemoryRecorder Name overloads; skinning pipelines
created in validateResources, consumed via *PipelineReady checks.
- Member-reorder padding cuts, references over required non-null
pointers, const-cast/unused-param/dead-arg redesign, duplicate
assert+guard removal, path-validation hot spots, lint/separator
cleanup, whole-source 72-file domain review doc.
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: cover frozen reflection classify oracle and rejected scheduler work
Main e79c8cf90 adds tests/smoke/reflection_kernel/classify_kernel_tests.cpp
with the classify_cs.slang oracle frozen from e3f8c9a39, comparing both
surfaces, counters, feedback, queue budgets and canonical per-tile order.
docs/stress_performance_review_20260919.md records the rejected
surface-parallel/group-feedback classifier variants and the rejected
shadow separation proof; neither is retained.
docs: record frozen spatial reflection oracle contract
Main HEAD e3f8c9a restores tests/smoke/reflection_kernel/reference/spatial_cs.slang
after the helper-rules sweep accidentally rewrote it, and adds
tests/smoke/reflection_kernel/reference/README.md freezing the oracle:
pre-change production text, no NWB_REFLECTION_SPATIAL_RADIUS
specialization, float4 color tiles. Note the fixture always compiles
the reference on the dynamic path and compares every radius variant,
and that frozen references are immutable to style/optimization sweeps.
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.
docs: sync wiki with current main
Update Reflections with the temporal-omission early return,
spatial tile eligibility flag, accepted optical-upload reuse and
hasHardwareWork gate, the rejected September 12 optical-appearance
experiment, the stepwise RENDERER_OPTIMIZATION_STEPS record, and
kernel/omission/upload/A-B proof targets. Record the CPU source-frame
bound correction, frozen renderer_ab_benchmark, coverage-atomic
rejection, and renderer error cleanup in Diagnostics-and-Telemetry;
the green-receiver transparent CSG fixture and kernel/omission/upload
proof targets in Build-and-Verification; and the deferred tail,
shared builders, optical-upload modules, and optimization/validation
docs in Code-Reading-Guide and Renderer-Frame-Flow.
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
Add the Reflections page covering hybrid screen-space/hardware tracing,
settings, statistics, and measured costs. Document camera refraction
(primary capture, hardware/screen resolve), reflection and refraction
frame-flow domains, presentation settings, reflection smoke suites,
surface specular F0/roughness authoring, and the optics domain.