code wiki / (root) / nx_cast_projection_integration_gate_t290.nx

nx_cast_projection_integration_gate_t290.nx source

↩ module page · 46 lines · 2940 B

1import "nx_wgsl.nx" 2import "nx_gate_verdict.nx" 3func cpi_contains(b:*u8,n:i64,s:*u8)->i64{ 4 let k:i64=sir_slen(s);var i:i64=0 5 while i+k<=n{var j:i64=0;while j<k{if b[i+j]!=s[j]{break};j=j+1};if j==k{return 1};i=i+1} 6 return 0 7} 8func main()->i64{ 9 let c:*i64=gv_ctr() 10 let m:*i64=sir_new() 11 gv_check("never configured direct caller retained",shsrc_cast_vs(m)==0,c) 12 gv_check("legacy recipe near",csp_near==80,c) 13 gv_check("legacy recipe denominator",csp_scale==1000,c) 14 let out:*u8=sys_mmap(WG_EMIT_CAP);let trace:*i64=sys_mmap(WG_TRACE_CAP*8) as *i64 15 let tn:*i64=sys_mmap(8) as *i64 16 let n:i64=glsl_emit_module(m,STAGE_VERTEX,out,WG_EMIT_CAP,trace,WG_TRACE_CAP,tn) 17 gv_check("legacy shader literal",n>0&&cpi_contains(out,n,"300.08")==1,c) 18 gv_check("nondefault configuration",csp_configure(125,10000,126,1000)==1,c) 19 let alt:*i64=sir_new() 20 gv_check("nondefault module",shsrc_cast_vs(alt)==0,c) 21 let an:i64=glsl_emit_module(alt,STAGE_VERTEX,out,WG_EMIT_CAP,trace,WG_TRACE_CAP,tn) 22 gv_check("nondefault GLSL guard",an>0&&cpi_contains(out,an,"float zv=max(dot(rel,fw),0.126);")==1,c) 23 gv_check("nondefault GLSL sum",cpi_contains(out,an,"10.125")==1,c) 24 gv_check("nondefault GLSL difference",cpi_contains(out,an,"9.875")==1,c) 25 gv_check("nondefault GLSL product",cpi_contains(out,an,"((zv*(10.125/9.875))-(2.5/9.875))")==1,c) 26 let wn:i64=wgsl_emit_module(alt,STAGE_VERTEX,out,WG_EMIT_CAP,trace,WG_TRACE_CAP,tn) 27 gv_check("nondefault WGSL sum",wn>0&&cpi_contains(out,wn,"10.125")==1,c) 28 gv_check("nondefault WGSL difference",cpi_contains(out,wn,"9.875")==1,c) 29 gv_check("nondefault WGSL guard expression",cpi_contains(out,wn,"max(dot(rel,fw),0.126)")==1,c) 30 gv_check("nondefault WGSL projection expression",cpi_contains(out,wn,"((zv*(10.125/9.875))-(2.5/9.875))")==1,c) 31 let mn:i64=csp_record(out,WG_EMIT_CAP) 32 gv_check("matching nondefault metadata",mn>0&&cpi_contains(out,mn,"cast_projection_near_num=125\n")==1,c) 33 gv_check("matching nondefault nearQ8",cpi_contains(out,mn,"cast_projection_near_q8=32\n")==1,c) 34 gv_check("invalid explicit config",csp_configure(0,10000,126,1000)==0,c) 35 let bad:*i64=sir_new() 36 gv_check("invalid direct caller refused",shsrc_cast_vs(bad)<0,c) 37 gv_check("invalid does not reset legacy",csp_ready()==0,c) 38 gv_check("invalid demo refused before output",wg_cast_demo(0 as *u8,0 as *u8)==3,c) 39 gv_check("invalid module emitter refused",glsl_emit_module(bad,STAGE_VERTEX,out,WG_EMIT_CAP,trace,WG_TRACE_CAP,tn)<0,c) 40 gv_check("decimal positive",csp_positive_arg("125")==125,c) 41 gv_check("decimal rejects suffix",csp_positive_arg("125x")<0,c) 42 gv_check("decimal rejects overflow",csp_positive_arg("9223372036854775808")<0,c) 43 gv_check("decimal rejects empty",csp_positive_arg("")<0,c) 44 gv_check("decimal rejects negative",csp_positive_arg("-1")<0,c) 45 return gv_verdict("CANONICAL-PROJECTION",c,"direct compatibility, nondefault emitted math/metadata and persistent explicit refusal; no forced allocator failure") 46}