code wiki / (root) / nx_frame_raw_wasm_gate.nx

nx_frame_raw_wasm_gate.nx source

↩ module page · 31 lines · 1912 B

1import "nx_wasm_vm.nx" 2import "nx_frame_pacing_lib.nx" 3import "nx_gate_verdict.nx" 4func main(argc: i64, argv: *i64) -> i64 { 5 if argc != 2 { return 2 } 6 let ctr: *i64 = gv_ctr() 7 let sz: *i64 = sys_mmap(16) as *i64 8 let b: *u8 = sys_read_file(argv[1] as *u8,sz) 9 if (b as i64)==0 { return 3 } 10 let m: *WasmMod = wm_new(b,sz[0]) 11 if wm_parse(m)!=0 { return 4 } 12 let found: i64 = wm_find_export(m,"perf_frame_raw" as *u8) 13 gv_check("actual-module-exports-raw-recorder" as *u8,found>=0,ctr) 14 if found<0 { return 5 } 15 wm_run(m,"perf_frame_raw" as *u8,10,0,0,0,0,1) 16 wm_run(m,"perf_frame_raw" as *u8,5000,0,0,0,0,1) 17 wm_run(m,"perf_frame_raw" as *u8,1000000000,0,0,0,0,1) 18 gv_check_eq("module-raw-sample-preserves-stall" as *u8,wm_run(m,"perf_sample" as *u8,1,0,0,0,0,1),5000,ctr) 19 gv_check_eq("module-raw-count" as *u8,wm_run(m,"perf_n" as *u8,0,0,0,0,0,0),3,ctr) 20 let r: *i64 = sys_mmap(PF_WORDS*8) as *i64 21 pf_init(r) 22 let wire: *u8 = "{\"frames\":[10,5000,1000000000]}" as *u8 23 gv_check_eq("receiver-read-same-sequence" as *u8,fpc_frames_parse(wire,fpc_slen(wire),r,16),3,ctr) 24 gv_check_eq("module-and-receiver-p50-agree" as *u8,wm_run(m,"perf_p50" as *u8,0,0,0,0,0,0),pf_pct(r,500),ctr) 25 gv_check_eq("module-and-receiver-p95-agree" as *u8,wm_run(m,"perf_p95" as *u8,0,0,0,0,0,0),pf_pct(r,950),ctr) 26 gv_check_eq("module-and-receiver-p99-agree" as *u8,wm_run(m,"perf_p99" as *u8,0,0,0,0,0,0),pf_pct(r,990),ctr) 27 gv_check_eq("module-lifetime-worst-preserves-pause" as *u8,wm_run(m,"perf_worst_ever" as *u8,0,0,0,0,0,0),1000000000,ctr) 28 wm_run(m,"perf_frame" as *u8,5000,0,0,0,0,1) 29 gv_check_eq("legacy-export-retains-existing-cap" as *u8,wm_run(m,"perf_sample" as *u8,3,0,0,0,0,1),1000,ctr) 30 return gv_verdict("nx_frame_raw_wasm_gate" as *u8,ctr,"actual WASM export execution agrees with receiver; no browser/GPU timing claim" as *u8) 31}