From 2fd094bbc23f365e31eda0b18b0374e4d1e8a76b Mon Sep 17 00:00:00 2001 From: Zack Buhman Date: Mon, 20 Oct 2025 22:57:51 -0500 Subject: [PATCH] *.vs.asm: use semicolon syntax --- drm/clear_nop.vs.asm | 2 +- drm/clear_nop.vs.inc | 1 + drm/cube_rotate.vs.asm | 102 ++++++++++++++++++++--------------------- drm/cube_rotate.vs.inc | 4 +- drm/rotate.vs.asm | 16 +++---- drm/shadertoy.vs.asm | 4 +- drm/shadertoy.vs.inc | 4 +- 7 files changed, 67 insertions(+), 66 deletions(-) create mode 100644 drm/clear_nop.vs.inc diff --git a/drm/clear_nop.vs.asm b/drm/clear_nop.vs.asm index 3140b2a..7fb0be3 100644 --- a/drm/clear_nop.vs.asm +++ b/drm/clear_nop.vs.asm @@ -1 +1 @@ -out[0].xyzw = VE_ADD input[0].xyzw input[0].0000 input[0].0000 +out[0].xyzw = VE_ADD input[0].xyzw input[0].0000 input[0].0000 ; diff --git a/drm/clear_nop.vs.inc b/drm/clear_nop.vs.inc new file mode 100644 index 0000000..471f385 --- /dev/null +++ b/drm/clear_nop.vs.inc @@ -0,0 +1 @@ +0x00f00203, 0x00d10001, 0x01248001, 0x01248001, diff --git a/drm/cube_rotate.vs.asm b/drm/cube_rotate.vs.asm index 8fed9ab..033fb38 100644 --- a/drm/cube_rotate.vs.asm +++ b/drm/cube_rotate.vs.asm @@ -1,65 +1,65 @@ -; CONST[0] = {0.159155, 0.5, 6.283185, -3.141593} -; CONST[1] = {theta1, theta2, 0.2, 0.5} +# CONST[0] = {0.159155, 0.5, 6.283185, -3.141593} +# CONST[1] = {theta1, theta2, 0.2, 0.5} -; each instruction is only allowed to use a single unique `const` address -; -; instructions may use multiple `temp` addresses, so const[1] is moved to -; temp[0]: -; -temp[0].xy = VE_ADD const[1].xy__ const[1].00__ +# each instruction is only allowed to use a single unique `const` address +# +# instructions may use multiple `temp` addresses, so const[1] is moved to +# temp[0]: +# +temp[0].xy = VE_ADD const[1].xy__ const[1].00__ ; -; ME_SIN and ME_COS are clamped to the range -π to +π prior to the sin/cos -; calculation. -; -; This 3-instruction sequence linearly remaps the range [-∞,+∞] to [-π,+π] -temp[0].xy = VE_MAD temp[0].xy__ const[0].xx__ const[0].yy__ -temp[0].xy = VE_FRC temp[0].xy__ -temp[0].xy = VE_MAD temp[0].xy__ const[0].zz__ const[0].ww__ +# ME_SIN and ME_COS are clamped to the range -π to +π prior to the sin/cos +# calculation. +# +# This 3-instruction sequence linearly remaps the range [-∞,+∞] to [-π,+π] +temp[0].xy = VE_MAD temp[0].xy__ const[0].xx__ const[0].yy__ ; +temp[0].xy = VE_FRC temp[0].xy__ ; +temp[0].xy = VE_MAD temp[0].xy__ const[0].zz__ const[0].ww__ ; -; sin and cos -temp[3].x = ME_SIN temp[0].___x -temp[3].y = ME_COS temp[0].___x -temp[4].x = ME_SIN temp[0].___y -temp[4].y = ME_COS temp[0].___y +# sin and cos +temp[3].x = ME_SIN temp[0].___x ; +temp[3].y = ME_COS temp[0].___x ; +temp[4].x = ME_SIN temp[0].___y ; +temp[4].y = ME_COS temp[0].___y ; -; temp[3] now contains: -; temp[3] = {sin(theta1), cos(theta1), sin(theta2), cos(theta2)} +# temp[3] now contains: +# temp[3] = {sin(theta1), cos(theta1), sin(theta2), cos(theta2)} -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; first rotation: X-axis rotation: -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +######################################################################### +# first rotation: X-axis rotation: +######################################################################### -; y_ = (-z0 * st1) -; z_ = ( z0 * ct1) -temp[1].yz = VE_MUL input[0]._-zz_ temp[3]._xy_ +# y_ = (-z0 * st1) +# z_ = ( z0 * ct1) +temp[1].yz = VE_MUL input[0]._-zz_ temp[3]._xy_ ; -; x1 = (x0 * 1 + 0) -; y1 = (y0 * ct1 + nz0st1) -; z1 = (y0 * st1 + z0ct1) -temp[1].xyz = VE_MAD input[0].xyy_ temp[3].1yx_ temp[1].0yz_ +# x1 = (x0 * 1 + 0) +# y1 = (y0 * ct1 + nz0st1) +# z1 = (y0 * st1 + z0ct1) +temp[1].xyz = VE_MAD input[0].xyy_ temp[3].1yx_ temp[1].0yz_ ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; second rotation: Y-axis rotation: -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +######################################################################### +# second rotation: Y-axis rotation: +######################################################################### -; x_ = (-z1 * st2) -; z_ = ( z1 * ct2) -temp[2].xz = VE_MUL temp[1].-z_z_ temp[4].x_y_ +# x_ = (-z1 * st2) +# z_ = ( z1 * ct2) +temp[2].xz = VE_MUL temp[1].-z_z_ temp[4].x_y_ ; -; x2 = (x1 * ct2 + nz1st2) -; y2 = (y1 * 1 + 0) -; z2 = (x1 * st2 + z1ct2) -temp[2].xyz = VE_MAD temp[1].xyx_ temp[4].y1x_ temp[2].x0z_ +# x2 = (x1 * ct2 + nz1st2) +# y2 = (y1 * 1 + 0) +# z2 = (x1 * st2 + z1ct2) +temp[2].xyz = VE_MAD temp[1].xyx_ temp[4].y1x_ temp[2].x0z_ ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; scale -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +######################################################################### +# scale +######################################################################### -temp[3].xyz = VE_MAD temp[2].xyz_ const[1].zzz_ const[1].00w_ +temp[3].xyz = VE_MAD temp[2].xyz_ const[1].zzz_ const[1].00w_ ; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -; output -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +######################################################################### +# output +######################################################################### -out[0].xyzw = VE_MUL temp[3].xyzz temp[3].11-z1 -out[1].xyzw = VE_ADD input[1].xyzw input[1].0000 +out[0].xyzw = VE_MUL temp[3].xyzz temp[3].11-z1 ; +out[1].xyzw = VE_ADD input[1].xyzw input[1].0000 ; diff --git a/drm/cube_rotate.vs.inc b/drm/cube_rotate.vs.inc index 7d20d6f..a54cc5c 100644 --- a/drm/cube_rotate.vs.inc +++ b/drm/cube_rotate.vs.inc @@ -1,5 +1,5 @@ 0x00300003, 0x01f90022, 0x01fc8022, 0x01ffe022, -0x00300004, 0x01f90000, 0x01f90002, 0x01f92002, +0x00300004, 0x01f90000, 0x01f80002, 0x01f92002, 0x00300006, 0x01f90000, 0x01ffe000, 0x01ffe000, 0x00300004, 0x01f90000, 0x01fa4002, 0x01fb6002, 0x00106050, 0x003fe000, 0x01ffe000, 0x01ffe000, @@ -7,7 +7,7 @@ 0x00108050, 0x007fe000, 0x01ffe000, 0x01ffe000, 0x00208051, 0x007fe000, 0x01ffe000, 0x01ffe000, 0x00602002, 0x05d2e001, 0x01c8e060, 0x01ffe060, -0x00702080, 0x01c90001, 0x01c1a060, 0x01d18020, +0x00702004, 0x01c90001, 0x01c1a060, 0x01d18020, 0x00504002, 0x03d74020, 0x01cf0080, 0x01ffe080, 0x00704080, 0x01c10020, 0x01c52080, 0x01d40040, 0x00706004, 0x01d10040, 0x01d24022, 0x01dc8022, diff --git a/drm/rotate.vs.asm b/drm/rotate.vs.asm index 2f8477f..c125137 100644 --- a/drm/rotate.vs.asm +++ b/drm/rotate.vs.asm @@ -6,19 +6,19 @@ # instructions may use multiple `temp` addresses, so const[1] is moved to # temp[0]: # -temp[0].x = VE_ADD const[1].x___ const[1].0___ +temp[0].x = VE_ADD const[1].x___ const[1].0___ ; # ME_SIN and ME_COS are clamped to the range -π to +π prior to the sin/cos # calculation. # # This 3-instruction sequence linearly remaps the range [-∞,+∞] to [-π,+π] -temp[1].x = VE_MAD temp[0].x___ const[0].x___ const[0].y___ -temp[2].x = VE_FRC temp[1].x___ -temp[3].x = VE_MAD temp[2].x___ const[0].z___ const[0].w___ +temp[1].x = VE_MAD temp[0].x___ const[0].x___ const[0].y___ ; +temp[2].x = VE_FRC temp[1].x___ ; +temp[3].x = VE_MAD temp[2].x___ const[0].z___ const[0].w___ ; -temp[4].x = ME_SIN temp[3].___x -temp[4].y = ME_COS temp[3].___x +temp[4].x = ME_SIN temp[3].___x ; +temp[4].y = ME_COS temp[3].___x ; # with sin and cos calculated, this now ordinary two-dimensional rotation: # @@ -26,5 +26,5 @@ temp[4].y = ME_COS temp[3].___x # y = position.x * sint + position.y * cost # z = 0 # w = 1 -temp[5].xy = VE_MUL input[0].yy__ temp[4].xy__ - out[0].xyzw = VE_MAD input[0].xx01 temp[4].yx01 temp[5].-xy00 +temp[5].xy = VE_MUL input[0].yy__ temp[4].xy__ ; + out[0].xyzw = VE_MAD input[0].xx01 temp[4].yx01 temp[5].-xy00 ; diff --git a/drm/shadertoy.vs.asm b/drm/shadertoy.vs.asm index 89e4513..3050e42 100644 --- a/drm/shadertoy.vs.asm +++ b/drm/shadertoy.vs.asm @@ -1,3 +1,3 @@ # CONST[0] = { 1.3333 , _, _, _ } -out[1].xy = VE_MUL input[0].xy__ const[0].x1__ -out[0].xyzw = VE_ADD input[0].xyz1 input[0].0000 +out[1].xy = VE_MUL input[0].xy__ const[0].x1__ ; +out[0].xyzw = VE_ADD input[0].xyz1 input[0].0000 ; diff --git a/drm/shadertoy.vs.inc b/drm/shadertoy.vs.inc index 10fa32e..89816b6 100644 --- a/drm/shadertoy.vs.inc +++ b/drm/shadertoy.vs.inc @@ -1,2 +1,2 @@ -0x00302203, 0x01f90001, 0x01248001, 0x01248001, -0x00f00203, 0x01510001, 0x01248001, 0x01248001, +0x00302202, 0x01f90001, 0x01fd0002, 0x01ffe002, +0x00f00203, 0x01510001, 0x01248001, 0x01ffe001,