diff options
Diffstat (limited to 'Shaders/volume_upsample2.diff')
| -rw-r--r-- | Shaders/volume_upsample2.diff | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/Shaders/volume_upsample2.diff b/Shaders/volume_upsample2.diff new file mode 100644 index 0000000..0887f10 --- /dev/null +++ b/Shaders/volume_upsample2.diff @@ -0,0 +1,191 @@ +--- a/volume_upsample2.asm 2026-03-16 15:19:50.820204181 -0400 ++++ b/volume_upsample2.asm 2026-03-16 15:19:31.707007465 -0400 +@@ -254,103 +182,92 @@ + else + mov r0.w, l(0) + endif +-if_nz r0.w +- utof r1.xy, r2.xyxx +- mul r1.xy, r1.xyxx, cb3[2].zwzz +- mul r1.xy, r1.xyxx, cb1[4].zzzz +- mad r1.zw, -cb1[1].zzzw, l(0.000000, 0.000000, 0.500000, 0.500000), cb1[4].zzzz +- max r1.xy, r1.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000) +- min r1.xy, r1.zwzz, r1.xyxx +- sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r1.xyxx, t1.xyzw, s0, l(0.000000) +- sample_l_indexable(texture2d)(float,float,float,float) r1.xyz, r1.xyxx, t2.xyzw, s0, l(0.000000) ++if_nz r0.z ++ iadd r0.xy, -r0.xyxx, r2.yxyy ++ mov r4.xy, vThreadID.xyxx ++ mov r4.zw, l(0,0,0,0) ++ ld_indexable(texture2d)(float,float,float,float) r0.z, r4.xyzw, t0.yzxw ++ not r4.xy, r0.xyxx ++ imad r0.y, r4.x, l(-9), r0.y ++ imad r0.w, r4.x, l(-9), -r4.y ++ ishl r0.w, r0.w, l(8) ++ or r0.w, r0.w, r0.y ++ imad r0.x, r0.x, l(9), -r4.y ++ ishl r0.xy, r0.xyxx, l(16, 24, 0, 0) ++ or r0.x, r0.x, r0.w ++ or r0.x, r0.y, r0.x ++ bfi r0.y, l(1), l(1), vThreadIDInGroup.y, l(0) ++ bfi r0.y, l(1), l(0), vThreadIDInGroup.x, r0.y ++ and r0.w, r0.x, l(255) ++ ld_structured r1.w, r0.w, l(0), g0.xxxx ++ add r1.w, r0.z, -r1.w ++ add r1.w, |r1.w|, l(1.192092896E-07) ++ iadd r3.w, -r1.w, l(0x7ef312ac) ++ mad r4.x, -r3.w, r1.w, l(2.000000) ++ mul r3.w, r3.w, r4.x ++ mad r1.w, -r3.w, r1.w, l(2.000000) ++ mul r1.w, r1.w, r3.w ++ mul r3.w, r1.w, icb[r0.y + 0].x ++ ld_structured r4.xyz, r0.w, l(0), g1.xyzx ++ ld_structured r5.xyz, r0.w, l(0), g2.xyzx ++ mad r0.w, r1.w, icb[r0.y + 0].x, l(1.192092896E-07) ++ ubfe r6.xy, l(8, 8, 0, 0), l(8, 16, 0, 0), r0.xxxx ++ ld_structured r1.w, r6.x, l(0), g0.xxxx ++ add r1.w, r0.z, -r1.w ++ add r1.w, |r1.w|, l(1.192092896E-07) ++ iadd r4.w, -r1.w, l(0x7ef312ac) ++ mad r5.w, -r4.w, r1.w, l(2.000000) ++ mul r4.w, r4.w, r5.w ++ mad r1.w, -r4.w, r1.w, l(2.000000) ++ mul r1.w, r1.w, r4.w ++ mul r4.w, r1.w, icb[r0.y + 0].y ++ ld_structured r7.xyz, r6.x, l(0), g1.xyzx ++ mul r7.xyz, r4.wwww, r7.xyzx ++ mad r4.xyz, r4.xyzx, r3.wwww, r7.xyzx ++ ld_structured r6.xzw, r6.x, l(0), g2.xxyz ++ mul r6.xzw, r4.wwww, r6.xxzw ++ mad r5.xyz, r5.xyzx, r3.wwww, r6.xzwx ++ mad r0.w, r1.w, icb[r0.y + 0].y, r0.w ++ ld_structured r1.w, r6.y, l(0), g0.xxxx ++ add r1.w, r0.z, -r1.w ++ add r1.w, |r1.w|, l(1.192092896E-07) ++ iadd r3.w, -r1.w, l(0x7ef312ac) ++ mad r4.w, -r3.w, r1.w, l(2.000000) ++ mul r3.w, r3.w, r4.w ++ mad r1.w, -r3.w, r1.w, l(2.000000) ++ mul r1.w, r1.w, r3.w ++ mul r3.w, r1.w, icb[r0.y + 0].z ++ ld_structured r6.xzw, r6.y, l(0), g1.xxyz ++ mad r4.xyz, r6.xzwx, r3.wwww, r4.xyzx ++ ld_structured r6.xyz, r6.y, l(0), g2.xyzx ++ mad r5.xyz, r6.xyzx, r3.wwww, r5.xyzx ++ mad r0.w, r1.w, icb[r0.y + 0].z, r0.w ++ ushr r0.x, r0.x, l(24) ++ ld_structured r1.w, r0.x, l(0), g0.xxxx ++ add r0.z, r0.z, -r1.w ++ add r0.z, |r0.z|, l(1.192092896E-07) ++ iadd r1.w, -r0.z, l(0x7ef312ac) ++ mad r3.w, -r1.w, r0.z, l(2.000000) ++ mul r1.w, r1.w, r3.w ++ mad r0.z, -r1.w, r0.z, l(2.000000) ++ mul r0.z, r0.z, r1.w ++ mul r1.w, r0.z, icb[r0.y + 0].w ++ ld_structured r6.xyz, r0.x, l(0), g1.xyzx ++ mad r4.xyz, r6.xyzx, r1.wwww, r4.xyzx ++ ld_structured r6.xyz, r0.x, l(0), g2.xyzx ++ mad r5.xyz, r6.xyzx, r1.wwww, r5.xyzx ++ mad r0.x, r0.z, icb[r0.y + 0].w, r0.w ++ iadd r0.y, -r0.x, l(0x7ef312ac) ++ mad r0.z, -r0.y, r0.x, l(2.000000) ++ mul r0.y, r0.z, r0.y ++ mad r0.x, -r0.y, r0.x, l(2.000000) ++ mul r0.x, r0.x, r0.y ++ mul r3.xyz, r0.xxxx, r4.xyzx ++ mul r1.xyz, r0.xxxx, r5.xyzx + else +- if_nz r0.z +- iadd r0.xy, -r0.xyxx, r2.yxyy +- mov r4.xy, vThreadID.xyxx +- mov r4.zw, l(0,0,0,0) +- ld_indexable(texture2d)(float,float,float,float) r0.z, r4.xyzw, t0.yzxw +- not r4.xy, r0.xyxx +- imad r0.y, r4.x, l(-9), r0.y +- imad r0.w, r4.x, l(-9), -r4.y +- ishl r0.w, r0.w, l(8) +- or r0.w, r0.w, r0.y +- imad r0.x, r0.x, l(9), -r4.y +- ishl r0.xy, r0.xyxx, l(16, 24, 0, 0) +- or r0.x, r0.x, r0.w +- or r0.x, r0.y, r0.x +- bfi r0.y, l(1), l(1), vThreadIDInGroup.y, l(0) +- bfi r0.y, l(1), l(0), vThreadIDInGroup.x, r0.y +- and r0.w, r0.x, l(255) +- ld_structured r1.w, r0.w, l(0), g0.xxxx +- add r1.w, r0.z, -r1.w +- add r1.w, |r1.w|, l(1.192092896E-07) +- iadd r3.w, -r1.w, l(0x7ef312ac) +- mad r4.x, -r3.w, r1.w, l(2.000000) +- mul r3.w, r3.w, r4.x +- mad r1.w, -r3.w, r1.w, l(2.000000) +- mul r1.w, r1.w, r3.w +- mul r3.w, r1.w, icb[r0.y + 0].x +- ld_structured r4.xyz, r0.w, l(0), g1.xyzx +- ld_structured r5.xyz, r0.w, l(0), g2.xyzx +- mad r0.w, r1.w, icb[r0.y + 0].x, l(1.192092896E-07) +- ubfe r6.xy, l(8, 8, 0, 0), l(8, 16, 0, 0), r0.xxxx +- ld_structured r1.w, r6.x, l(0), g0.xxxx +- add r1.w, r0.z, -r1.w +- add r1.w, |r1.w|, l(1.192092896E-07) +- iadd r4.w, -r1.w, l(0x7ef312ac) +- mad r5.w, -r4.w, r1.w, l(2.000000) +- mul r4.w, r4.w, r5.w +- mad r1.w, -r4.w, r1.w, l(2.000000) +- mul r1.w, r1.w, r4.w +- mul r4.w, r1.w, icb[r0.y + 0].y +- ld_structured r7.xyz, r6.x, l(0), g1.xyzx +- mul r7.xyz, r4.wwww, r7.xyzx +- mad r4.xyz, r4.xyzx, r3.wwww, r7.xyzx +- ld_structured r6.xzw, r6.x, l(0), g2.xxyz +- mul r6.xzw, r4.wwww, r6.xxzw +- mad r5.xyz, r5.xyzx, r3.wwww, r6.xzwx +- mad r0.w, r1.w, icb[r0.y + 0].y, r0.w +- ld_structured r1.w, r6.y, l(0), g0.xxxx +- add r1.w, r0.z, -r1.w +- add r1.w, |r1.w|, l(1.192092896E-07) +- iadd r3.w, -r1.w, l(0x7ef312ac) +- mad r4.w, -r3.w, r1.w, l(2.000000) +- mul r3.w, r3.w, r4.w +- mad r1.w, -r3.w, r1.w, l(2.000000) +- mul r1.w, r1.w, r3.w +- mul r3.w, r1.w, icb[r0.y + 0].z +- ld_structured r6.xzw, r6.y, l(0), g1.xxyz +- mad r4.xyz, r6.xzwx, r3.wwww, r4.xyzx +- ld_structured r6.xyz, r6.y, l(0), g2.xyzx +- mad r5.xyz, r6.xyzx, r3.wwww, r5.xyzx +- mad r0.w, r1.w, icb[r0.y + 0].z, r0.w +- ushr r0.x, r0.x, l(24) +- ld_structured r1.w, r0.x, l(0), g0.xxxx +- add r0.z, r0.z, -r1.w +- add r0.z, |r0.z|, l(1.192092896E-07) +- iadd r1.w, -r0.z, l(0x7ef312ac) +- mad r3.w, -r1.w, r0.z, l(2.000000) +- mul r1.w, r1.w, r3.w +- mad r0.z, -r1.w, r0.z, l(2.000000) +- mul r0.z, r0.z, r1.w +- mul r1.w, r0.z, icb[r0.y + 0].w +- ld_structured r6.xyz, r0.x, l(0), g1.xyzx +- mad r4.xyz, r6.xyzx, r1.wwww, r4.xyzx +- ld_structured r6.xyz, r0.x, l(0), g2.xyzx +- mad r5.xyz, r6.xyzx, r1.wwww, r5.xyzx +- mad r0.x, r0.z, icb[r0.y + 0].w, r0.w +- iadd r0.y, -r0.x, l(0x7ef312ac) +- mad r0.z, -r0.y, r0.x, l(2.000000) +- mul r0.y, r0.z, r0.y +- mad r0.x, -r0.y, r0.x, l(2.000000) +- mul r0.x, r0.x, r0.y +- mul r3.xyz, r0.xxxx, r4.xyzx +- mul r1.xyz, r0.xxxx, r5.xyzx +- else +- mov r2.zw, l(0,0,0,0) +- ld_indexable(texture2d)(float,float,float,float) r3.xyz, r2.xyww, t1.xyzw +- ld_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyzw, t2.xyzw +- endif ++ mov r2.zw, l(0,0,0,0) ++ ld_indexable(texture2d)(float,float,float,float) r3.xyz, r2.xyww, t1.xyzw ++ ld_indexable(texture2d)(float,float,float,float) r1.xyz, r2.xyzw, t2.xyzw + endif + store_uav_typed u1.xyzw, vThreadID.xyyy, r1.xyzz + store_uav_typed u0.xyzw, vThreadID.xyyy, r3.xyzz |