code wiki / (root) / nx_gsplat_tile_gate.nx

nx_gsplat_tile_gate.nx

buildroot/runtime/nx_gsplat_tile_gate.nx

17686 B325 linesdepth 4pulls 9 transitivereach 0 importersview sourcekind gate/prooftopic gsplat
docsdependenciesstructsconstsfunctions

about

nx_gsplat_tile_gate.nx -- GATE for the tiled rasterization policy. ★★THE ACCEPT RULE WAS DECLARED IN THE ORGAN'S SOURCE BEFORE THIS GATE WAS RUN, and this file only enforces it: CORRECTNESS -- the tiled frame is BYTE-IDENTICAL to the full-screen frame. An optimisation is allowed to change cost and NOTHING else. "Close enough" would mean the two renderers had quietly become two rulers. COST -- strictly fewer conic evaluations on a scene with real occlusion. T4 is the honest counterweight: on a scene with NO occlusion the policy must save NOTHING and still be byte-identical. A win that appears on every scene regardless of occlusion would mean the saving came from somewhere other than the mechanism claimed, and that is the failure this tooth exists to catch. T3 replaces the question "what tile size?" with a MEASUREMENT. The organ names no favourite edge; the gate sweeps a doubling series and publishes evaluations and list occupancy at each, and requires byte-identity at EVERY size. A constant nobody measured would have been the alternative. license_tier: ORIGINAL expect_exit: 0

dependencies 5 imports · 0 importers

nx_syscalls.nx nx_gsplat.nx nx_gsplat_tile_lib.nx nx_png.nx nx_gate_verdict.nx nx_gsplat_tile_gate.nx

imports: nx_syscalls.nxnx_gsplat.nxnx_gsplat_tile_lib.nxnx_png.nxnx_gate_verdict.nx

imported by: nobody (leaf or entry point)

call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown

main gv_ctr sys_mmap nxa_die sys_write sys_exit nxa_lock_take nxa_lock_addr sys_write ↻ nxa_lock_give nxa_lock_addr ↻ nxa_report_overrun sys_write ↻ nxa_dump_printable sys_write ↻ nxa_dump_sizes sys_write ↻ gv_head gv_puts sys_write ↻ gs_w gs_h gs_stride_aniso sys_mmap ↻ gs_nb gs_expn gs_build_explut tg_dense gs_set_aniso gv_puts ↻ gv_num sys_mmap ↻ sys_write ↻ sys_munmap gs_render_aniso gs_render_aniso_at gs_project_sort_at it_sin4096 it_cos4096 it_sin4096 ↻

structs

none

consts

23const TG_CAP: i64 = 2048
24const TG_LAYERS: i64 = 24
25const TG_PERLAYER: i64 = 60
26const TG_GRIDX: i64 = 10
27const TG_BUDGET: i64 = 1000000
28const TG_CAMZ: i64 = 14
29const TG_SWEEP0: i64 = 8
32const TG_WORKERS: i64 = 4

functions

36func tg_dense(gauss: *i64) -> i64
called by 1: main calls 1: gs_set_aniso
55func tg_sparse(gauss: *i64) -> i64
called by 1: main calls 1: gs_set_aniso
67func tg_fullscreen_evals(vis: i64, sxb: *i64, syb: *i64, pa: *i64, pc: *i64, order: *i64) -> i64
called by 1: main calls 4: gs_wgs_hgs_splat_rxgs_splat_ry
90func tg_same(a: *i64, b: *i64, n: i64) -> i64
called by 1: main
96func main() -> i64