code wiki / (root) / nx_clip_depth_capture_gate.nx

nx_clip_depth_capture_gate.nx source

↩ module page · 29 lines · 1535 B

1import "nx_gatekit_lib.nx" 2import "nx_gate_verdict.nx" 3const CLIP_CAPTURE_CAP: i64 = 524288 4func clip_capture(elf: *u8, verb: *u8, path: *u8, ctr: *i64) -> i64 { 5 let b: *u8 = sys_mmap(CLIP_CAPTURE_CAP) 6 let n: *i64 = sys_mmap(16) as *i64 7 n[0]=0 8 let rc: i64 = gk_run_capture(elf,verb,0 as *u8,0 as *u8,0 as *u8,b,CLIP_CAPTURE_CAP,n) 9 gv_check_eq("shader-process-exit" as *u8,rc,0,ctr) 10 gv_check("complete-bounded-output" as *u8,n[0]>0 && n[0]<CLIP_CAPTURE_CAP,ctr) 11 if rc!=0 { return 0 } 12 let fd: i64 = sys_openat_wr(path,420) 13 gv_check("fixture-open" as *u8,fd>=0,ctr) 14 if fd<0 { return 0 } 15 let w: i64 = sys_write(fd,b,n[0]) 16 sys_fsync(fd) 17 sys_close(fd) 18 gv_check_eq("fixture-written" as *u8,w,n[0],ctr) 19 sys_munmap(b,CLIP_CAPTURE_CAP) 20 return w 21} 22func main() -> i64 { 23 let ctr: *i64 = gv_ctr() 24 clip_capture("buildroot/_build/nx_wgsl.pre-clip-20260908.elf" as *u8,"cast" as *u8,"buildroot/knowledge/status/clip-depth-baseline-20260908.txt" as *u8,ctr) 25 clip_capture("buildroot/_build/nx_wgsl.sov.elf" as *u8,"cast" as *u8,"buildroot/knowledge/status/clip-depth-candidate-20260908.txt" as *u8,ctr) 26 clip_capture("buildroot/_build/nx_wgsl.pre-clip-20260908.elf" as *u8,0 as *u8,"buildroot/knowledge/status/clip-default-baseline-20260908.txt" as *u8,ctr) 27 clip_capture("buildroot/_build/nx_wgsl.sov.elf" as *u8,0 as *u8,"buildroot/knowledge/status/clip-default-candidate-20260908.txt" as *u8,ctr) 28 return gv_verdict("clip-depth-capture" as *u8,ctr,"complete baseline and candidate output; shader comparisons are separate" as *u8) 29}