Skip to content

History / GPU Task Graph

Revisions

  • 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

    @limztudio limztudio committed Oct 14, 2026
  • Describe current design without performance history

    @limztudio limztudio committed Oct 13, 2026
  • 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.

    @limztudio limztudio committed Oct 12, 2026
  • 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.

    @limztudio limztudio committed Oct 12, 2026
  • Document Expected result and ownership contracts

    @limztudio limztudio committed Oct 8, 2026
  • Align wiki with current runtime and authoring contracts

    @limztudio limztudio committed Oct 7, 2026
  • 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.

    @limztudio limztudio committed Oct 6, 2026
  • Align graphics verification with selected public backend contracts

    @limztudio limztudio committed Oct 6, 2026
  • 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.

    @limztudio limztudio committed Oct 6, 2026
  • Document task_graph recording-lifecycle and reset split

    @limztudio limztudio committed Oct 5, 2026
  • 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.

    @limztudio limztudio committed Oct 5, 2026
  • 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.

    @limztudio limztudio committed Oct 3, 2026
  • Document compile-time graphics backend selection

    @limztudio limztudio committed Oct 3, 2026
  • 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.

    @limztudio limztudio committed Sep 29, 2026
  • 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.

    @limztudio limztudio committed Sep 26, 2026
  • 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.

    @limztudio limztudio committed Sep 23, 2026
  • 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.

    Cozter committed Sep 11, 2026
  • 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.

    @limztudio limztudio committed Sep 8, 2026
  • 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.

    @limztudio limztudio committed Sep 7, 2026
  • Document ARM64 Vulkan and scheduler contracts

    @limztudio limztudio committed Sep 6, 2026
  • docs: sync wiki with current main

    @limztudio limztudio committed Sep 5, 2026
  • docs: sync wiki with current main

    @limztudio limztudio committed Aug 31, 2026
  • docs: rewrite wiki for current engine

    @limztudio limztudio committed Aug 31, 2026
  • docs: sync wiki with main

    @limztudio limztudio committed Aug 17, 2026
  • docs: note hardware caustics cross-family routing

    @limztudio limztudio committed Aug 17, 2026
  • docs: note surfel cross-family routing

    @limztudio limztudio committed Aug 17, 2026
  • docs: note caustics cross-family routing

    @limztudio limztudio committed Aug 17, 2026
  • docs: sync GPU task graph wiki with main

    @limztudio limztudio committed Aug 17, 2026
  • docs: document GPU task graph

    @limztudio limztudio committed Aug 15, 2026