diff --git a/examples/gpu/data/test.vsh b/examples/gpu/data/test.vsh index 0da0e64..13d356f 100644 --- a/examples/gpu/data/test.vsh +++ b/examples/gpu/data/test.vsh @@ -1,56 +1,57 @@ -; make sure you update aemstro_as for this (15/11/14) - ; setup constants - .const 20, 1.0, 0.0, 0.5, 1.0 + .const c20, 1.0, 0.0, 0.5, 1.0 ; setup outmap - .out o0, result.position - .out o1, result.color - .out o2, result.texcoord0 - .out o3, result.texcoord1 - .out o4, result.texcoord2 - -; setup uniform map (required to use SHDR_GetUniformRegister) - .uniform 0, 3, projection ; c0-c3 = projection matrix - .uniform 4, 7, modelview ; c4-c7 = modelview matrix - .uniform 8, 8, lightDirection ; c8 = light direction vector - .uniform 9, 9, lightAmbient ; c9 = light ambient color + .out o0, result.position, 0x0 + .out o1, result.color, 0x0 + .out o2, result.texcoord0, 0x0 + .out o3, result.texcoord1, 0x0 + .out o4, result.texcoord2, 0x0 + +; setup uniform map (not required) + .uniform c0, c3, projection + .uniform c4, c7, modelview + .uniform c8, c8, lightDirection + .uniform c9, c9, lightAmbient + + .vsh vmain, end_vmain ;code - main: - mov r1, v0 (0x6) - mov r1, c20 (0x3) - ; tempreg = mdlvMtx * in.pos - dp4 r0, c4, r1 (0x0) - dp4 r0, c5, r1 (0x1) - dp4 r0, c6, r1 (0x2) - mov r0, c20 (0x3) - ; result.pos = projMtx * tempreg - dp4 o0, c0, r0 (0x0) - dp4 o0, c1, r0 (0x1) - dp4 o0, c2, r0 (0x2) - dp4 o0, c3, r0 (0x3) + vmain: + mov r1, v0 (0x4) + mov r1, c20 (0x3) + ; temp = modvMtx * in.pos + dp4 r0, c4, r1 (0x0) + dp4 r0, c5, r1 (0x1) + dp4 r0, c6, r1 (0x2) + mov r0, c20 (0x3) + ; result.pos = projMtx * temp + dp4 o0, c0, r0 (0x0) + dp4 o0, c1, r0 (0x1) + dp4 o0, c2, r0 (0x2) + dp4 o0, c3, r0 (0x3) ; result.texcoord = in.texcoord - mov o2, v1 (0x5) - mov o3, c20 (0x7) - mov o4, c20 (0x7) + mov o2, v1 (0x5) + mov o3, c20 (0x7) + mov o4, c20 (0x7) ; result.color = crappy lighting - dp3 r0, c8, v2 (0x6) - max r0, c20, r0 (0x4) - mul r0, c9, r0 (0x8) - add o1, c9, r0 (0x6) - mov o1, c20 (0x3) - flush + dp3 r0, c8, v2 (0x4) + max r0, c20, r0 (0x9) + mul r0, c9, r0 (0x8) + add o1, c9, r0 (0x4) + mov o1, c20 (0x3) + nop end - endmain: + end_vmain: ;operand descriptors .opdesc x___, xyzw, xyzw ; 0x0 .opdesc _y__, xyzw, xyzw ; 0x1 .opdesc __z_, xyzw, xyzw ; 0x2 .opdesc ___w, xyzw, xyzw ; 0x3 - .opdesc xyz_, yyyy, xyzw ; 0x4 + .opdesc xyz_, xyzw, xyzw ; 0x4 .opdesc xyzw, xyzw, xyzw ; 0x5 - .opdesc xyz_, xyzw, xyzw ; 0x6 + .opdesc x_zw, xyzw, xyzw ; 0x6 .opdesc xyzw, yyyw, xyzw ; 0x7 - .opdesc xyz_, wwww, xyzw ; 0x8 + .opdesc xyz_, wwww, wwww ; 0x8 + .opdesc xyz_, yyyy, xyzw ; 0x9