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}