nx_shader_capture_owned_gate_t218.nx source
↩ module page · 21 lines · 1911 B
1import "nx_game_shader_backend_selected_t55.nx"
2import "nx_gate_verdict.nx"
3func main()->i64{
4 let c:*i64=gv_ctr()
5 let path:*u8="/volume1/homes/elderwesto/nishihost/buildroot/_build/nx_capture_fixture_t218.sov.elf"
6 var n:i64=0;let src:*u8=sys_read_file(path,&n);if (src as i64)<=0{return 2}
7 let hash:*u8=sys_mmap_try(GPA_SHA_HEX+1);if (hash as i64)<=0{return 3};gpa_sha(src,n,hash);sys_free_file(src,n)
8 let b:*NxBufOwned=sys_mmap_try(NX_BO_BYTES) as *NxBufOwned;if (b as i64)<=0{return 3};b.buf=0 as *u8;b.len=0;b.cap=0
9 gv_check("selected owned capture preserves verified producer",gsb_capture_selected_owned(path,hash,n,"large",b,8000,0)==0&&b.len==196613,c)
10 var exact:i64=1;var i:i64=0;while i<b.len{if b.buf[i]!=(i%251) as u8{exact=0};i=i+1};gv_check("selected capture preserves complete binary bytes",exact==1&&b.len==196613,c);nx_bo_release(b)
11 let wrong:*u8="0000000000000000000000000000000000000000000000000000000000000000"
12 gv_check("wrong producer hash refuses without output",gsb_capture_selected_owned(path,wrong,n,"large",b,8000,0)<0&&b.len==0,c)
13 gv_check("failed selection never falls back",gsb_capture_owned("large",b,8000,0)<0&&b.len==0,c)
14 gv_check("explicit verified selection resets failed state",gsb_select_at(path,hash,n)==1,c)
15 gv_check("selected default owned path captures complete output",gsb_capture_owned("large",b,8000,0)==0&&b.len==196613,c);nx_bo_release(b)
16 gv_check("wrong producer extent refuses",gsb_capture_selected_owned(path,hash,n+1,"large",b,8000,0)<0&&b.len==0,c)
17 gsb_select_at(path,hash,n)
18 gv_check("selected caller resource budget is explicit error",gsb_capture_owned("large",b,8000,65536)==NX_BO_CAPACITY&&b.len<=65536,c);nx_bo_release(b)
19 sys_munmap_direct(b as *u8,NX_BO_BYTES);sys_munmap_direct(hash,GPA_SHA_HEX+1)
20 return gv_verdict("selected-owned-shader-capture",c,"Actual native producer plus hash, extent, failed-selection and caller-budget checks")
21}