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.
Align wiki with current runtime and authoring contracts
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 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
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.
docs: rewrite wiki for current engine
docs: sync wiki with main
docs: document GPU task graph
docs: sync wiki with current main contracts
docs: sync wiki with main renderer contracts
Sync wiki with current main
Update wiki for current main
Document declarative frame execution plan
Update wiki for current main
Update wiki for current main
Document async shadow scheduling
Document required descriptor-buffer renderer path
Update wiki for bindless descriptor migration
Document descriptor-buffer rollout
Document the live bindless descriptor heap and RT per-mesh migration
The bindless descriptor heap is now live in the production frame loop and is
the shared per-mesh geometry source for the ray tracing, shadow, caustic, and
surfel-GI passes. Add a dedicated page covering the RHI primitive (descriptor
indexing floor, optional heap accelerator, GpuDescriptorHandle contract, self-
test), the Phase 2 migration that deleted the classic bounded per-mesh arrays
and retired the 32/64-mesh scene caps, the host-index/shader-layout split, and
the frozen shader/host binding contract (sets 8/9, per-class bindings).
Cross-link from Architecture (graphics layer owns a live heap), Renderer Frame
Flow (per-frame advanceFrame next to device GC), Renderer Feature Paths (slot-7
gap context, per-pass geometry fetch, intro pointer), Glossary, Home, and the
sidebar.
Document opaque shadow fast path
Document current main renderer policies
Update wiki for current main branch
Update wiki for shadow traversal changes
Update wiki for latest main branch changes
Update wiki for surfel GI renderer changes
Document surfel GI renderer path