Sync wiki with main e8541548f: heap-lane typed material binding, decoupled MetaScript Document, CPU-device fallback wording
- Renderer/Shader-and-Material-System/Asset-Flow/Asset-Pipeline/Diagnostics-and-Invariants/Glossary: typed material words live on the heap storage-buffer lane (resource set 0) via the per-frame material-typed slot, not binding 6
- Architecture: MetaScript parses into arena-backed Document; no special asset/first-declaration meaning; findVariable/findDeclaration/declarations (core/metascript/readme.md)
- Renderer/Diagnostics-and-Invariants: windowed init prefers hardware but admits compatible CPU fallback, matching Platform-and-GPU-Support and backend_context_adapter
Describe current design without performance history
Cherry-pick source-verified draft hunks vs main f474b31fb: Wayland interface suspend, nwb_shader_bytecode, combo Tab advance, compositeColor composition split; reject zstd/multiline-paren/persistent-raster/44-pkg claims
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 Expected result and ownership contracts
Document concrete shader asset types
Describe IShader, the fourteen concrete stage types, canonical metadata,
shared codecs and typed loading. Explain physical stages versus archive
roles, admission validation, preserved storage costs and retired syntax.
Document the canonical interface declaration keyword
Align wiki with current runtime and authoring contracts
Document NWB macro and application namespace ownership
Align graphics verification with selected public backend contracts
Clarify backend qualification test ownership
Unit tests and test-only support belong under tests/. Native qualification tests directly exercise existing production provider headers; production consumers retain the backend-selection boundary. Remove the retired test-selection facade reference.
Document GLB macro ownership and diagnostics
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
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 (76f1f5c9648cf8a54c7ba6b8efb1b4171235904f)
Update terminal entry helper path core/common/terminal_entry.h ->
global/terminal_entry.h (moved in d67a47500); helper is now
self-contained on <cstdint>/<utility> (76f1f5c96). Verified: the only
file rename in the 77-commit window since the last sync plus the new
HEAD commit is this move; all other core/common/*.h wiki references
resolve; production catch clauses live only in
global/terminal_entry.h.
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.
Point launcher references at python -m launcher package
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: 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: rewrite wiki for current engine
docs: document GPU task graph
docs: sync wiki with main renderer contracts
Sync wiki with current main
Update wiki for current main