Advertisement
Guest User

The Witcher 3 - the painted world pixel shader assembly

a guest
Nov 22nd, 2020
175
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.40 KB | None | 0 0
  1. ps_5_0
  2. dcl_globalFlags refactoringAllowed
  3. dcl_constantbuffer cb3[1], immediateIndexed
  4. dcl_constantbuffer cb12[74], immediateIndexed
  5. dcl_sampler s1, mode_default
  6. dcl_resource_texture2d (float,float,float,float) t0
  7. dcl_resource_texture2d (float,float,float,float) t1
  8. dcl_resource_texture2d (uint,uint,uint,uint) t2
  9. dcl_input_ps_siv v0.xy, position
  10. dcl_output o0.xyzw
  11. dcl_temps 18
  12. 0: mul r0.xy, v0.xyxx, cb12[23].zwzz
  13. 1: mul r0.y, r0.y, cb12[23].y
  14. 2: div r0.y, r0.y, cb12[23].x
  15. 3: mul r0.z, r0.y, l(50.000000)
  16. 4: round_ni r1.z, r0.z
  17. 5: mul r0.z, r0.x, l(50.000000)
  18. 6: round_ni r2.x, r0.z
  19. 7: mov r1.w, r2.x
  20. 8: add r0.zw, r1.wwwz, l(0.000000, 0.000000, 0.000000, 2.000000)
  21. 9: dp2 r3.x, r1.wzww, l(25.979601, 156.466003, 0.000000, 0.000000)
  22. 10: sincos r3.x, null, r3.x
  23. 11: mul r3.x, r3.x, l(43758.546875)
  24. 12: frc r3.x, r3.x
  25. 13: mov r1.w, r0.w
  26. 14: dp2 r0.z, r0.zwzz, l(25.979601, 156.466003, 0.000000, 0.000000)
  27. 15: sincos r0.z, null, r0.z
  28. 16: mul r0.z, r0.z, l(43758.546875)
  29. 17: add r4.xy, r1.zzzz, l(-1.000000, 1.000000, 0.000000, 0.000000)
  30. 18: mov r5.w, r4.x
  31. 19: add r5.xy, r2.xxxx, l(-1.000000, 1.000000, 0.000000, 0.000000)
  32. 20: mov r2.yz, r5.wwxw
  33. 21: dp2 r0.w, r5.xwxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  34. 22: mov r4.w, r5.y
  35. 23: sincos r0.w, null, r0.w
  36. 24: mul r0.w, r0.w, l(43758.546875)
  37. 25: frc r0.zw, r0.zzzw
  38. 26: add r1.xy, r2.xyxx, l(2.000000, 0.000000, 0.000000, 0.000000)
  39. 27: dp2 r1.w, r1.xwxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  40. 28: sincos r1.w, null, r1.w
  41. 29: mul r1.w, r1.w, l(43758.546875)
  42. 30: frc r1.w, r1.w
  43. 31: add r1.w, r1.w, r3.x
  44. 32: dp2 r3.y, r1.xzxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  45. 33: dp2 r3.z, r1.xyxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  46. 34: sincos r3.yz, null, r3.yyzy
  47. 35: mul r3.yz, r3.yyzy, l(0.000000, 43758.546875, 43758.546875, 0.000000)
  48. 36: frc r3.yz, r3.yyzy
  49. 37: add r1.w, r1.w, r3.y
  50. 38: add r1.w, r0.z, r1.w
  51. 39: add r0.z, r0.z, r3.x
  52. 40: add r1.y, r2.x, l(-1.000000)
  53. 41: mov r1.x, r4.w
  54. 42: add r5.xyzw, r1.xzyz, l(0.000000, 2.000000, 0.000000, 2.000000)
  55. 43: dp2 r1.y, r1.yzyy, l(25.979601, 156.466003, 0.000000, 0.000000)
  56. 44: sincos r1.y, null, r1.y
  57. 45: mul r1.y, r1.y, l(43758.546875)
  58. 46: dp2 r1.x, r1.xzxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  59. 47: mad r0.y, r0.y, l(50.000000), -r1.z
  60. 48: sincos r1.x, null, r1.x
  61. 49: mul r1.x, r1.x, l(43758.546875)
  62. 50: dp2 r1.z, r5.xyxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  63. 51: dp2 r3.w, r5.zwzz, l(25.979601, 156.466003, 0.000000, 0.000000)
  64. 52: sincos r3.w, null, r3.w
  65. 53: mul r3.w, r3.w, l(43758.546875)
  66. 54: frc r3.w, r3.w
  67. 55: sincos r1.z, null, r1.z
  68. 56: mul r1.z, r1.z, l(43758.546875)
  69. 57: frc r1.xyz, r1.xyzx
  70. 58: add r4.z, r1.z, r1.x
  71. 59: add r1.z, r1.z, r1.y
  72. 60: add r1.z, r1.x, r1.z
  73. 61: add r1.z, r3.w, r1.z
  74. 62: mov r2.w, r4.y
  75. 63: add r5.xy, r2.xwxx, l(2.000000, 0.000000, 0.000000, 0.000000)
  76. 64: dp2 r3.w, r5.xyxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  77. 65: sincos r3.w, null, r3.w
  78. 66: mul r3.w, r3.w, l(43758.546875)
  79. 67: frc r3.w, r3.w
  80. 68: add r4.z, r3.w, r4.z
  81. 69: dp2 r5.x, r2.xwxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  82. 70: dp2 r2.z, r2.zwzz, l(25.979601, 156.466003, 0.000000, 0.000000)
  83. 71: dp2 r2.y, r2.xyxx, l(25.979601, 156.466003, 0.000000, 0.000000)
  84. 72: mad r0.x, r0.x, l(50.000000), -r2.x
  85. 73: sincos r2.x, null, r2.y
  86. 74: mul r2.x, r2.x, l(43758.546875)
  87. 75: sincos r2.y, null, r2.z
  88. 76: mul r2.y, r2.y, l(43758.546875)
  89. 77: sincos r2.z, null, r5.x
  90. 78: mul r2.z, r2.z, l(43758.546875)
  91. 79: frc r2.xyz, r2.xyzx
  92. 80: add r2.w, r2.z, r4.z
  93. 81: mul r2.w, r2.w, l(0.125000)
  94. 82: mad r1.w, r1.w, l(0.062500), r2.w
  95. 83: dp2 r2.w, r4.wyww, l(25.979601, 156.466003, 0.000000, 0.000000)
  96. 84: dp2 r4.x, r4.wxww, l(25.979601, 156.466003, 0.000000, 0.000000)
  97. 85: sincos r4.x, null, r4.x
  98. 86: mul r4.x, r4.x, l(43758.546875)
  99. 87: frc r4.x, r4.x
  100. 88: sincos r2.w, null, r2.w
  101. 89: mul r2.w, r2.w, l(43758.546875)
  102. 90: frc r2.w, r2.w
  103. 91: mad r1.w, r2.w, l(0.250000), r1.w
  104. 92: add r0.zw, r0.zzzw, r2.wwww
  105. 93: add r0.z, r2.y, r0.z
  106. 94: mul r0.z, r0.z, l(0.125000)
  107. 95: mad r0.z, r1.z, l(0.062500), r0.z
  108. 96: mad r0.z, r2.z, l(0.250000), r0.z
  109. 97: add r1.z, -r0.z, r1.w
  110. 98: mad r0.z, r0.x, r1.z, r0.z
  111. 99: add r1.z, r3.w, r2.x
  112. 100: add r1.w, r2.z, r2.x
  113. 101: add r1.w, r1.x, r1.w
  114. 102: add r1.y, r1.y, r1.w
  115. 103: mul r1.y, r1.y, l(0.125000)
  116. 104: add r1.z, r3.z, r1.z
  117. 105: add r1.z, r2.z, r1.z
  118. 106: add r1.w, r2.w, r4.x
  119. 107: add r0.w, r4.x, r0.w
  120. 108: add r0.w, r2.y, r0.w
  121. 109: mad r0.w, r0.w, l(0.062500), r1.y
  122. 110: mad r0.w, r3.x, l(0.250000), r0.w
  123. 111: add r1.y, r3.y, r1.w
  124. 112: add r1.y, r3.x, r1.y
  125. 113: mul r1.y, r1.y, l(0.125000)
  126. 114: mad r1.y, r1.z, l(0.062500), r1.y
  127. 115: mad r1.x, r1.x, l(0.250000), r1.y
  128. 116: add r1.x, -r0.w, r1.x
  129. 117: mad r0.x, r0.x, r1.x, r0.w
  130. 118: add r0.z, -r0.x, r0.z
  131. 119: mad_sat r0.x, r0.y, r0.z, r0.x
  132. 120: mul r0.x, r0.x, l(6.283185)
  133. 121: sincos r0.x, r1.x, r0.x
  134. 122: mov r0.y, r1.x
  135. 123: mul r0.zw, v0.xxxy, cb12[73].zzzw
  136. 124: sample_l(texture2d)(float,float,float,float) r1.x, r0.zwzz, t1.xyzw, s1, l(0)
  137. 125: mad r1.x, r1.x, cb12[22].x, cb12[22].y
  138. 126: mad r1.x, r1.x, cb12[21].x, cb12[21].y
  139. 127: max r1.x, r1.x, l(0.000100)
  140. 128: div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
  141. 129: add r1.x, r1.x, l(-10.000000)
  142. 130: mul_sat r1.x, r1.x, l(0.066667)
  143. 131: mov r2.zw, l(0, 0, 0, 0)
  144. 132: mul r1.yz, r0.zzwz, cb12[73].xxyx
  145. 133: ftou r2.xy, r1.yzyy
  146. 134: ld_indexable(texture2d)(uint,uint,uint,uint) r1.y, r2.xyzw, t2.xyzw
  147. 135: and r1.y, r1.y, l(2)
  148. 136: movc r1.x, r1.y, r1.x, l(0)
  149. 137: movc r1.y, r1.y, l(0), l(1.000000)
  150. 138: add r1.x, r1.x, r1.y
  151. 139: mul r0.xy, r0.xyxx, r1.xxxx
  152. 140: mul r0.xy, r0.xyxx, cb12[73].zwzz
  153. 141: mad r1.xyzw, r0.xyxy, l(-5.000000, -5.000000, -4.000000, -4.000000), r0.zwzw
  154. 142: mul r2.xy, cb12[73].zwzz, l(0.500000, 0.500000, 0.000000, 0.000000)
  155. 143: max r1.xyzw, r1.xyzw, r2.xyxy
  156. 144: add r2.zw, cb12[23].xxxy, l(0.000000, 0.000000, -0.500000, -0.500000)
  157. 145: mul r2.zw, r2.zzzw, cb12[73].zzzw
  158. 146: min r1.xyzw, r1.xyzw, r2.zwzw
  159. 147: sample_l(texture2d)(float,float,float,float) r3.x, r1.xyxx, t1.xyzw, s1, l(0)
  160. 148: mad r3.x, r3.x, cb12[22].x, cb12[22].y
  161. 149: mad r3.x, r3.x, cb12[21].x, cb12[21].y
  162. 150: max r3.x, r3.x, l(0.000100)
  163. 151: div r3.x, l(1.000000, 1.000000, 1.000000, 1.000000), r3.x
  164. 152: add r3.x, r3.x, l(-10.000000)
  165. 153: mul_sat r3.x, r3.x, l(0.066667)
  166. 154: mul r4.xyzw, r1.xyzw, cb12[73].xyxy
  167. 155: ftou r4.xyzw, r4.zwxy
  168. 156: mov r5.xy, r4.zwzz
  169. 157: mov r5.zw, l(0, 0, 0, 0)
  170. 158: ld_indexable(texture2d)(uint,uint,uint,uint) r3.y, r5.xyzw, t2.xyzw
  171. 159: and r3.y, r3.y, l(2)
  172. 160: movc r3.x, r3.y, r3.x, l(0)
  173. 161: movc r3.y, r3.y, l(0), l(1.000000)
  174. 162: add r3.x, r3.x, r3.y
  175. 163: sample_l(texture2d)(float,float,float,float) r5.xyz, r1.xyxx, t0.xyzw, s1, l(0)
  176. 164: add r3.yzw, -r5.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
  177. 165: mul r3.yzw, r3.xxxx, r3.yyzw
  178. 166: max r3.yzw, r3.yyzw, l(0, 0, 0, 0)
  179. 167: sample_l(texture2d)(float,float,float,float) r1.x, r1.zwzz, t1.xyzw, s1, l(0)
  180. 168: sample_l(texture2d)(float,float,float,float) r6.xyz, r1.zwzz, t0.xyzw, s1, l(0)
  181. 169: mad r1.x, r1.x, cb12[22].x, cb12[22].y
  182. 170: mad r1.x, r1.x, cb12[21].x, cb12[21].y
  183. 171: max r1.x, r1.x, l(0.000100)
  184. 172: div r1.x, l(1.000000, 1.000000, 1.000000, 1.000000), r1.x
  185. 173: add r1.x, r1.x, l(-10.000000)
  186. 174: mul_sat r1.x, r1.x, l(0.066667)
  187. 175: mov r4.zw, l(0, 0, 0, 0)
  188. 176: ld_indexable(texture2d)(uint,uint,uint,uint) r1.y, r4.xyzw, t2.xyzw
  189. 177: and r1.y, r1.y, l(2)
  190. 178: movc r1.x, r1.y, r1.x, l(0)
  191. 179: movc r1.y, r1.y, l(0), l(1.000000)
  192. 180: add r1.x, r1.x, r1.y
  193. 181: add r1.yzw, -r6.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
  194. 182: mul r1.yzw, r1.xxxx, r1.yyzw
  195. 183: max r1.yzw, r1.yyzw, r3.yyzw
  196. 184: mad r4.xyzw, r0.xyxy, l(-3.000000, -3.000000, -2.000000, -2.000000), r0.zwzw
  197. 185: max r4.xyzw, r2.xyxy, r4.xyzw
  198. 186: min r4.xyzw, r2.zwzw, r4.xyzw
  199. 187: sample_l(texture2d)(float,float,float,float) r3.y, r4.xyxx, t1.yxzw, s1, l(0)
  200. 188: mad r3.y, r3.y, cb12[22].x, cb12[22].y
  201. 189: mad r3.y, r3.y, cb12[21].x, cb12[21].y
  202. 190: max r3.y, r3.y, l(0.000100)
  203. 191: div r3.y, l(1.000000, 1.000000, 1.000000, 1.000000), r3.y
  204. 192: add r3.y, r3.y, l(-10.000000)
  205. 193: mul_sat r3.y, r3.y, l(0.066667)
  206. 194: mul r7.xyzw, r4.xyzw, cb12[73].xyxy
  207. 195: ftou r7.xyzw, r7.zwxy
  208. 196: mov r8.xy, r7.zwzz
  209. 197: mov r8.zw, l(0, 0, 0, 0)
  210. 198: ld_indexable(texture2d)(uint,uint,uint,uint) r3.z, r8.xyzw, t2.xzyw
  211. 199: and r3.z, r3.z, l(2)
  212. 200: movc r3.y, r3.z, r3.y, l(0)
  213. 201: movc r3.z, r3.z, l(0), l(1.000000)
  214. 202: add r3.y, r3.y, r3.z
  215. 203: sample_l(texture2d)(float,float,float,float) r8.xyz, r4.xyxx, t0.xyzw, s1, l(0)
  216. 204: add r9.xyz, -r8.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  217. 205: mul r9.xyz, r3.yyyy, r9.xyzx
  218. 206: max r1.yzw, r1.yyzw, r9.xxyz
  219. 207: sample_l(texture2d)(float,float,float,float) r3.z, r4.zwzz, t1.yzxw, s1, l(0)
  220. 208: sample_l(texture2d)(float,float,float,float) r4.xyz, r4.zwzz, t0.xyzw, s1, l(0)
  221. 209: mad r3.z, r3.z, cb12[22].x, cb12[22].y
  222. 210: mad r3.z, r3.z, cb12[21].x, cb12[21].y
  223. 211: max r3.z, r3.z, l(0.000100)
  224. 212: div r3.z, l(1.000000, 1.000000, 1.000000, 1.000000), r3.z
  225. 213: add r3.z, r3.z, l(-10.000000)
  226. 214: mul_sat r3.z, r3.z, l(0.066667)
  227. 215: mov r7.zw, l(0, 0, 0, 0)
  228. 216: ld_indexable(texture2d)(uint,uint,uint,uint) r3.w, r7.xyzw, t2.xzwy
  229. 217: and r3.w, r3.w, l(2)
  230. 218: movc r3.z, r3.w, r3.z, l(0)
  231. 219: movc r3.w, r3.w, l(0), l(1.000000)
  232. 220: add r3.z, r3.z, r3.w
  233. 221: add r7.xyz, -r4.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  234. 222: mul r7.xyz, r3.zzzz, r7.xyzx
  235. 223: max r1.yzw, r1.yyzw, r7.xxyz
  236. 224: mad r7.xy, v0.xyxx, cb12[73].zwzz, -r0.xyxx
  237. 225: max r7.xy, r2.xyxx, r7.xyxx
  238. 226: min r7.xy, r2.zwzz, r7.xyxx
  239. 227: sample_l(texture2d)(float,float,float,float) r3.w, r7.xyxx, t1.yzwx, s1, l(0)
  240. 228: mad r3.w, r3.w, cb12[22].x, cb12[22].y
  241. 229: mad r3.w, r3.w, cb12[21].x, cb12[21].y
  242. 230: max r3.w, r3.w, l(0.000100)
  243. 231: div r3.w, l(1.000000, 1.000000, 1.000000, 1.000000), r3.w
  244. 232: add r3.w, r3.w, l(-10.000000)
  245. 233: mul_sat r3.w, r3.w, l(0.066667)
  246. 234: mul r7.zw, r7.xxxy, cb12[73].xxxy
  247. 235: sample_l(texture2d)(float,float,float,float) r9.xyz, r7.xyxx, t0.xyzw, s1, l(0)
  248. 236: ftou r7.xy, r7.zwzz
  249. 237: mov r7.zw, l(0, 0, 0, 0)
  250. 238: ld_indexable(texture2d)(uint,uint,uint,uint) r7.x, r7.xyzw, t2.yxzw
  251. 239: and r7.x, r7.x, l(2)
  252. 240: movc r3.w, r7.x, r3.w, l(0)
  253. 241: movc r7.x, r7.x, l(0), l(1.000000)
  254. 242: add r3.w, r3.w, r7.x
  255. 243: add r7.xyz, -r9.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  256. 244: mul r7.xyz, r3.wwww, r7.xyzx
  257. 245: max r1.yzw, r1.yyzw, r7.xxyz
  258. 246: max r7.xy, r0.zwzz, r2.xyxx
  259. 247: min r7.xy, r2.zwzz, r7.xyxx
  260. 248: sample_l(texture2d)(float,float,float,float) r7.xyz, r7.xyxx, t0.xyzw, s1, l(0)
  261. 249: add r10.xyz, -r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  262. 250: max r1.yzw, r1.yyzw, r10.xxyz
  263. 251: mad r10.xy, v0.xyxx, cb12[73].zwzz, r0.xyxx
  264. 252: max r10.xy, r2.xyxx, r10.xyxx
  265. 253: min r10.xy, r2.zwzz, r10.xyxx
  266. 254: sample_l(texture2d)(float,float,float,float) r10.z, r10.xyxx, t1.yzxw, s1, l(0)
  267. 255: mad r10.z, r10.z, cb12[22].x, cb12[22].y
  268. 256: mad r10.z, r10.z, cb12[21].x, cb12[21].y
  269. 257: max r10.z, r10.z, l(0.000100)
  270. 258: div r10.z, l(1.000000, 1.000000, 1.000000, 1.000000), r10.z
  271. 259: add r10.z, r10.z, l(-10.000000)
  272. 260: mul_sat r10.z, r10.z, l(0.066667)
  273. 261: mul r11.xy, r10.xyxx, cb12[73].xyxx
  274. 262: sample_l(texture2d)(float,float,float,float) r12.xyz, r10.xyxx, t0.xyzw, s1, l(0)
  275. 263: ftou r11.xy, r11.xyxx
  276. 264: mov r11.zw, l(0, 0, 0, 0)
  277. 265: ld_indexable(texture2d)(uint,uint,uint,uint) r10.x, r11.xyzw, t2.yxzw
  278. 266: and r10.x, r10.x, l(2)
  279. 267: movc r10.y, r10.x, r10.z, l(0)
  280. 268: movc r10.x, r10.x, l(0), l(1.000000)
  281. 269: add r10.x, r10.y, r10.x
  282. 270: add r10.yzw, -r12.xxyz, l(0.000000, 1.000000, 1.000000, 1.000000)
  283. 271: mul r10.yzw, r10.xxxx, r10.yyzw
  284. 272: max r1.yzw, r1.yyzw, r10.yyzw
  285. 273: mad r10.yz, r0.xxyx, l(0.000000, 2.000000, 2.000000, 0.000000), r0.zzwz
  286. 274: max r10.yz, r2.xxyx, r10.yyzy
  287. 275: min r10.yz, r2.zzwz, r10.yyzy
  288. 276: sample_l(texture2d)(float,float,float,float) r10.w, r10.yzyy, t1.yzwx, s1, l(0)
  289. 277: mad r10.w, r10.w, cb12[22].x, cb12[22].y
  290. 278: mad r10.w, r10.w, cb12[21].x, cb12[21].y
  291. 279: max r10.w, r10.w, l(0.000100)
  292. 280: div r10.w, l(1.000000, 1.000000, 1.000000, 1.000000), r10.w
  293. 281: add r10.w, r10.w, l(-10.000000)
  294. 282: mul_sat r10.w, r10.w, l(0.066667)
  295. 283: mul r11.xy, r10.yzyy, cb12[73].xyxx
  296. 284: sample_l(texture2d)(float,float,float,float) r13.xyz, r10.yzyy, t0.xyzw, s1, l(0)
  297. 285: ftou r11.xy, r11.xyxx
  298. 286: mov r11.zw, l(0, 0, 0, 0)
  299. 287: ld_indexable(texture2d)(uint,uint,uint,uint) r10.y, r11.xyzw, t2.xyzw
  300. 288: and r10.y, r10.y, l(2)
  301. 289: movc r10.z, r10.y, r10.w, l(0)
  302. 290: movc r10.y, r10.y, l(0), l(1.000000)
  303. 291: add r10.y, r10.z, r10.y
  304. 292: add r11.xyz, -r13.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  305. 293: mul r11.xyz, r10.yyyy, r11.xyzx
  306. 294: max r1.yzw, r1.yyzw, r11.xxyz
  307. 295: mad r11.xyzw, r0.xyxy, l(3.000000, 3.000000, 4.000000, 4.000000), r0.zwzw
  308. 296: mad r0.xy, r0.xyxx, l(5.000000, 5.000000, 0.000000, 0.000000), r0.zwzz
  309. 297: sample_l(texture2d)(float,float,float,float) r14.xyz, r0.zwzz, t0.xyzw, s1, l(0)
  310. 298: max r0.xy, r2.xyxx, r0.xyxx
  311. 299: max r11.xyzw, r2.xyxy, r11.xyzw
  312. 300: min r11.xyzw, r2.zwzw, r11.xyzw
  313. 301: min r0.xy, r2.zwzz, r0.xyxx
  314. 302: sample_l(texture2d)(float,float,float,float) r0.z, r11.xyxx, t1.yzxw, s1, l(0)
  315. 303: mad r0.z, r0.z, cb12[22].x, cb12[22].y
  316. 304: mad r0.z, r0.z, cb12[21].x, cb12[21].y
  317. 305: max r0.z, r0.z, l(0.000100)
  318. 306: div r0.z, l(1.000000, 1.000000, 1.000000, 1.000000), r0.z
  319. 307: add r0.z, r0.z, l(-10.000000)
  320. 308: mul_sat r0.z, r0.z, l(0.066667)
  321. 309: mul r2.xyzw, r11.xyzw, cb12[73].xyxy
  322. 310: ftou r2.xyzw, r2.zwxy
  323. 311: mov r15.xy, r2.zwzz
  324. 312: mov r15.zw, l(0, 0, 0, 0)
  325. 313: ld_indexable(texture2d)(uint,uint,uint,uint) r0.w, r15.xyzw, t2.xzwy
  326. 314: and r0.w, r0.w, l(2)
  327. 315: movc r0.z, r0.w, r0.z, l(0)
  328. 316: movc r0.w, r0.w, l(0), l(1.000000)
  329. 317: add r0.z, r0.z, r0.w
  330. 318: sample_l(texture2d)(float,float,float,float) r15.xyz, r11.xyxx, t0.xyzw, s1, l(0)
  331. 319: add r16.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  332. 320: mul r16.xyz, r0.zzzz, r16.xyzx
  333. 321: max r1.yzw, r1.yyzw, r16.xxyz
  334. 322: sample_l(texture2d)(float,float,float,float) r0.w, r11.zwzz, t1.yzwx, s1, l(0)
  335. 323: sample_l(texture2d)(float,float,float,float) r11.xyz, r11.zwzz, t0.xyzw, s1, l(0)
  336. 324: mad r0.w, r0.w, cb12[22].x, cb12[22].y
  337. 325: mad r0.w, r0.w, cb12[21].x, cb12[21].y
  338. 326: max r0.w, r0.w, l(0.000100)
  339. 327: div r0.w, l(1.000000, 1.000000, 1.000000, 1.000000), r0.w
  340. 328: add r0.w, r0.w, l(-10.000000)
  341. 329: mul_sat r0.w, r0.w, l(0.066667)
  342. 330: mov r2.zw, l(0, 0, 0, 0)
  343. 331: ld_indexable(texture2d)(uint,uint,uint,uint) r2.x, r2.xyzw, t2.yxzw
  344. 332: and r2.x, r2.x, l(2)
  345. 333: movc r0.w, r2.x, r0.w, l(0)
  346. 334: movc r2.x, r2.x, l(0), l(1.000000)
  347. 335: add r0.w, r0.w, r2.x
  348. 336: add r2.xyz, -r11.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  349. 337: mul r2.xyz, r0.wwww, r2.xyzx
  350. 338: max r1.yzw, r1.yyzw, r2.xxyz
  351. 339: sample_l(texture2d)(float,float,float,float) r2.x, r0.xyxx, t1.xyzw, s1, l(0)
  352. 340: mad r2.x, r2.x, cb12[22].x, cb12[22].y
  353. 341: mad r2.x, r2.x, cb12[21].x, cb12[21].y
  354. 342: max r2.x, r2.x, l(0.000100)
  355. 343: div r2.x, l(1.000000, 1.000000, 1.000000, 1.000000), r2.x
  356. 344: add r2.x, r2.x, l(-10.000000)
  357. 345: mul_sat r2.x, r2.x, l(0.066667)
  358. 346: mul r2.yz, r0.xxyx, cb12[73].xxyx
  359. 347: sample_l(texture2d)(float,float,float,float) r16.xyz, r0.xyxx, t0.xyzw, s1, l(0)
  360. 348: ftou r17.xy, r2.yzyy
  361. 349: mov r17.zw, l(0, 0, 0, 0)
  362. 350: ld_indexable(texture2d)(uint,uint,uint,uint) r0.x, r17.xyzw, t2.yxzw
  363. 351: and r0.x, r0.x, l(2)
  364. 352: movc r0.y, r0.x, r2.x, l(0)
  365. 353: movc r0.x, r0.x, l(0), l(1.000000)
  366. 354: add r0.x, r0.y, r0.x
  367. 355: add r2.xyz, -r16.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  368. 356: mul r2.xyz, r0.xxxx, r2.xyzx
  369. 357: max r1.yzw, r1.yyzw, r2.xxyz
  370. 358: add r1.yzw, -r1.yyzw, l(0.000000, 1.000000, 1.000000, 1.000000)
  371. 359: dp3 r0.y, l(0.300000, 0.500000, 0.200000, 0.000000), r1.yzwy
  372. 360: mul r1.yzw, r1.xxxx, r6.xxyz
  373. 361: mov r6.w, l(1.000000)
  374. 362: mul r2.xyzw, r1.xxxx, r6.xyzw
  375. 363: mul r6.xyz, r3.xxxx, r5.xyzx
  376. 364: max r6.xyz, r6.xyzx, l(0, 0, 0, 0)
  377. 365: max r1.xyz, r1.yzwy, r6.xyzx
  378. 366: mov r5.w, l(1.000000)
  379. 367: mad r2.xyzw, r5.xyzw, r3.xxxx, r2.xyzw
  380. 368: mul r5.xyz, r3.yyyy, r8.xyzx
  381. 369: max r1.xyz, r1.xyzx, r5.xyzx
  382. 370: mov r8.w, l(1.000000)
  383. 371: mad r2.xyzw, r8.xyzw, r3.yyyy, r2.xyzw
  384. 372: mul r5.xyz, r3.zzzz, r4.xyzx
  385. 373: max r1.xyz, r1.xyzx, r5.xyzx
  386. 374: mov r4.w, l(1.000000)
  387. 375: mad r2.xyzw, r4.xyzw, r3.zzzz, r2.xyzw
  388. 376: mul r3.xyz, r3.wwww, r9.xyzx
  389. 377: max r1.xyz, r1.xyzx, r3.xyzx
  390. 378: max r1.xyz, r7.xyzx, r1.xyzx
  391. 379: mov r9.w, l(1.000000)
  392. 380: mad r2.xyzw, r9.xyzw, r3.wwww, r2.xyzw
  393. 381: mov r7.w, l(1.000000)
  394. 382: add r2.xyzw, r2.xyzw, r7.xyzw
  395. 383: mul r3.xyz, r10.xxxx, r12.xyzx
  396. 384: max r1.xyz, r1.xyzx, r3.xyzx
  397. 385: mov r12.w, l(1.000000)
  398. 386: mad r2.xyzw, r12.xyzw, r10.xxxx, r2.xyzw
  399. 387: mul r3.xyz, r10.yyyy, r13.xyzx
  400. 388: max r1.xyz, r1.xyzx, r3.xyzx
  401. 389: mov r13.w, l(1.000000)
  402. 390: mad r2.xyzw, r13.xyzw, r10.yyyy, r2.xyzw
  403. 391: mul r3.xyz, r0.zzzz, r15.xyzx
  404. 392: max r1.xyz, r1.xyzx, r3.xyzx
  405. 393: mov r15.w, l(1.000000)
  406. 394: mad r2.xyzw, r15.xyzw, r0.zzzz, r2.xyzw
  407. 395: mul r3.xyz, r0.wwww, r11.xyzx
  408. 396: max r1.xyz, r1.xyzx, r3.xyzx
  409. 397: mov r11.w, l(1.000000)
  410. 398: mad r2.xyzw, r11.xyzw, r0.wwww, r2.xyzw
  411. 399: mul r3.xyz, r0.xxxx, r16.xyzx
  412. 400: max r1.xyz, r1.xyzx, r3.xyzx
  413. 401: mov r16.w, l(1.000000)
  414. 402: mad r2.xyzw, r16.xyzw, r0.xxxx, r2.xyzw
  415. 403: div r0.xzw, r2.xxyz, r2.wwww
  416. 404: dp3 r1.w, l(0.300000, 0.500000, 0.200000, 0.000000), r0.xzwx
  417. 405: add r0.y, r0.y, -r1.w
  418. 406: dp3 r2.x, l(0.300000, 0.500000, 0.200000, 0.000000), r1.xyzx
  419. 407: add r1.xyz, -r0.xzwx, r1.xyzx
  420. 408: add r1.w, -r1.w, r2.x
  421. 409: add r1.w, abs(r0.y), abs(r1.w)
  422. 410: mul r0.y, abs(r0.y), l(3.000000)
  423. 411: add r1.w, r1.w, l(0.001000)
  424. 412: div r0.y, r0.y, r1.w
  425. 413: min r0.y, r0.y, l(1.000000)
  426. 414: mad r0.xyz, r0.yyyy, r1.xyzx, r0.xzwx
  427. 415: add r0.xyz, -r14.xyzx, r0.xyzx
  428. 416: mad o0.xyz, cb3[0].xxxx, r0.xyzx, r14.xyzx
  429. 417: mov o0.w, l(1.000000)
  430. 418: ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement