Advertisement
Guest User

98ce6baef2510e20-ps, modified

a guest
Dec 5th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 40.18 KB | None | 0 0
  1. //
  2. // Generated by Microsoft (R) D3D Shader Disassembler
  3. //
  4. // using 3Dmigoto v1.3.16 on Thu Dec 05 14:33:23 2019
  5. //
  6. //
  7. // Input signature:
  8. //
  9. // Name Index Mask Register SysValue Format Used
  10. // -------------------- ----- ------ -------- -------- ------- ------
  11. // TEXCOORD 10 xyzw 0 NONE float xyz
  12. // TEXCOORD 11 xyzw 1 NONE float xyzw
  13. // TEXCOORD 4 xyzw 2 NONE float xy
  14. // TEXCOORD 7 xyzw 3 NONE float xyzw
  15. // TEXCOORD 9 xyz 4 NONE float xy
  16. // SV_Position 0 xyzw 5 POS float xyzw
  17. // SV_IsFrontFace 0 x 6 FFACE uint
  18. //
  19. //
  20. // Output signature:
  21. //
  22. // Name Index Mask Register SysValue Format Used
  23. // -------------------- ----- ------ -------- -------- ------- ------
  24. // SV_Target 0 xyzw 0 TARGET float xyzw
  25. //
  26. ps_5_0
  27. dcl_globalFlags refactoringAllowed
  28. dcl_constantbuffer cb0[29], dynamicIndexed
  29. dcl_constantbuffer cb1[180], immediateIndexed
  30. dcl_constantbuffer cb2[20], immediateIndexed
  31. dcl_constantbuffer cb3[118], immediateIndexed
  32. dcl_constantbuffer cb4[22], immediateIndexed
  33. dcl_constantbuffer cb5[3069], dynamicIndexed
  34. dcl_constantbuffer cb6[13], immediateIndexed
  35. dcl_sampler s0, mode_default
  36. dcl_sampler s1, mode_default
  37. dcl_sampler s2, mode_default
  38. dcl_sampler s3, mode_default
  39. dcl_sampler s4, mode_default
  40. dcl_sampler s5, mode_default
  41. dcl_sampler s6, mode_default
  42. dcl_sampler s7, mode_default
  43. dcl_sampler s8, mode_default
  44. dcl_sampler s9, mode_default
  45. dcl_sampler s10, mode_default
  46. dcl_sampler s11, mode_default
  47. dcl_resource_buffer (uint,uint,uint,uint) t0
  48. dcl_resource_buffer (uint,uint,uint,uint) t1
  49. dcl_resource_texturecube (float,float,float,float) t2
  50. dcl_resource_texturecubearray (float,float,float,float) t3
  51. dcl_resource_texture3d (float,float,float,float) t4
  52. dcl_resource_texture2d (float,float,float,float) t5
  53. dcl_resource_texture2d (float,float,float,float) t6
  54. dcl_resource_texture2d (float,float,float,float) t7
  55. dcl_resource_texture3d (float,float,float,float) t8
  56. dcl_resource_texture3d (float,float,float,float) t9
  57. dcl_resource_texture3d (float,float,float,float) t10
  58. dcl_resource_texture3d (float,float,float,float) t11
  59. dcl_resource_texture2d (float,float,float,float) t12
  60. dcl_resource_texture2d (float,float,float,float) t13
  61. dcl_resource_texture2d (float,float,float,float) t14
  62. dcl_resource_texture2d (float,float,float,float) t15
  63. dcl_resource_texture2d (float,float,float,float) t16
  64. dcl_resource_texture2d (float,float,float,float) t17
  65. dcl_resource_texture2d (float,float,float,float) t18
  66. dcl_resource_texture2d (float,float,float,float) t19
  67. dcl_resource_texture2d (float,float,float,float) t20
  68. dcl_resource_texture2d (float,float,float,float) t21
  69. dcl_resource_texture2d (float,float,float,float) t22
  70. dcl_resource_texture2d (float,float,float,float) t23
  71. dcl_input_ps linear centroid v0.xyz
  72. dcl_input_ps linear centroid v1.xyzw
  73. dcl_input_ps linear v2.xy
  74. dcl_input_ps linear v3.xyzw
  75. dcl_input_ps linear v4.xy
  76. dcl_input_ps_siv linear noperspective v5.xyzw, position
  77. dcl_output o0.xyzw
  78. dcl_temps 40
  79. dcl_resource_texture2d (float,float,float,float) t125
  80. dcl_resource_texture1d (float,float,float,float) t120
  81. mul [precise(xyz)] r0.xyz, v0.xyzx, v1.zxyz
  82. mul [precise(xyz)] r1.xyz, v0.zxyz, v1.xyzx
  83. add [precise(xyz)] r0.xyz, r0.xyzx, -r1.xyzx
  84. mul [precise(xyz)] r0.xyz, r0.xyzx, v1.wwww
  85. add [precise(xy)] r1.xy, v5.xyxx, -cb1[121].xyxx
  86. mul [precise(zw)] r1.zw, r1.xxxy, cb1[122].zzzw
  87. add [precise(zw)] r1.zw, r1.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
  88. mul [precise(xy)] r2.xy, r1.zwzz, l(2.000000, -2.000000, 0.000000, 0.000000)
  89. mov [precise(z)] r2.z, l(1.000000)
  90. mul [precise(xyz)] r2.xyz, r2.xyzx, v5.wwww
  91. mul [precise] r3.xyzw, v5.xxxx, cb1[40].xyzw
  92. mul [precise] r4.xyzw, v5.yyyy, cb1[41].xyzw
  93. add [precise] r3.xyzw, r3.xyzw, r4.xyzw
  94. mul [precise] r4.xyzw, v5.zzzz, cb1[42].xyzw
  95. add [precise] r3.xyzw, r3.xyzw, r4.xyzw
  96. add [precise] r3.xyzw, r3.xyzw, cb1[43].xyzw
  97. div [precise(xyz)] r3.xyz, r3.xyzx, r3.wwww
  98.  
  99. mov r31.xyzw, r3.xyzw
  100.  
  101. // DHR ShaderRegex - UE4 Pattern Objects 1:
  102. ld_indexable(texture2d)(float,float,float,float) r24.xyzw, l(0, 0, 0, 0), t125.xyzw
  103. //Translate to clip
  104. mul r25.xyzw, r3.yyyy, cb1[1].xyzw
  105. mad r25.xyzw, r3.xxxx, cb1[0].xyzw, r25.xyzw
  106. mad r25.xyzw, r3.zzzz, cb1[2].xyzw, r25.xyzw
  107. add r25.xyzw, r25.xyzw, cb1[3].xyzw
  108. //Fix
  109. mad r25.x, -r24.x, r25.w, r25.x
  110. //Translate to world
  111. mul r27.xyzw, r25.yyyy, cb1[37].xyzw
  112. mad r27.xyzw, r25.xxxx, cb1[36].xyzw, r27.xyzw
  113. mad r27.xyzw, r25.zzzz, cb1[38].xyzw, r27.xyzw
  114. mad r27.xyzw, r25.wwww, cb1[39].xyzw, r27.xyzw
  115. //Fix
  116. mad r25.x, r24.x, r24.y, r25.x
  117. //Translate to world
  118. mul r3.xyzw, r25.yyyy, cb1[37].xyzw
  119. mad r3.xyzw, r25.xxxx, cb1[36].xyzw, r3.xyzw
  120. mad r3.xyzw, r25.zzzz, cb1[38].xyzw, r3.xyzw
  121. mad r3.xyzw, r25.wwww, cb1[39].xyzw, r3.xyzw
  122.  
  123. add [precise(xyz)] r4.xyz, r3.xyzx, -cb1[62].xyzx
  124. add [precise(xyz)] r34.xyz, r31.xyzx, -cb1[62].xyzx
  125.  
  126. add [precise(zw)] r1.zw, v4.xxxy, -cb1[62].xxxy
  127. dp3 [precise(w)] r0.w, -r27.xyzx, -r27.xyzx
  128. rsq [precise(w)] r0.w, r0.w
  129. mul [precise(xyz)] r5.xyz, r0.wwww, -r27.xyzx
  130.  
  131. div [precise(zw)] r1.zw, r1.zzzw, cb6[9].xxxx
  132. mul [precise(w)] r0.w, cb1[133].z, cb6[9].z
  133. div [precise(w)] r2.w, cb1[133].z, l(40.000000)
  134. mul [precise] r6.xyzw, r1.zwzw, cb6[9].yyww
  135. add [precise(zw)] r6.zw, r2.wwww, r6.zzzw
  136. sample_indexable [precise(w)](texture2d)(float,float,float,float) r2.w, r6.zwzz, t15.yzwx, s0
  137. div [precise(w)] r2.w, r2.w, l(2.000000)
  138. div [precise(zw)] r6.zw, r6.zzzw, l(0.000000, 0.000000, 16.000000, 16.000000)
  139. sample_indexable [precise(w)](texture2d)(float,float,float,float) r3.w, r6.zwzz, t15.yzwx, s0
  140. add [precise(w)] r2.w, r2.w, r3.w
  141. mul [precise(w)] r2.w, r2.w, cb6[10].x
  142. add [precise(w)] r0.w, r0.w, r2.w
  143. add [precise(w)] r2.w, r0.w, l(-0.500000)
  144. frc [precise(w)] r2.w, r2.w
  145. sample_indexable [precise(zw)](texture2d)(float,float,float,float) r6.zw, r1.zwzz, t16.zwxy, s0
  146. add [precise(zw)] r6.zw, r6.zzzw, l(0.000000, 0.000000, -0.500000, -0.500000)
  147. mul [precise(zw)] r6.zw, r6.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000)
  148. mul [precise(zw)] r6.zw, r6.zzzw, cb6[10].yyyy
  149. mul [precise(zw)] r6.zw, r6.zzzw, l(0.000000, 0.000000, -1.000000, 1.000000)
  150. mul [precise(xy)] r7.xy, r2.wwww, r6.zwzz
  151. add [precise(xy)] r7.xy, r6.xyxx, r7.xyxx
  152. add [precise(xy)] r7.xy, r7.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  153. sample_b_indexable [precise(zw)](texture2d)(float,float,float,float) r7.zw, r7.xyxx, t17.zwxy, s9, cb1[134].x
  154. mul [precise(zw)] r7.zw, r7.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000)
  155. add [precise(xy)] r8.xy, r7.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  156. dp2 [precise(w)] r2.w, r8.xyxx, r8.xyxx
  157. add [precise(w)] r2.w, -r2.w, l(1.000000)
  158. max [precise(w)] r2.w, r2.w, l(0.000000)
  159. sqrt [precise(z)] r8.z, r2.w
  160. frc [precise(w)] r0.w, r0.w
  161. mul [precise(zw)] r6.zw, r0.wwww, r6.zzzw
  162. add [precise(xy)] r6.xy, r6.xyxx, r6.zwzz
  163. sample_b_indexable [precise(zw)](texture2d)(float,float,float,float) r6.zw, r6.xyxx, t17.zwxy, s9, cb1[134].x
  164. mul [precise(zw)] r6.zw, r6.zzzw, l(0.000000, 0.000000, 2.000000, 2.000000)
  165. add [precise(xy)] r9.xy, r6.zwzz, l(-1.000000, -1.000000, 0.000000, 0.000000)
  166. dp2 [precise(w)] r2.w, r9.xyxx, r9.xyxx
  167. add [precise(w)] r2.w, -r2.w, l(1.000000)
  168. max [precise(w)] r2.w, r2.w, l(0.000000)
  169. sqrt [precise(z)] r9.z, r2.w
  170. div [precise(w)] r0.w, r0.w, l(1.000000)
  171. frc [precise(w)] r0.w, r0.w
  172. mul [precise(w)] r2.w, r0.w, l(2.000000)
  173. add [precise(w)] r0.w, -r0.w, l(1.000000)
  174. mul [precise(w)] r0.w, r0.w, l(2.000000)
  175. round_ni [precise(w)] r3.w, r2.w
  176. add [precise(w)] r0.w, -r2.w, r0.w
  177. mul [precise(w)] r0.w, r0.w, r3.w
  178. add [precise(w)] r0.w, r0.w, r2.w
  179. add [precise(xyz)] r9.xyz, -r8.xyzx, r9.xyzx
  180. mul [precise(xyz)] r9.xyz, r0.wwww, r9.xyzx
  181. add [precise(xyz)] r8.xyz, r8.xyzx, r9.xyzx
  182. mul [precise(zw)] r6.zw, r1.zzzw, cb6[10].zzzz
  183. sample_indexable [precise(w)](texture2d)(float,float,float,float) r2.w, r6.zwzz, t18.xzwy, s0
  184. mul_sat [precise(w)] r3.w, r2.w, cb6[10].w
  185. add [precise(xyz)] r9.xyz, r4.xyzx, -cb1[59].xyzx
  186. dp3 [precise(w)] r5.w, r9.xyzx, r9.xyzx
  187. sqrt [precise(z)] r6.z, r5.w
  188. div_sat [precise(z)] r6.z, r6.z, cb6[11].x
  189. add [precise(w)] r6.w, -r6.z, l(1.000000)
  190. mul [precise(w)] r3.w, r3.w, r6.w
  191. add [precise(xyz)] r8.xyz, r8.xyzx, l(-0.000000, -0.000000, -1.000000, 0.000000)
  192. mul [precise(xyz)] r8.xyz, r3.wwww, r8.xyzx
  193. add [precise(xyz)] r8.xyz, r8.xyzx, l(0.000000, 0.000000, 1.000000, 0.000000)
  194. add [precise(w)] r8.w, r8.z, l(1.000000)
  195. add [precise(zw)] r7.zw, r4.xxxy, -cb0[0].xxxy
  196. mul [precise(w)] r3.w, cb0[1].x, l(0.500000)
  197. add [precise(zw)] r7.zw, r3.wwww, r7.zzzw
  198. div [precise(zw)] r7.zw, r7.zzzw, cb0[1].xxxx
  199. sample_l_indexable [precise(xyz)](texture2d)(float,float,float,float) r10.xyz, r7.zwzz, t22.xyzw, s11, l(0.000000)
  200. add [precise(xy)] r11.xy, -r7.zwzz, l(1.000000, 1.000000, 0.000000, 0.000000)
  201. mul_sat [precise(xy)] r11.xy, r11.xyxx, cb0[1].yyyy
  202. mul_sat [precise(zw)] r11.zw, r7.zzzw, cb0[1].yyyy
  203. mul [precise(xy)] r11.xy, r11.zwzz, r11.xyxx
  204. mul [precise(w)] r3.w, r11.y, r11.x
  205. add [precise(xyz)] r10.xyz, r10.xyzx, l(-0.000000, -0.000000, -1.000000, 0.000000)
  206. mul [precise(xyz)] r10.xyz, r3.wwww, r10.xyzx
  207. add [precise(xyz)] r10.xyz, r10.xyzx, l(0.000000, 0.000000, 1.000000, 0.000000)
  208. dp3 [precise(w)] r6.w, r10.xyzx, r10.xyzx
  209. sqrt [precise(w)] r6.w, r6.w
  210. div [precise(xyz)] r10.xyz, r10.xyzx, r6.wwww
  211. mul [precise(xy)] r10.xy, r10.xyxx, l(-1.000000, -1.000000, 0.000000, 0.000000)
  212. dp3 [precise(w)] r6.w, r8.xywx, r10.xyzx
  213. mul [precise(xyz)] r8.xyz, r6.wwww, r8.xywx
  214. mul [precise(xyz)] r10.xyz, r8.wwww, r10.xyzx
  215. add [precise(xyz)] r8.xyz, r8.xyzx, -r10.xyzx
  216. mul [precise(xyz)] r8.xyz, r8.xyzx, cb1[128].wwww
  217. add [precise(xyz)] r8.xyz, r8.xyzx, cb1[128].xyzx
  218. dp3 [precise(w)] r6.w, r8.xyzx, r8.xyzx
  219. rsq [precise(w)] r6.w, r6.w
  220. mul [precise(xyz)] r8.xyz, r6.wwww, r8.xyzx
  221. mul [precise(xyz)] r10.xyz, r8.xxxx, v0.yzxy
  222. mul [precise(xyz)] r0.xyz, r0.xyzx, r8.yyyy
  223. add [precise(xyz)] r0.xyz, r0.xyzx, r10.xyzx
  224. mul [precise(xyz)] r8.xyz, r8.zzzz, v1.yzxy
  225. add [precise(xyz)] r0.xyz, r0.xyzx, r8.xyzx
  226. dp3 [precise(w)] r6.w, r0.zxyz, r0.zxyz
  227. rsq [precise(w)] r6.w, r6.w
  228. mul [precise(xyz)] r8.xyz, r0.xyzx, r6.wwww
  229. dp3 r8.w, cb1[14].xyzx, v1.xyzx
  230. add r8.w, -|r8.w|, l(1.000000)
  231. max r8.w, r8.w, l(0.000000)
  232. mul r8.w, r8.w, r8.w
  233. dp3 [precise(w)] r9.w, r8.zxyz, r5.xyzx
  234. max r10.x, r9.w, l(0.000000)
  235. add r10.y, -r10.x, l(1.000000)
  236. log r10.y, |r10.y|
  237. mul r10.y, r10.y, cb6[11].y
  238. exp r10.y, r10.y
  239. add r10.y, -r10.y, l(1.000000)
  240. mul r8.w, r8.w, r10.y
  241. add r10.yzw, cb6[5].xxyz, -cb6[6].xxyz
  242. mad r10.yzw, r8.wwww, r10.yyzw, cb6[6].xxyz
  243. sample_b_indexable [precise(x)](texture2d)(float,float,float,float) r7.x, r7.xyxx, t19.xyzw, s10, cb1[134].x
  244. sample_b_indexable [precise(x)](texture2d)(float,float,float,float) r6.x, r6.xyxx, t19.xyzw, s10, cb1[134].x
  245. add [precise(x)] r6.x, -r7.x, r6.x
  246. mul [precise(w)] r0.w, r0.w, r6.x
  247. add [precise(w)] r0.w, r0.w, r7.x
  248. sample_indexable [precise(z)](texture2d)(float,float,float,float) r1.z, r1.zwzz, t20.yzxw, s0
  249. sample_l_indexable [precise(w)](texture2d)(float,float,float,float) r1.w, r7.zwzz, t21.xyzw, s11, l(0.000000)
  250. add [precise(w)] r1.w, -r1.w, l(1.000000)
  251. mul [precise(w)] r1.w, r3.w, r1.w
  252. max [precise(z)] r1.z, r1.w, r1.z
  253. mul [precise(w)] r0.w, r0.w, r1.z
  254. add r7.xyz, -r10.yzwy, cb6[8].xyzx
  255. mad_sat r7.xyz, r0.wwww, r7.xyzx, r10.yzwy
  256. add [precise(z)] r1.z, -r2.w, l(1.000000)
  257. max [precise(z)] r1.z, r1.z, l(0.000000)
  258. mul [precise(z)] r1.z, r1.z, r1.z
  259. add [precise(z)] r1.z, r1.z, l(1.000000)
  260. mul [precise(z)] r1.z, r1.z, l(0.500000)
  261. mul [precise(z)] r1.z, r1.z, r6.z
  262. mul [precise(z)] r1.z, r1.z, l(0.200000)
  263. add [precise(z)] r1.z, r1.z, l(0.050000)
  264. add [precise(w)] r1.w, -r1.z, cb6[11].w
  265. mul [precise(w)] r0.w, r0.w, r1.w
  266. add_sat [precise(w)] r0.w, r0.w, r1.z
  267. div [precise(zw)] r1.zw, r2.xxxy, r2.zzzz
  268. mul [precise(zw)] r1.zw, r1.zzzw, cb1[58].xxxy
  269. add [precise(zw)] r1.zw, r1.zzzw, cb1[58].wwwz
  270. sample_l_indexable [precise(z)](texture2d)(float,float,float,float) r1.z, r1.zwzz, t5.yzxw, s4, l(0.000000)
  271. mul [precise(zw)] r1.zw, r1.zzzz, cb1[57].xxxz
  272. add [precise(z)] r1.z, r1.z, cb1[57].y
  273. add [precise(w)] r1.w, r1.w, -cb1[57].w
  274. div [precise(w)] r1.w, l(1.000000, 1.000000, 1.000000, 1.000000), r1.w
  275. add [precise(z)] r1.z, r1.w, r1.z
  276. add [precise(z)] r1.z, -r2.z, r1.z
  277. div_sat [precise(z)] r1.z, r1.z, cb6[12].y
  278. mul [precise(z)] r1.z, r1.z, cb6[12].z
  279. add [precise(w)] r1.w, r2.z, l(-12.000000)
  280. mul_sat [precise(w)] r1.w, r1.w, l(0.250000)
  281. mul_sat [precise(w)] r11.w, r1.w, r1.z
  282. mov_sat r1.z, cb6[11].z
  283. mul [precise(w)] r0.w, r0.w, cb1[129].y
  284. add [precise(w)] r0.w, r0.w, cb1[129].x
  285. add r2.xyw, r7.xyxz, l(-0.0203999989, -0.0203999989, 0.000000, -0.0203999989)
  286. mad r2.xyw, r1.zzzz, r2.xyxw, l(0.0203999989, 0.0203999989, 0.000000, 0.0203999989)
  287. mad r6.xyz, -r7.xyzx, r1.zzzz, r7.xyzx
  288. mad r6.xyz, r6.xyzx, cb1[126].wwww, cb1[126].xyzx
  289. mad r2.xyw, r2.xyxw, cb1[127].wwww, cb1[127].xyxz
  290. mul r1.zw, v2.xxxy, l(0.000000, 0.000000, 1.000000, 0.500000)
  291. mad r10.yz, v2.xxyx, l(0.000000, 1.000000, 0.500000, 0.000000), l(0.000000, 0.000000, 0.500000, 0.000000)
  292. mul r12.xyz, r8.zxyz, cb2[11].yzxy
  293. mad r12.xyz, cb2[11].xyzx, r8.xyzx, -r12.xyzx
  294. mul r12.xyz, r12.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000)
  295. mad r13.xyz, cb2[11].wwww, r12.zxyz, r8.xyzx
  296. mul r14.xyz, r12.xyzx, cb2[11].xyzx
  297. mad r12.xyz, cb2[11].zxyz, r12.yzxy, -r14.xyzx
  298. add r12.xyz, r12.xyzx, r13.xyzx
  299. sample_indexable(texture2d)(float,float,float,float) r13.xyzw, r1.zwzz, t13.xyzw, s8
  300. sample_indexable(texture2d)(float,float,float,float) r14.xyzw, r10.yzyy, t13.xyzw, s8
  301. mad r1.z, r14.w, l(0.00392156886), r13.w
  302. add r1.z, r1.z, l(-0.00196078443)
  303. mad r1.z, r1.z, cb4[18].w, cb4[20].w
  304. mul r10.yzw, r13.xxyz, r13.xxyz
  305. mad r10.yzw, r10.yyzw, cb4[18].xxyz, cb4[20].xxyz
  306. exp r1.z, r1.z
  307. add r1.z, r1.z, l(-0.0185813606)
  308. mad r13.xyzw, r14.xyzw, cb4[19].xyzw, cb4[21].xyzw
  309. mov r12.w, l(1.000000)
  310. dp4 r1.w, r13.xyzw, r12.xyzw
  311. max r1.w, r1.w, l(0.000000)
  312. mul r1.z, r1.w, r1.z
  313. mul r10.yzw, r10.yyzw, r1.zzzz
  314. mul r10.yzw, r10.yyzw, cb1[147].xxyz
  315. lt r1.z, l(0.000000), cb1[156].y
  316. if_nz r1.z
  317. sample_indexable(texture2d)(float,float,float,float) r12.xyzw, v2.xyxx, t14.xyzw, s8
  318. mad r12.xyz, r12.xyzx, l(2.000000, 2.000000, 2.000000, 0.000000), l(-1.000000, -1.000000, -1.000000, 0.000000)
  319. mul r13.x, r12.w, r12.w
  320. dp3 r1.z, r12.xyzx, r12.xyzx
  321. rsq r1.z, r1.z
  322. mul r12.xyz, r1.zzzz, r12.xyzx
  323. mad r1.z, -r12.w, r12.w, l(1.000000)
  324. mad r1.z, -r1.z, r1.z, l(1.000000)
  325. mad r0.xyz, r0.zxyz, r6.wwww, -r12.xyzx
  326. mad r14.xyz, r1.zzzz, r0.xyzx, r12.xyzx
  327. dp3_sat r0.x, r12.yzxy, r8.xyzx
  328. add r0.y, -r0.x, l(1.000000)
  329. mad r13.y, r1.z, r0.y, r0.x
  330. else
  331. mov r14.xyz, r8.zxyz
  332. mov r13.xy, l(1.000000,1.000000,0,0)
  333. endif
  334. mov r14.w, l(1.000000)
  335. dp4 r0.x, cb1[158].xyzw, r14.xyzw
  336. dp4 r0.y, cb1[159].xyzw, r14.xyzw
  337. dp4 r0.z, cb1[160].xyzw, r14.xyzw
  338. mul r12.xyzw, r14.yzzx, r14.xyzz
  339. dp4 r15.x, cb1[161].xyzw, r12.xyzw
  340. dp4 r15.y, cb1[162].xyzw, r12.xyzw
  341. dp4 r15.z, cb1[163].xyzw, r12.xyzw
  342. mul r1.z, r14.y, r14.y
  343. mad r1.z, r14.x, r14.x, -r1.z
  344. add r0.xyz, r0.xyzx, r15.xyzx
  345. mad r0.xyz, cb1[164].xyzx, r1.zzzz, r0.xyzx
  346. max r0.xyz, r0.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  347. mul r0.xyz, r0.xyzx, cb1[157].xyzx
  348. mul r1.z, r13.y, r13.x
  349. mul r1.z, r1.z, cb2[19].z
  350. mul r0.xyz, r0.xyzx, r1.zzzz
  351. mad r0.xyz, r10.yzwy, cb2[19].yyyy, r0.xyzx
  352. dp3 r1.z, r0.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  353. mul r0.xyz, r6.xyzx, r0.xyzx
  354. mad r10.yzw, r7.xxyz, l(0.000000, 2.040400, 2.040400, 2.040400), l(0.000000, -0.332400, -0.332400, -0.332400)
  355. mad r10.yzw, r7.xxyz, l(0.000000, -4.795100, -4.795100, -4.795100), r10.yyzw
  356. mad r7.xyz, r7.xyzx, l(2.755200, 2.755200, 2.755200, 0.000000), r10.yzwy
  357. add r7.xyz, r7.xyzx, l(1.332000, 1.332000, 1.332000, 0.000000)
  358. max r7.xyz, r7.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  359. mul [precise(w)] r1.w, v5.w, cb3[3].x
  360. add [precise(w)] r1.w, r1.w, cb3[3].y
  361. log [precise(w)] r1.w, r1.w
  362. mul [precise(w)] r1.w, r1.w, cb3[3].z
  363. max [precise(w)] r1.w, r1.w, l(0.000000)
  364. ftou [precise(xyw)] r1.xyw, r1.xyxw
  365. iadd [precise(w)] r3.w, cb3[1].z, l(-1)
  366. umin [precise(w)] r1.w, r1.w, r3.w
  367. ushr [precise(xy)] r1.xy, r1.xyxx, cb3[2].xxxx
  368. imad [precise(y)] r1.y, r1.w, cb3[1].y, r1.y
  369. imad [precise(x)] r1.x, r1.y, cb3[1].x, r1.x
  370. mul [precise(y)] r1.y, r9.w, l(2.000000)
  371. mul [precise(yzw)] r10.yzw, r8.zzxy, r1.yyyy
  372. add [precise(xyz)] r5.xyz, -r5.xyzx, r10.yzwy
  373. min r1.y, r10.x, l(1.000000)
  374. iadd [precise(x)] r1.x, r1.x, cb3[0].w
  375. ishl [precise(w)] r1.w, r1.x, l(1)
  376. ld_indexable [precise(w)](buffer)(uint,uint,uint,uint) r1.w, r1.wwww, t0.yzwx
  377. umin [precise(w)] r1.w, r1.w, cb3[0].y
  378. bfi [precise(x)] r1.x, l(31), l(1), r1.x, l(1)
  379. ld_indexable [precise(x)](buffer)(uint,uint,uint,uint) r1.x, r1.xxxx, t0.xyzw
  380. log [precise(w)] r3.w, r0.w
  381. mul [precise(w)] r3.w, r3.w, l(1.200000)
  382. add [precise(w)] r3.w, -r3.w, l(1.000000)
  383. add [precise(w)] r6.w, cb1[165].z, l(-1.000000)
  384. add [precise(w)] r6.w, -r3.w, r6.w
  385. mov [precise(x)] r10.x, l(0)
  386. mov [precise(w)] r7.w, l(1.000000)
  387. mov [precise(w)] r8.w, l(0)
  388. mov [precise(w)] r9.w, l(1.000000)
  389. mov [precise] r12.xyzw, l(0,0,0,0)
  390. loop
  391. uge [precise(x)] r13.x, r12.w, r1.w
  392. breakc_nz r13.x
  393. lt [precise(x)] r13.x, r7.w, l(0.001000)
  394. lt [precise(y)] r13.y, r9.w, l(0.001000)
  395. or [precise(x)] r13.x, r13.y, r13.x
  396. if_nz r13.x
  397. break
  398. endif
  399. iadd [precise(x)] r13.x, r1.x, r12.w
  400. ld_indexable [precise(x)](buffer)(uint,uint,uint,uint) r13.x, r13.xxxx, t1.xyzw
  401. add [precise(yzw)] r13.yzw, r4.xxyz, -cb5[r13.x + 0].xxyz
  402. dp3 [precise(x)] r14.x, r13.yzwy, r13.yzwy
  403. sqrt [precise(x)] r14.x, r14.x
  404. and [precise(y)] r14.y, l(0x0000ffff), cb5[r13.x + 341].w
  405. lt [precise(z)] r14.z, r14.x, cb5[r13.x + 0].w
  406. ine [precise(y)] r14.y, r14.y, l(0)
  407. and [precise(y)] r14.y, r14.y, r14.z
  408. if_nz r14.y
  409. ushr [precise(y)] r14.y, cb5[r13.x + 341].w, l(16)
  410. ishl [precise(z)] r14.z, r13.x, l(2)
  411. if_nz r14.y
  412. mul [precise(xyz)] r15.xyz, r4.xxxx, cb5[r14.z + 1023].xyzx
  413. mul [precise(xyz)] r16.xyz, r4.yyyy, cb5[r14.z + 1024].xyzx
  414. add [precise(xyz)] r15.xyz, r15.xyzx, r16.xyzx
  415. mul [precise(xyz)] r16.xyz, r4.zzzz, cb5[r14.z + 1025].xyzx
  416. add [precise(xyz)] r15.xyz, r15.xyzx, r16.xyzx
  417. add [precise(xyz)] r15.xyz, r15.xyzx, cb5[r14.z + 1026].xyzx
  418. mul [precise(xyz)] r16.xyz, r5.xxxx, cb5[r14.z + 1023].xyzx
  419. mul [precise(xyz)] r17.xyz, r5.yyyy, cb5[r14.z + 1024].xyzx
  420. add [precise(xyz)] r16.xyz, r16.xyzx, r17.xyzx
  421. mul [precise(xyz)] r17.xyz, r5.zzzz, cb5[r14.z + 1025].xyzx
  422. add [precise(xyz)] r16.xyz, r16.xyzx, r17.xyzx
  423. rcp [precise(xyz)] r16.xyz, r16.xyzx
  424. mul [precise(xyz)] r17.xyz, r15.xyzx, r16.xyzx
  425. add [precise(xyz)] r18.xyz, -r16.xyzx, -r17.xyzx
  426. add [precise(xyz)] r16.xyz, r16.xyzx, -r17.xyzx
  427. max [precise(xyz)] r16.xyz, r16.xyzx, r18.xyzx
  428. min [precise(y)] r14.y, r16.z, r16.y
  429. min [precise(y)] r14.y, r14.y, r16.x
  430. mul [precise(xyz)] r16.xyz, r5.xyzx, r14.yyyy
  431. add [precise(xyz)] r16.xyz, r4.xyzx, r16.xyzx
  432. add [precise(xyz)] r17.xyz, cb5[r13.x + 0].xyzx, cb5[r13.x + 682].xyzx
  433. add [precise(xyz)] r16.xyz, r16.xyzx, -r17.xyzx
  434. f16tof32 [precise(xyz)] r17.xyz, cb5[r13.x + 2728].xyzx
  435. ushr [precise(xyz)] r18.xyz, cb5[r13.x + 2728].xyzx, l(16, 16, 16, 0)
  436. f16tof32 [precise(xyz)] r18.xyz, r18.xyzx
  437. mul [precise(xyz)] r17.xyz, r17.xyzx, cb5[r13.x + 2387].xyzx
  438. mul [precise(xyz)] r18.xyz, r18.xyzx, cb5[r13.x + 2387].xyzx
  439. mul [precise(xyz)] r15.xyz, r15.xyzx, cb5[r13.x + 2387].xyzx
  440. add [precise(xyz)] r19.xyz, r17.xyzx, -cb5[r13.x + 2387].xyzx
  441. add [precise(xyz)] r20.xyz, -r18.xyzx, cb5[r13.x + 2387].xyzx
  442. add [precise(xyz)] r19.xyz, -r15.xyzx, r19.xyzx
  443. div_sat [precise(xyz)] r17.xyz, r19.xyzx, r17.xyzx
  444. add [precise(xyz)] r15.xyz, r15.xyzx, -r20.xyzx
  445. div_sat [precise(xyz)] r15.xyz, r15.xyzx, r18.xyzx
  446. max [precise(xyz)] r15.xyz, r15.xyzx, r17.xyzx
  447. add [precise(xyz)] r15.xyz, -r15.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  448. mul [precise(y)] r14.y, r15.y, r15.x
  449. mul [precise(y)] r14.y, r15.z, r14.y
  450. add [precise(y)] r14.y, -r14.y, l(1.000000)
  451. mul [precise(y)] r14.y, r14.y, l(1.42857146)
  452. min [precise(y)] r14.y, r14.y, l(1.000000)
  453. mul [precise(w)] r14.w, r14.y, l(-2.000000)
  454. add [precise(w)] r14.w, r14.w, l(3.000000)
  455. mul [precise(y)] r14.y, r14.y, r14.y
  456. mul [precise(y)] r14.y, r14.y, r14.w
  457. add [precise(w)] r16.w, -r14.y, l(1.000000)
  458. else
  459. div_sat [precise(x)] r14.x, r14.x, cb5[r13.x + 0].w
  460. mul [precise(xyz)] r15.xyz, r5.xxxx, cb5[r14.z + 1023].xyzx
  461. mul [precise(xyz)] r17.xyz, r5.yyyy, cb5[r14.z + 1024].xyzx
  462. add [precise(xyz)] r15.xyz, r15.xyzx, r17.xyzx
  463. mul [precise(xyz)] r17.xyz, r5.zzzz, cb5[r14.z + 1025].xyzx
  464. add [precise(yzw)] r10.yzw, r15.xxyz, r17.xxyz
  465. mul [precise(y)] r14.y, cb5[r13.x + 0].w, cb5[r13.x + 0].w
  466. mul [precise(xyz)] r15.xyz, r13.yyyy, cb5[r14.z + 1023].xyzx
  467. mul [precise(xyz)] r17.xyz, r13.zzzz, cb5[r14.z + 1024].xyzx
  468. add [precise(xyz)] r15.xyz, r15.xyzx, r17.xyzx
  469. mul [precise(yzw)] r13.yzw, r13.wwww, cb5[r14.z + 1025].xxyz
  470. add [precise(yzw)] r13.yzw, r13.yyzw, r15.xxyz
  471. dp3 [precise(z)] r14.z, r13.yzwy, r13.yzwy
  472. dp3 [precise(w)] r14.w, r10.yzwy, r13.yzwy
  473. add [precise(y)] r14.y, -r14.y, r14.z
  474. mul [precise(z)] r14.z, r14.w, r14.w
  475. add [precise(y)] r14.y, -r14.y, r14.z
  476. ge [precise(z)] r14.z, r14.y, l(0.000000)
  477. sqrt [precise(y)] r14.y, r14.y
  478. add [precise(y)] r14.y, -r14.w, r14.y
  479. mul [precise(xyz)] r15.xyz, r10.yzwy, r14.yyyy
  480. add [precise(yzw)] r13.yzw, r13.yyzw, r15.xxyz
  481. add [precise(yzw)] r15.yzw, r13.yyzw, -cb5[r13.x + 682].xxyz
  482. mul [precise(y)] r13.y, r14.x, l(2.500000)
  483. add [precise(y)] r13.y, r13.y, l(-1.500000)
  484. max [precise(y)] r13.y, r13.y, l(0.000000)
  485. mul [precise(z)] r13.z, r13.y, r13.y
  486. mul [precise(y)] r13.y, r13.y, l(2.000000)
  487. add [precise(y)] r13.y, -r13.y, l(3.000000)
  488. mul [precise(y)] r13.y, r13.y, r13.z
  489. add [precise(x)] r15.x, -r13.y, l(1.000000)
  490. movc [precise] r16.xyzw, r14.zzzz, r15.yzwx, r10.yzwx
  491. endif
  492. mul [precise(y)] r10.y, r16.w, cb5[r13.x + 341].z
  493. mov [precise(w)] r16.w, cb5[r13.x + 341].y
  494. sample_l_indexable [precise](texturecubearray)(float,float,float,float) r14.xyzw, r16.xyzw, t3.xyzw, s3, r6.w
  495. add [precise(yzw)] r13.yzw, r14.xxyz, l(0.000000, -1.000000, -1.000000, -1.000000)
  496. div [precise(yzw)] r13.yzw, -r14.xxyz, r13.yyzw
  497. mul [precise(z)] r10.z, cb5[r13.x + 341].x, cb5[r13.x + 682].w
  498. mul [precise(xyz)] r14.xyz, r10.zzzz, r13.yzwy
  499. mul [precise] r14.xyzw, r10.yyyy, r14.xyzw
  500. mul [precise(yzw)] r13.yzw, r7.wwww, r14.xxyz
  501. add [precise(xyz)] r12.xyz, r12.xyzx, r13.yzwy
  502. add [precise(z)] r10.z, -r14.w, l(1.000000)
  503. mul [precise(w)] r7.w, r7.w, r10.z
  504. mul [precise(z)] r10.z, r10.y, cb5[r13.x + 682].w
  505. mul [precise(z)] r10.z, r9.w, r10.z
  506. add [precise(w)] r8.w, r8.w, r10.z
  507. add [precise(y)] r10.y, -r10.y, l(1.000000)
  508. mul [precise(w)] r9.w, r9.w, r10.y
  509. endif
  510. iadd [precise(w)] r12.w, r12.w, l(1)
  511. endloop
  512. mul r10.xyz, r12.xyzx, cb1[147].xyzx
  513. dp3 r1.x, cb1[147].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  514. mul r10.w, r1.x, r8.w
  515. lt [precise(x)] r1.x, l(0.000000), cb3[80].y
  516. if_nz r1.x
  517. add [precise(x)] r1.x, cb3[80].x, l(-1.000000)
  518. add [precise(x)] r1.x, -r3.w, r1.x
  519. sample_l_indexable [precise(xyz)](texturecube)(float,float,float,float) r12.xyz, r5.xyzx, t2.xyzw, s2, r1.x
  520. dp3 r1.x, cb1[157].xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  521. mul r1.x, r1.x, cb3[81].x
  522. mul [precise(xyz)] r12.xyz, r12.xyzx, cb1[157].xyzx
  523. lt [precise(w)] r1.w, cb3[80].z, l(1.000000)
  524. mad r13.xyz, r7.wwww, r12.xyzx, r10.xyzx
  525. mad r13.w, r1.x, r9.w, r10.w
  526. movc [precise(xyz)] r12.xyz, r1.wwww, l(0,0,0,0), r12.xyzx
  527. movc r10.xyzw, r1.wwww, r13.xyzw, r10.xyzw
  528. else
  529. mov r12.xyz, l(0,0,0,0)
  530. endif
  531. mad_sat r1.x, r0.w, cb1[167].x, cb1[167].y
  532. mad r1.w, r1.x, l(-2.000000), l(3.000000)
  533. mul r1.x, r1.x, r1.x
  534. mul r1.x, r1.x, r1.w
  535. max r1.w, r10.w, l(0.000100)
  536. div r1.w, r1.z, r1.w
  537. min r1.w, r1.w, cb1[167].z
  538. add r1.w, r1.w, l(-1.000000)
  539. mad r1.x, r1.x, r1.w, l(1.000000)
  540. mul r12.xyz, r7.wwww, r12.xyzx
  541. mad r10.xyz, r10.xyzx, r1.xxxx, r12.xyzx
  542. mul r12.xyzw, r2.yxyw, l(50.000000, 0.450000, 0.450000, 0.450000)
  543. mad r1.xzw, r12.yyzw, r1.zzzz, -r10.xxyz
  544. mad r1.xzw, cb1[154].wwww, r1.xxzw, r10.xxyz
  545. lt [precise(w)] r3.w, l(0.000000), cb1[146].y
  546. eq [precise(w)] r6.w, cb1[135].y, l(0.000000)
  547. and [precise(w)] r3.w, r3.w, r6.w
  548. if_nz r3.w
  549. utof [precise(w)] r3.w, cb1[135].x
  550. mul [precise(xy)] r10.xy, r3.wwww, l(32.665001, 11.815000, 0.000000, 0.000000)
  551. add [precise(xy)] r10.xy, r10.xyxx, v5.xyxx
  552. dp2 [precise(w)] r3.w, r10.xyxx, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
  553. frc [precise(w)] r3.w, r3.w
  554. mul [precise(w)] r3.w, r3.w, l(52.982918)
  555. frc [precise(w)] r3.w, r3.w
  556. add [precise(w)] r3.w, r3.w, l(-0.500000)
  557.  
  558. //Screen space reflections fix.
  559. mul [precise] r10.xyzw, r27.xxxx, cb1[8].xyzw
  560. mul [precise] r13.xyzw, r27.yyyy, cb1[9].xyzw
  561. add [precise] r10.xyzw, r10.xyzw, r13.xyzw
  562. mul [precise] r13.xyzw, r27.zzzz, cb1[10].xyzw
  563. add [precise] r10.xyzw, r10.xyzw, r13.xyzw
  564. add [precise] r10.xyzw, r10.xyzw, cb1[11].xyzw
  565. mul [precise(xyz)] r3.xyz, r2.zzzz, r5.xyzx
  566. mul [precise] r13.xyzw, r3.xxxx, cb1[8].xyzw
  567. mul [precise] r14.xyzw, r3.yyyy, cb1[9].xyzw
  568. add [precise] r13.xyzw, r13.xyzw, r14.xyzw
  569. mul [precise] r14.xyzw, r3.zzzz, cb1[10].xyzw
  570. add [precise] r13.xyzw, r13.xyzw, r14.xyzw
  571. mul [precise] r14.xyzw, cb1[11].xyzw, l(0.000000, 0.000000, 0.000000, 0.000000)
  572. add [precise] r13.xyzw, r13.xyzw, r14.xyzw
  573. add [precise] r13.xyzw, r10.xyzw, r13.xyzw
  574. mul [precise] r14.xyzw, r10.xxxx, cb1[24].xyzw
  575. mul [precise] r15.xyzw, r10.yyyy, cb1[25].xyzw
  576. add [precise] r14.xyzw, r14.xyzw, r15.xyzw
  577. mul [precise] r15.xyzw, r10.zzzz, cb1[26].xyzw
  578. add [precise] r14.xyzw, r14.xyzw, r15.xyzw
  579. mul [precise] r10.xyzw, r10.wwww, cb1[27].xyzw
  580. add [precise] r10.xyzw, r10.xyzw, r14.xyzw
  581. mul [precise] r14.xyzw, r13.xxxx, cb1[24].xyzw
  582. mul [precise] r15.xyzw, r13.yyyy, cb1[25].xyzw
  583. add [precise] r14.xyzw, r14.xyzw, r15.xyzw
  584. mul [precise] r15.xyzw, r13.zzzz, cb1[26].xyzw
  585. add [precise] r14.xyzw, r14.xyzw, r15.xyzw
  586. mul [precise] r13.xyzw, r13.wwww, cb1[27].xyzw
  587. add [precise] r13.xyzw, r13.xyzw, r14.xyzw
  588.  
  589. //Screen space reflections.
  590. mad r10.x, r24.x, r10.w, r10.x
  591. mad r13.x, r24.x, r13.w, r13.x
  592.  
  593. div [precise(xyz)] r3.xyz, r10.xyzx, r10.wwww
  594. div [precise(xyz)] r5.xyz, r13.xyzx, r13.wwww
  595. mul [precise(xy)] r10.xy, cb1[24].zwzz, l(0.000000, 0.000000, 0.000000, 0.000000)
  596. mul [precise(yz)] r12.yz, cb1[25].zzwz, l(0.000000, 0.000000, 0.000000, 0.000000)
  597. add [precise(xy)] r10.xy, r10.xyxx, r12.yzyy
  598. mul [precise(yz)] r12.yz, r2.zzzz, cb1[26].zzwz
  599. add [precise(xy)] r10.xy, r10.xyxx, r12.yzyy
  600. mul [precise(yz)] r12.yz, cb1[27].zzwz, l(0.000000, 0.000000, 0.000000, 0.000000)
  601. add [precise(xy)] r10.xy, r10.xyxx, r12.yzyy
  602. add [precise(xy)] r10.xy, r10.xyxx, r10.zwzz
  603. div [precise(z)] r2.z, r10.x, r10.y
  604. add [precise(xyz)] r5.xyz, -r3.xyzx, r5.xyzx
  605. dp2 [precise(w)] r6.w, r5.xyxx, r5.xyxx
  606. sqrt [precise(w)] r6.w, r6.w
  607. mul [precise(w)] r6.w, r6.w, l(0.500000)
  608. mul [precise(xy)] r10.xy, r3.xyxx, r6.wwww
  609. add [precise(xy)] r10.xy, r5.xyxx, r10.xyxx
  610. add [precise(xy)] r10.xy, -r6.wwww, |r10.xyxx|
  611. max [precise(xy)] r10.xy, r10.xyxx, l(0.000000, 0.000000, 0.000000, 0.000000)
  612. add [precise(xy)] r10.xy, |r5.xyxx|, -r10.xyxx
  613. div [precise(xy)] r10.xy, r10.xyxx, |r5.xyxx|
  614. min [precise(w)] r7.w, r10.y, r10.x
  615. div [precise(w)] r6.w, r7.w, r6.w
  616. mul [precise(xyz)] r5.xyz, r5.xyzx, r6.wwww
  617. mul [precise(xy)] r10.xy, r3.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000)
  618. add [precise(xy)] r10.xy, r10.xyxx, l(0.500000, 0.500000, 0.000000, 0.000000)
  619. mul [precise(xy)] r3.xy, r10.xyxx, cb3[113].xyxx
  620. mul [precise(xy)] r10.xy, r5.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000)
  621. mul [precise(xy)] r5.xy, r10.xyxx, cb3[113].xyxx
  622. add [precise(z)] r2.z, -r2.z, r3.z
  623. mul [precise(z)] r2.z, r2.z, l(4.000000)
  624. max [precise(z)] r2.z, r2.z, |r5.z|
  625. mul [precise(z)] r2.z, r2.z, l(0.0833333358)
  626. mul [precise(xyz)] r5.xyz, r5.xyzx, l(0.0833333358, 0.0833333358, 0.0833333358, 0.000000)
  627. mul [precise(xyz)] r10.xyz, r3.wwww, r5.xyzx
  628. add [precise(xyz)] r3.xyz, r3.xyzx, r10.xyzx
  629. mul [precise] r10.xyzw, r5.xyxy, l(1.000000, 1.000000, 2.000000, 2.000000)
  630. mul [precise] r13.xyzw, r5.xyxy, l(3.000000, 3.000000, 4.000000, 4.000000)
  631. mul [precise] r14.xyzw, r5.zzzz, l(1.000000, 2.000000, 3.000000, 4.000000)
  632. mul [precise(yzw)] r12.yzw, r5.xxyz, l(0.000000, 4.000000, 4.000000, 4.000000)
  633. mov [precise(z)] r15.z, l(2.000000)
  634. mov [precise(z)] r16.z, l(3.000000)
  635. mov [precise(z)] r17.z, l(1.000000)
  636. mov [precise(z)] r18.z, l(0)
  637. mov [precise(xyz)] r19.xyz, l(0,0,0,0)
  638. mov [precise(w)] r3.w, l(1.000000)
  639. mov [precise(x)] r18.x, l(0)
  640. mov [precise(xyz)] r20.xyz, r3.xyzx
  641. mov [precise(w)] r6.w, l(0)
  642. loop
  643. ige [precise(w)] r7.w, r6.w, l(12)
  644. breakc_nz r7.w
  645. add [precise] r21.xyzw, r10.xyzw, r20.xyxy
  646. add [precise] r22.xyzw, r13.xyzw, r20.xyxy
  647. add [precise] r23.xyzw, r14.xyzw, r20.zzzz
  648. sample_l_indexable [precise(x)](texture2d)(float,float,float,float) r24.x, r21.xyxx, t6.xyzw, s5, l(1.000000)
  649. sample_l_indexable [precise(y)](texture2d)(float,float,float,float) r24.y, r21.zwzz, t6.yxzw, s5, l(1.000000)
  650. sample_l_indexable [precise(z)](texture2d)(float,float,float,float) r24.z, r22.xyxx, t6.yzxw, s5, l(1.000000)
  651. sample_l_indexable [precise(w)](texture2d)(float,float,float,float) r24.w, r22.zwzz, t6.yzwx, s5, l(1.000000)
  652. add [precise] r21.xyzw, r23.xyzw, -r24.xyzw
  653. add [precise] r22.xyzw, -r2.zzzz, -r21.xyzw
  654. lt [precise] r22.xyzw, |r22.xyzw|, r2.zzzz
  655. or [precise(xy)] r23.xy, r22.zwzz, r22.xyxx
  656. or [precise(w)] r7.w, r23.y, r23.x
  657. if_nz r7.w
  658. mov [precise(xy)] r15.xy, r21.yzyy
  659. mov [precise(xy)] r16.xy, r21.zwzz
  660. movc [precise(xyw)] r15.xyw, r22.zzzz, r15.xyxz, r16.xyxz
  661. mov [precise(xy)] r17.xy, r21.xyxx
  662. movc [precise(xyw)] r15.xyw, r22.yyyy, r17.xyxz, r15.xyxw
  663. mov [precise(y)] r18.y, r17.x
  664. movc [precise(xyw)] r15.xyw, r22.xxxx, r18.xyxz, r15.xyxw
  665. add [precise(w)] r7.w, -r15.y, r15.x
  666. div_sat [precise(w)] r7.w, r15.x, r7.w
  667. add [precise(w)] r7.w, r7.w, r15.w
  668. mul [precise(xyw)] r15.xyw, r5.xyxz, r7.wwww
  669. add [precise(xyz)] r19.xyz, r15.xywx, r20.xyzx
  670. mov [precise(w)] r3.w, l(0.500000)
  671. break
  672. endif
  673. add [precise(xyz)] r20.xyz, r12.yzwy, r20.xyzx
  674. mov [precise(x)] r18.x, r21.w
  675. iadd [precise(w)] r6.w, r6.w, l(4)
  676. mov [precise(xyz)] r19.xyz, l(0,0,0,0)
  677. mov [precise(w)] r3.w, l(1.000000)
  678. endloop
  679. lt [precise(z)] r2.z, r3.w, l(1.000000)
  680. if_nz r2.z
  681. mul [precise(xy)] r3.xy, r19.xyxx, cb3[113].zwzz
  682. mul [precise(xy)] r3.xy, r3.xyxx, l(2.000000, -2.000000, 0.000000, 0.000000)
  683. add [precise(xy)] r3.xy, r3.xyxx, l(-1.000000, 1.000000, 0.000000, 0.000000)
  684. mul [precise(xy)] r3.xy, r3.xyxx, cb1[58].xyxx
  685. add [precise(xy)] r3.xy, r3.xyxx, cb1[58].wzww
  686. add [precise(xy)] r3.xy, r3.xyxx, -cb1[58].wzww
  687. div [precise(xy)] r3.xy, r3.xyxx, cb1[58].xyxx
  688. mul [precise(xyz)] r5.xyz, r3.xxxx, cb1[114].xywx
  689. mul [precise(xyz)] r10.xyz, r3.yyyy, cb1[115].xywx
  690. add [precise(xyz)] r5.xyz, r5.xyzx, r10.xyzx
  691. mul [precise(xyz)] r10.xyz, r19.zzzz, cb1[116].xywx
  692. add [precise(xyz)] r5.xyz, r5.xyzx, r10.xyzx
  693. add [precise(xyz)] r5.xyz, r5.xyzx, cb1[117].xywx
  694. div [precise(zw)] r3.zw, r5.xxxy, r5.zzzz
  695. mad r5.xy, r3.zwzz, cb3[114].xyxx, cb3[114].zwzz
  696. mul [precise(xy)] r3.xy, |r3.xyxx|, l(5.000000, 5.000000, 0.000000, 0.000000)
  697. add_sat [precise(xy)] r3.xy, r3.xyxx, l(-4.000000, -4.000000, 0.000000, 0.000000)
  698. dp2 [precise(z)] r2.z, r3.xyxx, r3.xyxx
  699. add [precise(z)] r2.z, -r2.z, l(1.000000)
  700. max [precise(z)] r2.z, r2.z, l(0.000000)
  701. mul [precise(xy)] r3.xy, |r3.zwzz|, l(5.000000, 5.000000, 0.000000, 0.000000)
  702. add_sat [precise(xy)] r3.xy, r3.xyxx, l(-4.000000, -4.000000, 0.000000, 0.000000)
  703. dp2 [precise(x)] r3.x, r3.xyxx, r3.xyxx
  704. add [precise(x)] r3.x, -r3.x, l(1.000000)
  705. max [precise(x)] r3.x, r3.x, l(0.000000)
  706. min r2.z, r2.z, r3.x
  707. mul r3.xy, r5.xyxx, cb3[116].xyxx
  708. sample_l_indexable(texture2d)(float,float,float,float) r3.x, r3.xyxx, t12.xyzw, s7, l(0.000000)
  709. lt r3.x, l(0.000000), r3.x
  710. if_nz r3.x
  711. sample_l_indexable(texture2d)(float,float,float,float) r3.xyz, r5.xyxx, t7.xyzw, s6, l(0.000000)
  712. min r3.xyz, -r3.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  713. mad_sat r3.w, l(-6.600000), r0.w, l(2.000000)
  714. mul r2.z, r2.z, r3.w
  715. mov r3.w, l(1.000000)
  716. mul r3.xyz, r2.zzzz, -r3.xyzx
  717. mul r3.xyz, r3.xyzx, cb3[117].xxxx
  718. mad r2.z, -r3.w, r2.z, l(1.000000)
  719. mad r1.xzw, r1.xxzw, r2.zzzz, r3.xxyz
  720. endif
  721. endif
  722. endif
  723. mad r3.xyzw, r0.wwww, l(-1.000000, -0.027500, -0.572000, 0.022000), l(1.000000, 0.042500, 1.040000, -0.040000)
  724. mul r2.z, r3.x, r3.x
  725. mul r1.y, r1.y, l(-9.280000)
  726. exp r1.y, r1.y
  727. min r1.y, r1.y, r2.z
  728. mad r1.y, r1.y, r3.x, r3.y
  729. mad r3.xy, r1.yyyy, l(-1.040000, 1.040000, 0.000000, 0.000000), r3.zwzz
  730. mov_sat r12.x, r12.x
  731. mul r1.y, r3.y, r12.x
  732. mad r3.xyz, r2.xywx, r3.xxxx, r1.yyyy
  733. dp3 r1.y, cb0[9].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  734. lt r1.y, l(0.000100), |r1.y|
  735. if_nz r1.y
  736. mov r4.w, l(-1.000000)
  737. dp4 r1.y, cb0[9].xyzw, r4.xyzw
  738. mad_sat r1.y, |r1.y|, cb0[16].x, cb0[16].y
  739. add r1.y, -r1.y, l(1.000000)
  740. add r5.xyz, r34.xyzx, -cb0[10].xyzx
  741. dp3 r2.z, r5.xyzx, cb0[11].xyzx
  742. add r2.z, -|r2.z|, cb0[11].w
  743. mul_sat r2.z, r2.z, cb0[16].x
  744. dp3 r3.w, r5.xyzx, cb0[12].xyzx
  745. add r3.w, -|r3.w|, cb0[12].w
  746. mul_sat r3.w, r3.w, cb0[16].x
  747. mul r2.z, r2.z, r3.w
  748. mul r1.y, r1.y, r2.z
  749. lt r2.z, l(0.000000), r1.y
  750. if_nz r2.z
  751. rsq r2.z, r5.w
  752. mul r5.xyz, r2.zzzz, r9.xyzx
  753. dp3 r2.z, r5.xyzx, -cb0[9].xyzx
  754. add r2.z, r2.z, r2.z
  755. mad r5.xyz, cb0[9].xyzx, r2.zzzz, r5.xyzx
  756. mul r9.xyz, r8.xxxx, cb0[14].xyzx
  757. mad r9.xyz, r8.zzzz, cb0[13].xyzx, r9.xyzx
  758. mad r9.xyz, r8.yyyy, cb0[15].xyzx, r9.xyzx
  759. dp3 r2.z, r5.xyzx, r9.xyzx
  760. add r2.z, r2.z, r2.z
  761. mad r5.xyz, r9.xyzx, -r2.zzzz, r5.xyzx
  762. mad r5.xyz, r5.xyzx, cb0[16].zzzz, r34.xyzx
  763. add r5.xyz, r5.xyzx, cb1[62].xyzx
  764. mul r9.xyz, r5.yyyy, cb1[9].xyzx
  765. mad r5.xyw, r5.xxxx, cb1[8].xyxz, r9.xyxz
  766. mad r5.xyz, r5.zzzz, cb1[10].xyzx, r5.xywx
  767. add r5.xyz, r5.xyzx, cb1[11].xyzx
  768. ishl r2.z, cb1[167].w, l(2)
  769. mul r9.xyz, r5.yyyy, cb0[r2.z + 19].xywx
  770. mad r5.xyw, r5.xxxx, cb0[r2.z + 18].xyxw, r9.xyxz
  771. mad r5.xyz, r5.zzzz, cb0[r2.z + 20].xywx, r5.xywx
  772. add r5.xyz, r5.xyzx, cb0[r2.z + 21].xywx
  773. movc r2.z, cb0[28].z, cb1[167].w, l(0)
  774. div r5.xy, r5.xyxx, r5.zzzz
  775. max r5.xy, r5.xyxx, -cb0[28].xyxx
  776. min r5.xy, r5.xyxx, cb0[28].xyxx
  777. mad r5.xy, r5.xyxx, cb0[r2.z + 26].xyxx, cb0[r2.z + 26].zwzz
  778. dp3 r2.z, cb0[9].yzxy, r8.xyzx
  779. mad_sat r2.z, r2.z, cb0[17].x, cb0[17].y
  780. add r0.w, r0.w, l(-0.200000)
  781. mul_sat r0.w, r0.w, l(10.000000)
  782. add r0.w, -r0.w, l(1.000000)
  783. mul r1.y, r1.y, r2.z
  784. mul r0.w, r0.w, r1.y
  785. sample_l_indexable(texture2d)(float,float,float,float) r5.xyzw, r5.xyxx, t23.xyzw, s3, l(0.000000)
  786. mul r0.w, r0.w, r5.w
  787. mul r5.xyz, r0.wwww, r5.xyzx
  788. else
  789. mov r5.xyz, l(0,0,0,0)
  790. mov r0.w, l(0)
  791. endif
  792. add r0.w, -r0.w, l(1.000000)
  793. mad r1.xzw, r0.wwww, r1.xxzw, r5.xxyz
  794. endif
  795. mul r1.xyz, r3.xyzx, r1.xzwx
  796. mad r3.xyz, r2.xywx, l(2.040400, 2.040400, 2.040400, 0.000000), l(-0.332400, -0.332400, -0.332400, 0.000000)
  797. mad r3.xyz, r2.xywx, l(-4.795100, -4.795100, -4.795100, 0.000000), r3.xyzx
  798. mad r3.xyz, r2.xywx, l(2.755200, 2.755200, 2.755200, 0.000000), r3.xyzx
  799. add r3.xyz, r3.xyzx, l(1.332000, 1.332000, 1.332000, 0.000000)
  800. max r3.xyz, r3.xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  801. lt r0.w, l(0.000000), cb3[91].w
  802. if_nz r0.w
  803. mul r5.xyz, r4.yyyy, cb1[5].xywx
  804. mad r5.xyz, r4.xxxx, cb1[4].xywx, r5.xyzx
  805. mad r5.xyz, r4.zzzz, cb1[6].xywx, r5.xyzx
  806. add r5.xyz, r5.xyzx, cb1[7].xywx
  807. div r5.xy, r5.xyxx, r5.zzzz
  808. mad r9.xy, r5.xyxx, l(0.500000, -0.500000, 0.000000, 0.000000), l(0.500000, 0.500000, 0.000000, 0.000000)
  809. mad r0.w, r5.z, cb1[178].x, cb1[178].y
  810. log r0.w, r0.w
  811. mul r0.w, r0.w, cb1[178].z
  812. mul r9.z, r0.w, cb1[177].z
  813. sample_l_indexable(texture3d)(float,float,float,float) r5.xyzw, r9.xyzx, t4.xyzw, s1, l(0.000000)
  814. mul r9.x, r5.w, v3.w
  815. mad r5.xyz, v3.xyzx, r5.wwww, r5.xyzx
  816. else
  817. mov r5.xyz, v3.xyzx
  818. mov r9.x, v3.w
  819. endif
  820. resinfo_indexable [precise(w)](texture3d)(float,float,float,float)_uint r0.w, l(0), t9.yzwx
  821. uge [precise(w)] r0.w, l(1), r0.w
  822. mul r9.yzw, r4.yyyy, cb1[5].xxyw
  823. mad r9.yzw, r4.xxxx, cb1[4].xxyw, r9.yyzw
  824. mad r9.yzw, r4.zzzz, cb1[6].xxyw, r9.yyzw
  825. add r9.yzw, r9.yyzw, cb1[7].xxyw
  826. div r9.yz, r9.yyzy, r9.wwww
  827. mad r9.yz, r9.yyzy, l(0.000000, 0.500000, -0.500000, 0.000000), l(0.000000, 0.500000, 0.500000, 0.000000)
  828. mad r1.w, r9.w, cb1[178].x, cb1[178].y
  829. log r1.w, r1.w
  830. mul r1.w, r1.w, cb1[178].z
  831. mul r10.z, r1.w, cb1[177].z
  832. mad r9.yz, r9.yyzy, cb1[122].xxyx, -cb1[121].xxyx
  833. mul r10.xy, r9.yzyy, cb1[179].xyxx
  834. add [precise(yzw)] r9.yzw, r4.xxyz, -cb1[138].xxyz
  835. mul [precise(yzw)] r9.yzw, r9.yyzw, cb1[140].xxyz
  836. add [precise(xyz)] r12.xyz, r4.xyzx, -cb1[139].xyzx
  837. mul [precise(xyz)] r12.xyz, r12.xyzx, cb1[141].xyzx
  838. add [precise(xyz)] r13.xyz, r9.yzwy, l(-0.500000, -0.500000, -0.500000, 0.000000)
  839. add [precise(xyz)] r13.xyz, -|r13.xyzx|, l(0.500000, 0.500000, 0.500000, 0.000000)
  840. mul_sat [precise(xyz)] r13.xyz, r13.xyzx, l(6.000000, 6.000000, 6.000000, 0.000000)
  841. mul [precise(w)] r1.w, r13.y, r13.x
  842. mul [precise(w)] r12.w, r13.z, r1.w
  843. movc r9.yzw, r0.wwww, r10.xxyz, r9.yyzw
  844. movc [precise] r10.xyzw, r0.wwww, l(0,0,0,1.000000), r12.xyzw
  845. sample_l_indexable(texture3d)(float,float,float,float) r12.xyz, r9.yzwy, t8.xyzw, s1, l(0.000000)
  846. sample_l_indexable(texture3d)(float,float,float,float) r13.xyz, r10.xyzx, t9.xyzw, s1, l(0.000000)
  847. add r12.xyz, r12.xyzx, -r13.xyzx
  848. mad r12.xyz, r10.wwww, r12.xyzx, r13.xyzx
  849. sample_l_indexable(texture3d)(float,float,float,float) r9.yzw, r9.yzwy, t10.wxyz, s1, l(0.000000)
  850. sample_l_indexable(texture3d)(float,float,float,float) r10.xyz, r10.xyzx, t11.xyzw, s1, l(0.000000)
  851. add r9.yzw, r9.yyzw, -r10.xxyz
  852. mad r9.yzw, r10.wwww, r9.yyzw, r10.xxyz
  853. dp3 r0.w, r12.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
  854. add r0.w, r0.w, l(0.000010)
  855. div r10.xyz, r12.xyzx, r0.wwww
  856. mul r13.yzw, r9.yyzw, r10.xxxx
  857. mul r14.yzw, r9.yyzw, r10.yyyy
  858. mul r10.yzw, r9.yyzw, r10.zzzz
  859. mul r8.yzw, r8.xxyz, l(0.000000, -1.02332771, 1.02332771, -1.02332771)
  860. mov r13.x, r12.x
  861. mov r8.x, l(0.886227548)
  862. dp4 r13.x, r13.xyzw, r8.xyzw
  863. mov r14.x, r12.y
  864. dp4 r13.y, r14.xyzw, r8.xyzw
  865. mov r10.x, r12.z
  866. dp4 r13.z, r10.xyzw, r8.xyzw
  867. max r8.xyz, r13.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  868. mul r8.xyz, r6.xyzx, r8.xyzx
  869. mad r1.xyz, r1.xyzx, r3.xyzx, r8.xyzx
  870. mad r2.xyz, r2.xywx, l(0.450000, 0.450000, 0.450000, 0.000000), r6.xyzx
  871. add r2.xyz, -r1.xyzx, r2.xyzx
  872. mad r1.xyz, cb1[135].zzzz, r2.xyzx, r1.xyzx
  873. max [precise(xyz)] r2.xyz, cb6[2].xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
  874. mul [precise(xyz)] r11.xyz, r2.xyzx, l(250.000000, 250.000000, 250.000000, 0.000000)
  875. lt [precise(w)] r0.w, l(0.000000), cb1[131].z
  876. if_nz r0.w
  877. add [precise(xyz)] r2.xyz, r4.xyzx, -cb2[5].xyzx
  878. add [precise(xyz)] r3.xyz, cb2[13].xyzx, l(1.000000, 1.000000, 1.000000, 0.000000)
  879. lt [precise(xyz)] r2.xyz, r3.xyzx, |r2.xyzx|
  880. or [precise(w)] r0.w, r2.y, r2.x
  881. or [precise(w)] r0.w, r2.z, r0.w
  882. dp3 [precise(w)] r1.w, r4.xyzx, l(0.577000, 0.577000, 0.577000, 0.000000)
  883. mul [precise(w)] r1.w, r1.w, l(0.002000)
  884. frc [precise(w)] r1.w, r1.w
  885. lt [precise(w)] r1.w, l(0.500000), r1.w
  886. movc [precise(yzw)] r2.yzw, r1.wwww, l(0,0,1.000000,1.000000), l(0,1.000000,1.000000,0)
  887. mov [precise(x)] r2.x, l(1.000000)
  888. movc [precise] r11.xyzw, r0.wwww, r2.yzwx, r11.xyzw
  889. mov [precise(w)] o0.w, r11.w
  890. else
  891. mov [precise(w)] o0.w, r11.w
  892. endif
  893. mad r0.xyz, r0.xyzx, r7.xyzx, r1.xyzx
  894. add r0.xyz, r11.xyzx, r0.xyzx
  895. mad r0.xyz, r0.xyzx, r9.xxxx, r5.xyzx
  896. mul o0.xyz, r0.xyzx, cb1[125].yyyy
  897. ret
  898. // Approximately 0 instruction slots used
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement