code wiki / (root) / nx_cast_attachment_gate_t131.nx

nx_cast_attachment_gate_t131.nx source

↩ module page · 37 lines · 3359 B

1import "nx_wgsl.nx" 2import "nx_cast_surface_candidate_t130.nx" 3import "nx_game_page_artifact_lib.nx" 4import "nx_gate_verdict.nx" 5func main()->i64{ 6 let ctr:*i64=gv_ctr();gv_head("CAST ATTACHMENT SHARED SURFACE") 7 let m:*i64=sir_new();shsrc_cast_attachment_vs_v1(m) 8 let buf:*u8=sys_mmap(WG_EMIT_CAP);let trace:*i64=sys_mmap(WG_TRACE_CAP*8) as *i64;let tn:*i64=sys_mmap(16) as *i64 9 let n:i64=wgsl_emit_module(m,STAGE_VERTEX,buf,WG_EMIT_CAP,trace,WG_TRACE_CAP,tn) 10 gv_kv("wgsl_bytes",n);gv_kv("ir_nodes",m[M_NCOUNT]);gv_kv("arena_overflow",m[M_OVER]) 11 if sir_refused(m)!=0{gv_puts(sir_cstr(m,sir_refused(m)));gv_puts(" 12")} 13 gv_check("attachment vertex composes with canonical wardrobe and camera",n>0&&sir_refused(m)==0&&m[M_OVER]==0,ctr) 14 if n<=0{return 1} 15 let path:*u8="/tmp/cast-attachment-t131.wgsl";let fd:i64=sys_openat_wr(path,MODE_0644);if fd<0{return 3} 16 let wr:i64=sys_write(fd,buf,n);sys_close(fd);gv_check("shader artifact complete write",wr==n,ctr) 17 let len:*i64=sys_mmap(16) as *i64;let b:*u8=sys_map_file(path,len) 18 gv_check("shader artifact exact readback",len[0]==n&&gpa_same(buf,n,b,len[0])==1,ctr) 19 let sha:*u8=sys_mmap(65);gpa_sha(buf,n,sha);gv_puts("shader_sha256=");gv_puts(sha);gv_puts(" 20") 21 let usize:i64=wg_uniform_layout(m,buf,0,WG_EMIT_CAP);if usize>0{wg_puts(buf)};gv_check("surface dimensions extend exact existing uniform prefix",usize==3344,ctr) 22 23 let dd:*i64=sys_mmap(96) as *i64;let ids:*i64=sys_mmap(104) as *i64;var q:i64=0;while q<13{ids[q]=q;q=q+1} 24 dd[0]=14164;dd[1]=3;dd[2]=12;dd[3]=906496;dd[4]=1359744;dd[5]=3344;dd[6]=134217728;dd[7]=268435456;dd[8]=65535;dd[9]=65535;dd[10]=0;dd[11]=1 25 gv_check("real captured three-row dimensions admitted against supplied limits",csurf_dispatch_validate_v1(dd,12,ids,3)==0,ctr) 26 ids[2]=ids[1];gv_check("duplicate compact actor identity refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-54,ctr);ids[2]=2 27 ids[2]=12;gv_check("out-of-range actor identity refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-54,ctr);ids[2]=-1;gv_check("negative actor identity refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-54,ctr);ids[2]=2 28 dd[1]=13;dd[2]=13;gv_check("actor uniform capacity overrun refused",csurf_dispatch_validate_v1(dd,12,ids,13)==-51,ctr);dd[1]=3;dd[2]=12 29 gv_check("missing active row identity refused",csurf_dispatch_validate_v1(dd,12,ids,2)==-51,ctr) 30 dd[4]=1359743;gv_check("one-byte short surface output refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-53,ctr);dd[4]=1359744 31 dd[3]=906495;gv_check("one-byte short source input refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-53,ctr);dd[3]=906496 32 dd[6]=1359743;gv_check("actual storage-binding budget refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-53,ctr);dd[6]=134217728 33 dd[8]=221;gv_check("insufficient workgroup dimension refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-53,ctr);dd[8]=65535 34 dd[10]=3;gv_check("garment deformation mode refused for body surface",csurf_dispatch_validate_v1(dd,12,ids,3)==-52,ctr);dd[10]=0;dd[11]=2;gv_check("hair densification mode refused for body surface",csurf_dispatch_validate_v1(dd,12,ids,3)==-52,ctr);dd[11]=1 35 dd[0]=2147483647;gv_check("shader signed-index arithmetic overflow refused",csurf_dispatch_validate_v1(dd,12,ids,3)==-53,ctr);dd[0]=14164 36 return gv_verdict("CAST-ATTACH131",ctr,"Native emitted attachment vertex; actual GPU garment visual remains open") 37}