Advertisement
illwieckz

crash radeonsi 24.1.1 (git-6c377358a5)

Jul 17th, 2024
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 244.39 KB | None | 0 0
  1. Invalidating shader binary cache
  2. ][New Thread 0x7970be0006c0 (LWP 758952)]
  3. [New Thread 0x7970ada006c0 (LWP 758953)]
  4. NIR validation failed after nir_inline_functions in ../src/compiler/glsl/gl_nir_linker.c
  5. 2 errors:
  6. shader: MESA_SHADER_FRAGMENT
  7. source_sha1: {0x179b96c4, 0x44f7b871, 0xc2aaa8fb, 0xf1b6d10e, 0x1535f3d3}
  8. name: GLSL119
  9. internal: false
  10. stage: 4
  11. next_stage: 0
  12. subgroup_size: 1
  13. bit_sizes_float: 0x20
  14. bit_sizes_int: 0x61
  15. uses_discard: true
  16. needs_quad_helper_invocations: true
  17. inputs: 0
  18. outputs: 0
  19. uniforms: 0
  20. decl_var system INTERP_MODE_NONE none vec4 gl_FragCoord (SYSTEM_VALUE_FRAG_COORD)
  21. decl_var uniform INTERP_MODE_NONE none vec3 u_ViewOrigin (~0, 0, 0)
  22. decl_var uniform INTERP_MODE_NONE none mat4 u_ModelMatrix (~0, 0, 0)
  23. decl_var uniform INTERP_MODE_NONE none mat4 u_ModelViewProjectionMatrix (~0, 0, 0)
  24. decl_var uniform INTERP_MODE_NONE none vec3 u_LightGridOrigin (~0, 0, 0)
  25. decl_var uniform INTERP_MODE_NONE none vec3 u_LightGridScale (~0, 0, 0)
  26. decl_var uniform INTERP_MODE_NONE none int u_numLights (~0, 0, 0)
  27. decl_var shader_in INTERP_MODE_NONE none float[] gl_ClipDistance (VARYING_SLOT_CLIP_DIST0.x, 0, 0)
  28. decl_var shader_in INTERP_MODE_NONE none float[] gl_CullDistance (VARYING_SLOT_CULL_DIST0.x, 0, 0)
  29. decl_var shader_in INTERP_MODE_FLAT none int gl_PrimitiveID (VARYING_SLOT_PRIMITIVE_ID.x, 0, 0)
  30. decl_var shader_in INTERP_MODE_FLAT none int gl_Layer (VARYING_SLOT_LAYER.x, 0, 0)
  31. decl_var shader_in INTERP_MODE_FLAT none int gl_ViewportIndex (VARYING_SLOT_VIEWPORT.x, 0, 0)
  32. decl_var shader_in INTERP_MODE_NONE none vec2 gl_PointCoord (VARYING_SLOT_PNTC.xy, 0, 0)
  33. decl_var ubo INTERP_MODE_NONE none light[1024] lights (~0, 0, 0)
  34. decl_var ssbo INTERP_MODE_NONE readonly Material[] materials (~0, 0, 0)
  35. decl_var INTERP_MODE_NONE none int MAX_GLSL_BONES
  36. decl_var INTERP_MODE_NONE none float r_RimExponent
  37. decl_var INTERP_MODE_NONE none int lightsPerLayer
  38. decl_var INTERP_MODE_NONE none int numLayers
  39. decl_function ReadLightGrid (3 params)
  40.  
  41. impl ReadLightGrid {
  42. decl_var INTERP_MODE_NONE none float directedScale
  43. decl_var INTERP_MODE_NONE none float ambientScale
  44. decl_var INTERP_MODE_NONE none float compiler_temp
  45. decl_var INTERP_MODE_NONE none float const_temp
  46. decl_var INTERP_MODE_NONE none float compiler_temp#0
  47. decl_var INTERP_MODE_NONE none float const_temp#1
  48. con block b0: // preds:
  49. 32 %29 = deref_var &const_temp (function_temp float)
  50. 32 %30 = load_const (0x40000000 = 2.000000)
  51. @store_deref (%29, %30 (2.000000)) (wrmask=x, access=none)
  52. 32 %31 = deref_var &const_temp#1 (function_temp float)
  53. 32 %32 = load_const (0x40000000 = 2.000000)
  54. @store_deref (%31, %32 (2.000000)) (wrmask=x, access=none)
  55. 32 %0 = deref_var &ambientScale (function_temp float)
  56. 32 %1 = deref_var &const_temp (function_temp float)
  57. 32 %2 = @load_deref (%1) (access=none)
  58. 32 %3 = @load_param (param_idx=0)
  59. 32 %4 = deref_cast (vec4 *)%3 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  60. 32x4 %5 = @load_deref (%4) (access=none)
  61. 32 %6 = mov %5.w
  62. 32 %7 = fmul %2, %6
  63. @store_deref (%0, %7) (wrmask=x, access=none)
  64. 32 %8 = @load_param (param_idx=1)
  65. 32 %9 = deref_cast (vec3 *)%8 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  66. 32 %10 = deref_var &ambientScale (function_temp float)
  67. 32 %11 = @load_deref (%10) (access=none)
  68. 32 %12 = @load_param (param_idx=0)
  69. 32 %13 = deref_cast (vec4 *)%12 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  70. 32x4 %14 = @load_deref (%13) (access=none)
  71. 32x3 %15 = mov %14.xyz
  72. 32x3 %16 = fmul %11.xxx, %15
  73. @store_deref (%9, %16) (wrmask=xyz, access=none)
  74. 32 %17 = @load_param (param_idx=2)
  75. 32 %18 = deref_cast (vec3 *)%17 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  76. 32 %19 = deref_var &const_temp#1 (function_temp float)
  77. 32 %20 = @load_deref (%19) (access=none)
  78. 32 %21 = deref_var &ambientScale (function_temp float)
  79. 32 %22 = @load_deref (%21) (access=none)
  80. 32 %23 = fsub %20, %22
  81. 32 %24 = @load_param (param_idx=0)
  82. 32 %25 = deref_cast (vec4 *)%24 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  83. 32x4 %26 = @load_deref (%25) (access=none)
  84. 32x3 %27 = mov %26.xyz
  85. 32x3 %28 = fmul %23.xxx, %27
  86. @store_deref (%18, %28) (wrmask=xyz, access=none)
  87. // succs: b1
  88. block b1:
  89. }
  90.  
  91. decl_function computeLight (3 params)
  92.  
  93. impl computeLight {
  94. con block b0: // preds:
  95. 32 %0 = @load_param (param_idx=2)
  96. 32 %1 = deref_cast (vec4 *)%0 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  97. 32 %2 = @load_param (param_idx=2)
  98. 32 %3 = deref_cast (vec4 *)%2 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  99. 32x4 %4 = @load_deref (%3) (access=none)
  100. 32x3 %5 = mov %4.xyz
  101. 32 %6 = @load_param (param_idx=0)
  102. 32 %7 = deref_cast (vec3 *)%6 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  103. 32x3 %8 = @load_deref (%7) (access=none)
  104. 32 %9 = @load_param (param_idx=1)
  105. 32 %10 = deref_cast (vec4 *)%9 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  106. 32x4 %11 = @load_deref (%10) (access=none)
  107. 32x3 %12 = mov %11.xyz
  108. 32x3 %13 = fmul %8, %12
  109. 32x3 %14 = fadd %5, %13
  110. 32x4 %15 = mov %14.xyzx
  111. 32x3 %16 = mov %15.xyz
  112. 32x4 %17 = mov %16.xyzx
  113. @store_deref (%1, %17) (wrmask=xyz, access=none)
  114. // succs: b1
  115. block b1:
  116. }
  117.  
  118. decl_function computeDeluxeLight (7 params)
  119.  
  120. impl computeDeluxeLight {
  121. decl_var INTERP_MODE_NONE none float NdotL
  122. decl_var INTERP_MODE_NONE none float NdotH
  123. decl_var INTERP_MODE_NONE none vec3 H
  124. decl_var INTERP_MODE_NONE none vec3 compiler_temp#2
  125. decl_var INTERP_MODE_NONE none vec3 compiler_temp#3
  126. decl_var INTERP_MODE_NONE none float compiler_temp#4
  127. decl_var INTERP_MODE_NONE none float compiler_temp#5
  128. decl_var INTERP_MODE_NONE none float compiler_temp#6
  129. decl_var INTERP_MODE_NONE none float compiler_temp#7
  130. decl_var INTERP_MODE_NONE none float compiler_temp#8
  131. decl_var INTERP_MODE_NONE none float const_temp#9
  132. decl_var INTERP_MODE_NONE none float const_temp#10
  133. decl_var INTERP_MODE_NONE none float compiler_temp#11
  134. decl_var INTERP_MODE_NONE none float compiler_temp#12
  135. decl_var INTERP_MODE_NONE none float const_temp#13
  136. con block b0: // preds:
  137. 32 %120 = deref_var &const_temp#9 (function_temp float)
  138. 32 %121 = load_const (0x3f000000 = 0.500000)
  139. @store_deref (%120, %121 (0.500000)) (wrmask=x, access=none)
  140. 32 %122 = deref_var &const_temp#10 (function_temp float)
  141. 32 %123 = load_const (0x3f000000 = 0.500000)
  142. @store_deref (%122, %123 (0.500000)) (wrmask=x, access=none)
  143. 32 %124 = deref_var &const_temp#13 (function_temp float)
  144. 32 %125 = load_const (0x3f800000 = 1.000000)
  145. @store_deref (%124, %125 (1.000000)) (wrmask=x, access=none)
  146. 32 %0 = deref_var &NdotL (function_temp float)
  147. 32 %1 = @load_param (param_idx=1)
  148. 32 %2 = deref_cast (vec3 *)%1 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  149. 32x3 %3 = @load_deref (%2) (access=none)
  150. 32 %4 = @load_param (param_idx=0)
  151. 32 %5 = deref_cast (vec3 *)%4 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  152. 32x3 %6 = @load_deref (%5) (access=none)
  153. 32 %7 = fdot3 %3, %6
  154. @store_deref (%0, %7) (wrmask=x, access=none)
  155. 32 %8 = deref_var &NdotL (function_temp float)
  156. 32 %9 = deref_var &NdotL (function_temp float)
  157. 32 %10 = @load_deref (%9) (access=none)
  158. 32 %11 = deref_var &const_temp#9 (function_temp float)
  159. 32 %12 = @load_deref (%11) (access=none)
  160. 32 %13 = fmul %10, %12
  161. 32 %14 = deref_var &const_temp#10 (function_temp float)
  162. 32 %15 = @load_deref (%14) (access=none)
  163. 32 %16 = fadd %13, %15
  164. @store_deref (%8, %16) (wrmask=x, access=none)
  165. 32 %17 = deref_var &NdotL (function_temp float)
  166. 32 %18 = deref_var &NdotL (function_temp float)
  167. 32 %19 = @load_deref (%18) (access=none)
  168. 32 %20 = deref_var &NdotL (function_temp float)
  169. 32 %21 = @load_deref (%20) (access=none)
  170. 32 %22 = fmul %19, %21
  171. @store_deref (%17, %22) (wrmask=x, access=none)
  172. 32 %23 = deref_var &NdotL (function_temp float)
  173. 32 %24 = deref_var &NdotL (function_temp float)
  174. 32 %25 = @load_deref (%24) (access=none)
  175. 32 %26 = fsat %25
  176. @store_deref (%23, %26) (wrmask=x, access=none)
  177. 32 %27 = @load_param (param_idx=6)
  178. 32 %28 = deref_cast (vec4 *)%27 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  179. 32 %29 = @load_param (param_idx=6)
  180. 32 %30 = deref_cast (vec4 *)%29 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  181. 32x4 %31 = @load_deref (%30) (access=none)
  182. 32x3 %32 = mov %31.xyz
  183. 32 %33 = @load_param (param_idx=3)
  184. 32 %34 = deref_cast (vec3 *)%33 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  185. 32x3 %35 = @load_deref (%34) (access=none)
  186. 32 %36 = deref_var &NdotL (function_temp float)
  187. 32 %37 = @load_deref (%36) (access=none)
  188. 32x3 %38 = fmul %35, %37.xxx
  189. 32 %39 = @load_param (param_idx=4)
  190. 32 %40 = deref_cast (vec4 *)%39 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  191. 32x4 %41 = @load_deref (%40) (access=none)
  192. 32x3 %42 = mov %41.xyz
  193. 32x3 %43 = fmul %38, %42
  194. 32x3 %44 = fadd %32, %43
  195. 32x4 %45 = mov %44.xyzx
  196. 32x3 %46 = mov %45.xyz
  197. 32x4 %47 = mov %46.xyzx
  198. @store_deref (%28, %47) (wrmask=xyz, access=none)
  199. 32 %48 = @load_param (param_idx=6)
  200. 32 %49 = deref_cast (vec4 *)%48 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  201. 32 %50 = @load_param (param_idx=6)
  202. 32 %51 = deref_cast (vec4 *)%50 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  203. 32x4 %52 = @load_deref (%51) (access=none)
  204. 32x3 %53 = mov %52.xyz
  205. 32 %54 = @load_param (param_idx=3)
  206. 32 %55 = deref_cast (vec3 *)%54 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  207. 32x3 %56 = @load_deref (%55) (access=none)
  208. 32 %57 = @load_param (param_idx=5)
  209. 32 %58 = deref_cast (vec4 *)%57 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  210. 32x4 %59 = @load_deref (%58) (access=none)
  211. 32x3 %60 = mov %59.xyz
  212. 32x3 %61 = fmul %56, %60
  213. 32 %62 = @load_param (param_idx=1)
  214. 32 %63 = deref_cast (vec3 *)%62 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  215. 32x3 %64 = @load_deref (%63) (access=none)
  216. 32 %65 = @load_param (param_idx=0)
  217. 32 %66 = deref_cast (vec3 *)%65 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  218. 32x3 %67 = @load_deref (%66) (access=none)
  219. 32 %68 = @load_param (param_idx=2)
  220. 32 %69 = deref_cast (vec3 *)%68 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  221. 32x3 %70 = @load_deref (%69) (access=none)
  222. 32x3 %71 = fadd %67, %70
  223. 32 %72 = @load_param (param_idx=0)
  224. 32 %73 = deref_cast (vec3 *)%72 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  225. 32x3 %74 = @load_deref (%73) (access=none)
  226. 32 %75 = @load_param (param_idx=2)
  227. 32 %76 = deref_cast (vec3 *)%75 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  228. 32x3 %77 = @load_deref (%76) (access=none)
  229. 32x3 %78 = fadd %74, %77
  230. 32 %79 = @load_param (param_idx=0)
  231. 32 %80 = deref_cast (vec3 *)%79 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  232. 32x3 %81 = @load_deref (%80) (access=none)
  233. 32 %82 = @load_param (param_idx=2)
  234. 32 %83 = deref_cast (vec3 *)%82 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  235. 32x3 %84 = @load_deref (%83) (access=none)
  236. 32x3 %85 = fadd %81, %84
  237. 32 %86 = fdot3 %78, %85
  238. 32 %87 = frsq %86
  239. 32x3 %88 = fmul %71, %87.xxx
  240. 32 %89 = fdot3 %64, %88
  241. 32 %90 = fsat %89
  242. 32 %91 = deref_var &in_baseInstance (shader_in int)
  243. 32 %92 = @load_deref (%91) (access=none)
  244. 32 %93 = deref_var &materials (ssbo Material[])
  245. 32 %94 = deref_array &(*%93)[%92] (ssbo Material) // &materials[%92]
  246. 32 %95 = deref_struct &%94->u_SpecularExponent (ssbo vec2) // &materials[%92].u_SpecularExponent
  247. 32x2 %96 = @load_deref (%95) (access=readonly)
  248. 32 %97 = mov %96.x
  249. 32 %98 = @load_param (param_idx=5)
  250. 32 %99 = deref_cast (vec4 *)%98 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  251. 32x4 %100 = @load_deref (%99) (access=none)
  252. 32 %101 = mov %100.w
  253. 32 %102 = fmul %97, %101
  254. 32 %103 = deref_var &in_baseInstance (shader_in int)
  255. 32 %104 = @load_deref (%103) (access=none)
  256. 32 %105 = deref_var &materials (ssbo Material[])
  257. 32 %106 = deref_array &(*%105)[%104] (ssbo Material) // &materials[%104]
  258. 32 %107 = deref_struct &%106->u_SpecularExponent (ssbo vec2) // &materials[%104].u_SpecularExponent
  259. 32x2 %108 = @load_deref (%107) (access=readonly)
  260. 32 %109 = mov %108.y
  261. 32 %110 = fadd %102, %109
  262. 32 %111 = fpow %90, %110
  263. 32x3 %112 = fmul %61, %111.xxx
  264. 32 %113 = deref_var &const_temp#13 (function_temp float)
  265. 32 %114 = @load_deref (%113) (access=none)
  266. 32x3 %115 = fmul %112, %114.xxx
  267. 32x3 %116 = fadd %53, %115
  268. 32x4 %117 = mov %116.xyzx
  269. 32x3 %118 = mov %117.xyz
  270. 32x4 %119 = mov %118.xyzx
  271. @store_deref (%49, %119) (wrmask=xyz, access=none)
  272. // succs: b1
  273. block b1:
  274. }
  275.  
  276. decl_function fetchIdxs (3 params)
  277.  
  278. impl fetchIdxs {
  279. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#14
  280. con block b0: // preds:
  281. 32 %0 = deref_var &compiler_temp#14 (function_temp uvec4)
  282. 32 %1 = @load_param (param_idx=2)
  283. 32 %2 = deref_cast (usampler3D *)%1 (uniform usampler3D) (ptr_stride=0, align_mul=0, align_offset=0)
  284. 32 %3 = @load_param (param_idx=1)
  285. 32 %4 = deref_cast (vec3 *)%3 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  286. 32x3 %5 = @load_deref (%4) (access=none)
  287. 32x4 %6 = (uint32)tex %2 (texture_deref), %2 (sampler_deref), %5 (coord)
  288. @store_deref (%0, %6) (wrmask=xyzw, access=none)
  289. 32 %7 = @load_param (param_idx=0)
  290. 32 %8 = deref_cast (uvec4 *)%7 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  291. 32 %9 = deref_var &compiler_temp#14 (function_temp uvec4)
  292. 32x4 %10 = @load_deref (%9) (access=none)
  293. @store_deref (%8, %10) (wrmask=xyzw, access=none)
  294. // succs: b1
  295. block b1:
  296. }
  297.  
  298. decl_function nextIdx (2 params)
  299.  
  300. impl nextIdx {
  301. decl_var INTERP_MODE_NONE none uvec4 tmp
  302. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#15
  303. decl_var INTERP_MODE_NONE none uvec4 const_temp#16
  304. decl_var INTERP_MODE_NONE none uvec4 const_temp#17
  305. decl_var INTERP_MODE_NONE none int const_temp#18
  306. con block b0: // preds:
  307. 32 %35 = deref_var &const_temp#16 (function_temp uvec4)
  308. 32x4 %36 = load_const (0x00000003, 0x00000003, 0x00000003, 0x00000003)
  309. @store_deref (%35, %36 (0x3, 0x3, 0x3, 0x3)) (wrmask=xyzw, access=none)
  310. 32 %37 = deref_var &const_temp#17 (function_temp uvec4)
  311. 32x4 %38 = load_const (0x00000040, 0x00000010, 0x00000004, 0x00000001) = (64, 16, 4, 1)
  312. @store_deref (%37, %38 (0x40, 0x10, 0x4, 0x1)) (wrmask=xyzw, access=none)
  313. 32 %39 = deref_var &const_temp#18 (function_temp int)
  314. 32 %40 = load_const (0x00000002)
  315. @store_deref (%39, %40 (0x2)) (wrmask=x, access=none)
  316. 32 %0 = deref_var &tmp (function_temp uvec4)
  317. 32 %1 = @load_param (param_idx=1)
  318. 32 %2 = deref_cast (uvec4 *)%1 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  319. 32x4 %3 = @load_deref (%2) (access=none)
  320. 32 %4 = deref_var &const_temp#16 (function_temp uvec4)
  321. 32x4 %5 = @load_deref (%4) (access=none)
  322. 32x4 %6 = iand %3, %5
  323. 32 %7 = deref_var &const_temp#17 (function_temp uvec4)
  324. 32x4 %8 = @load_deref (%7) (access=none)
  325. 32x4 %9 = imul %6, %8
  326. @store_deref (%0, %9) (wrmask=xyzw, access=none)
  327. 32 %10 = @load_param (param_idx=1)
  328. 32 %11 = deref_cast (uvec4 *)%10 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  329. 32 %12 = @load_param (param_idx=1)
  330. 32 %13 = deref_cast (uvec4 *)%12 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  331. 32x4 %14 = @load_deref (%13) (access=none)
  332. 32 %15 = deref_var &const_temp#18 (function_temp int)
  333. 32 %16 = @load_deref (%15) (access=none)
  334. 32x4 %17 = ushr %14, %16.xxxx
  335. @store_deref (%11, %17) (wrmask=xyzw, access=none)
  336. 32 %18 = @load_param (param_idx=0)
  337. 32 %19 = deref_cast (int *)%18 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  338. 32 %20 = deref_var &tmp (function_temp uvec4)
  339. 32x4 %21 = @load_deref (%20) (access=none)
  340. 32 %22 = mov %21.x
  341. 32 %23 = deref_var &tmp (function_temp uvec4)
  342. 32x4 %24 = @load_deref (%23) (access=none)
  343. 32 %25 = mov %24.y
  344. 32 %26 = iadd %22, %25
  345. 32 %27 = deref_var &tmp (function_temp uvec4)
  346. 32x4 %28 = @load_deref (%27) (access=none)
  347. 32 %29 = mov %28.z
  348. 32 %30 = deref_var &tmp (function_temp uvec4)
  349. 32x4 %31 = @load_deref (%30) (access=none)
  350. 32 %32 = mov %31.w
  351. 32 %33 = iadd %29, %32
  352. 32 %34 = iadd %26, %33
  353. @store_deref (%19, %34) (wrmask=x, access=none)
  354. // succs: b1
  355. block b1:
  356. }
  357.  
  358. decl_function computeDynamicLight (7 params)
  359.  
  360. impl computeDynamicLight {
  361. decl_var INTERP_MODE_NONE none float attenuation
  362. decl_var INTERP_MODE_NONE none vec3 L
  363. decl_var INTERP_MODE_NONE none vec4 color_type
  364. decl_var INTERP_MODE_NONE none vec4 center_radius
  365. decl_var INTERP_MODE_NONE none vec4 compiler_temp#19
  366. decl_var INTERP_MODE_NONE none vec4 compiler_temp#20
  367. decl_var INTERP_MODE_NONE none float const_temp#21
  368. decl_var INTERP_MODE_NONE none float t
  369. decl_var INTERP_MODE_NONE none float compiler_temp#22
  370. decl_var INTERP_MODE_NONE none float compiler_temp#23
  371. decl_var INTERP_MODE_NONE none float const_temp#24
  372. decl_var INTERP_MODE_NONE none float const_temp#25
  373. decl_var INTERP_MODE_NONE none float const_temp#26
  374. decl_var INTERP_MODE_NONE none vec3 compiler_temp#27
  375. decl_var INTERP_MODE_NONE none float const_temp#28
  376. decl_var INTERP_MODE_NONE none float t#29
  377. decl_var INTERP_MODE_NONE none vec4 direction_angle
  378. decl_var INTERP_MODE_NONE none vec4 compiler_temp#30
  379. decl_var INTERP_MODE_NONE none float compiler_temp#31
  380. decl_var INTERP_MODE_NONE none float compiler_temp#32
  381. decl_var INTERP_MODE_NONE none float const_temp#33
  382. decl_var INTERP_MODE_NONE none float const_temp#34
  383. decl_var INTERP_MODE_NONE none float const_temp#35
  384. decl_var INTERP_MODE_NONE none vec3 compiler_temp#36
  385. decl_var INTERP_MODE_NONE none float compiler_temp#37
  386. decl_var INTERP_MODE_NONE none float const_temp#38
  387. decl_var INTERP_MODE_NONE none float const_temp#39
  388. decl_var INTERP_MODE_NONE none float const_temp#40
  389. decl_var INTERP_MODE_NONE none vec3 param
  390. decl_var INTERP_MODE_NONE none vec3 param#41
  391. decl_var INTERP_MODE_NONE none vec3 param#42
  392. decl_var INTERP_MODE_NONE none vec3 param#43
  393. decl_var INTERP_MODE_NONE none vec4 param#44
  394. decl_var INTERP_MODE_NONE none vec4 param#45
  395. decl_var INTERP_MODE_NONE none vec4 param#46
  396. decl_var INTERP_MODE_NONE none float NdotL#47
  397. decl_var INTERP_MODE_NONE none float NdotH#48
  398. decl_var INTERP_MODE_NONE none vec3 H#49
  399. decl_var INTERP_MODE_NONE none vec3 compiler_temp#50
  400. decl_var INTERP_MODE_NONE none vec3 compiler_temp#51
  401. decl_var INTERP_MODE_NONE none float compiler_temp#52
  402. decl_var INTERP_MODE_NONE none float compiler_temp#53
  403. decl_var INTERP_MODE_NONE none float compiler_temp#54
  404. decl_var INTERP_MODE_NONE none float compiler_temp#55
  405. decl_var INTERP_MODE_NONE none float compiler_temp#56
  406. decl_var INTERP_MODE_NONE none float const_temp#57
  407. decl_var INTERP_MODE_NONE none float const_temp#58
  408. decl_var INTERP_MODE_NONE none float compiler_temp#59
  409. decl_var INTERP_MODE_NONE none float compiler_temp#60
  410. decl_var INTERP_MODE_NONE none float const_temp#61
  411. con block b0: // preds:
  412. 32 %0 = deref_var &attenuation (function_temp float)
  413. 32 %1 = load_const (0x00000000 = 0.000000)
  414. @store_deref (%0, %1 (0.000000)) (wrmask=x, access=none)
  415. 32 %2 = deref_var &L (function_temp vec3)
  416. 32x3 %3 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  417. @store_deref (%2, %3 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  418. 32 %4 = deref_var &const_temp#21 (function_temp float)
  419. 32 %5 = load_const (0x00000000 = 0.000000)
  420. @store_deref (%4, %5 (0.000000)) (wrmask=x, access=none)
  421. 32 %6 = deref_var &const_temp#24 (function_temp float)
  422. 32 %7 = load_const (0x3f800000 = 1.000000)
  423. @store_deref (%6, %7 (1.000000)) (wrmask=x, access=none)
  424. 32 %8 = deref_var &const_temp#25 (function_temp float)
  425. 32 %9 = load_const (0x40247ae1 = 2.570000)
  426. @store_deref (%8, %9 (2.570000)) (wrmask=x, access=none)
  427. 32 %10 = deref_var &const_temp#26 (function_temp float)
  428. 32 %11 = load_const (0x3f800000 = 1.000000)
  429. @store_deref (%10, %11 (1.000000)) (wrmask=x, access=none)
  430. 32 %12 = deref_var &const_temp#28 (function_temp float)
  431. 32 %13 = load_const (0x3f800000 = 1.000000)
  432. @store_deref (%12, %13 (1.000000)) (wrmask=x, access=none)
  433. 32 %14 = deref_var &const_temp#33 (function_temp float)
  434. 32 %15 = load_const (0x3f800000 = 1.000000)
  435. @store_deref (%14, %15 (1.000000)) (wrmask=x, access=none)
  436. 32 %16 = deref_var &const_temp#34 (function_temp float)
  437. 32 %17 = load_const (0x40247ae1 = 2.570000)
  438. @store_deref (%16, %17 (2.570000)) (wrmask=x, access=none)
  439. 32 %18 = deref_var &const_temp#35 (function_temp float)
  440. 32 %19 = load_const (0x3f800000 = 1.000000)
  441. @store_deref (%18, %19 (1.000000)) (wrmask=x, access=none)
  442. 32 %20 = deref_var &const_temp#38 (function_temp float)
  443. 32 %21 = load_const (0x00000000 = 0.000000)
  444. @store_deref (%20, %21 (0.000000)) (wrmask=x, access=none)
  445. 32 %22 = deref_var &const_temp#39 (function_temp float)
  446. 32 %23 = load_const (0x40000000 = 2.000000)
  447. @store_deref (%22, %23 (2.000000)) (wrmask=x, access=none)
  448. 32 %24 = deref_var &const_temp#40 (function_temp float)
  449. 32 %25 = load_const (0x3f800000 = 1.000000)
  450. @store_deref (%24, %25 (1.000000)) (wrmask=x, access=none)
  451. 32 %26 = deref_var &center_radius (function_temp vec4)
  452. 32 %27 = @load_param (param_idx=0)
  453. 32 %28 = deref_cast (int *)%27 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  454. 32 %29 = @load_deref (%28) (access=none)
  455. 32 %30 = deref_var &lights (ubo light[1024])
  456. 32 %31 = deref_array &(*%30)[%29] (ubo light) // &lights[%29]
  457. 32 %32 = deref_struct &%31->center_radius (ubo vec4) // &lights[%29].center_radius
  458. @copy_deref (%26, %32) (dst_access=0, src_access=0)
  459. 32 %33 = deref_var &color_type (function_temp vec4)
  460. 32 %34 = @load_param (param_idx=0)
  461. 32 %35 = deref_cast (int *)%34 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  462. 32 %36 = @load_deref (%35) (access=none)
  463. 32 %37 = deref_var &lights (ubo light[1024])
  464. 32 %38 = deref_array &(*%37)[%36] (ubo light) // &lights[%36]
  465. 32 %39 = deref_struct &%38->color_type (ubo vec4) // &lights[%36].color_type
  466. @copy_deref (%33, %39) (dst_access=0, src_access=0)
  467. 32 %40 = deref_var &color_type (function_temp vec4)
  468. 32x4 %41 = @load_deref (%40) (access=none)
  469. 32 %42 = mov %41.w
  470. 32 %43 = deref_var &const_temp#21 (function_temp float)
  471. 32 %44 = @load_deref (%43) (access=none)
  472. 1 %45 = feq %42, %44
  473. // succs: b1 b2
  474. if %45 {
  475. con block b1: // preds: b0
  476. 32 %46 = deref_var &L (function_temp vec3)
  477. 32 %47 = deref_var &center_radius (function_temp vec4)
  478. 32x4 %48 = @load_deref (%47) (access=none)
  479. 32x3 %49 = mov %48.xyz
  480. 32 %50 = @load_param (param_idx=1)
  481. 32 %51 = deref_cast (vec3 *)%50 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  482. 32x3 %52 = @load_deref (%51) (access=none)
  483. 32x3 %53 = fsub %49, %52
  484. @store_deref (%46, %53) (wrmask=xyz, access=none)
  485. 32 %54 = deref_var &t (function_temp float)
  486. 32 %55 = deref_var &const_temp#24 (function_temp float)
  487. 32 %56 = @load_deref (%55) (access=none)
  488. 32 %57 = deref_var &const_temp#25 (function_temp float)
  489. 32 %58 = @load_deref (%57) (access=none)
  490. 32 %59 = deref_var &L (function_temp vec3)
  491. 32x3 %60 = @load_deref (%59) (access=none)
  492. 32 %61 = deref_var &L (function_temp vec3)
  493. 32x3 %62 = @load_deref (%61) (access=none)
  494. 32 %63 = fdot3 %60, %62
  495. 32 %64 = fsqrt %63
  496. 32 %65 = fmul %58, %64
  497. 32 %66 = deref_var &center_radius (function_temp vec4)
  498. 32x4 %67 = @load_deref (%66) (access=none)
  499. 32 %68 = mov %67.w
  500. 32 %69 = fdiv %65, %68
  501. 32 %70 = fadd %56, %69
  502. @store_deref (%54, %70) (wrmask=x, access=none)
  503. 32 %71 = deref_var &attenuation (function_temp float)
  504. 32 %72 = deref_var &const_temp#26 (function_temp float)
  505. 32 %73 = @load_deref (%72) (access=none)
  506. 32 %74 = deref_var &t (function_temp float)
  507. 32 %75 = @load_deref (%74) (access=none)
  508. 32 %76 = deref_var &t (function_temp float)
  509. 32 %77 = @load_deref (%76) (access=none)
  510. 32 %78 = fmul %75, %77
  511. 32 %79 = fdiv %73, %78
  512. @store_deref (%71, %79) (wrmask=x, access=none)
  513. 32 %80 = deref_var &L (function_temp vec3)
  514. 32 %81 = deref_var &L (function_temp vec3)
  515. 32x3 %82 = @load_deref (%81) (access=none)
  516. 32 %83 = deref_var &L (function_temp vec3)
  517. 32x3 %84 = @load_deref (%83) (access=none)
  518. 32 %85 = deref_var &L (function_temp vec3)
  519. 32x3 %86 = @load_deref (%85) (access=none)
  520. 32 %87 = fdot3 %84, %86
  521. 32 %88 = frsq %87
  522. 32x3 %89 = fmul %82, %88.xxx
  523. @store_deref (%80, %89) (wrmask=xyz, access=none)
  524. // succs: b12
  525. } else {
  526. con block b2: // preds: b0
  527. 32 %90 = deref_var &color_type (function_temp vec4)
  528. 32x4 %91 = @load_deref (%90) (access=none)
  529. 32 %92 = mov %91.w
  530. 32 %93 = deref_var &const_temp#28 (function_temp float)
  531. 32 %94 = @load_deref (%93) (access=none)
  532. 1 %95 = feq %92, %94
  533. // succs: b3 b7
  534. if %95 {
  535. con block b3: // preds: b2
  536. 32 %96 = deref_var &direction_angle (function_temp vec4)
  537. 32 %97 = @load_param (param_idx=0)
  538. 32 %98 = deref_cast (int *)%97 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  539. 32 %99 = @load_deref (%98) (access=none)
  540. 32 %100 = deref_var &lights (ubo light[1024])
  541. 32 %101 = deref_array &(*%100)[%99] (ubo light) // &lights[%99]
  542. 32 %102 = deref_struct &%101->direction_angle (ubo vec4) // &lights[%99].direction_angle
  543. @copy_deref (%96, %102) (dst_access=0, src_access=0)
  544. 32 %103 = deref_var &L (function_temp vec3)
  545. 32 %104 = deref_var &center_radius (function_temp vec4)
  546. 32x4 %105 = @load_deref (%104) (access=none)
  547. 32x3 %106 = mov %105.xyz
  548. 32 %107 = @load_param (param_idx=1)
  549. 32 %108 = deref_cast (vec3 *)%107 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  550. 32x3 %109 = @load_deref (%108) (access=none)
  551. 32x3 %110 = fsub %106, %109
  552. @store_deref (%103, %110) (wrmask=xyz, access=none)
  553. 32 %111 = deref_var &t#29 (function_temp float)
  554. 32 %112 = deref_var &const_temp#33 (function_temp float)
  555. 32 %113 = @load_deref (%112) (access=none)
  556. 32 %114 = deref_var &const_temp#34 (function_temp float)
  557. 32 %115 = @load_deref (%114) (access=none)
  558. 32 %116 = deref_var &L (function_temp vec3)
  559. 32x3 %117 = @load_deref (%116) (access=none)
  560. 32 %118 = deref_var &L (function_temp vec3)
  561. 32x3 %119 = @load_deref (%118) (access=none)
  562. 32 %120 = fdot3 %117, %119
  563. 32 %121 = fsqrt %120
  564. 32 %122 = fmul %115, %121
  565. 32 %123 = deref_var &center_radius (function_temp vec4)
  566. 32x4 %124 = @load_deref (%123) (access=none)
  567. 32 %125 = mov %124.w
  568. 32 %126 = fdiv %122, %125
  569. 32 %127 = fadd %113, %126
  570. @store_deref (%111, %127) (wrmask=x, access=none)
  571. 32 %128 = deref_var &attenuation (function_temp float)
  572. 32 %129 = deref_var &const_temp#35 (function_temp float)
  573. 32 %130 = @load_deref (%129) (access=none)
  574. 32 %131 = deref_var &t#29 (function_temp float)
  575. 32 %132 = @load_deref (%131) (access=none)
  576. 32 %133 = deref_var &t#29 (function_temp float)
  577. 32 %134 = @load_deref (%133) (access=none)
  578. 32 %135 = fmul %132, %134
  579. 32 %136 = fdiv %130, %135
  580. @store_deref (%128, %136) (wrmask=x, access=none)
  581. 32 %137 = deref_var &L (function_temp vec3)
  582. 32 %138 = deref_var &L (function_temp vec3)
  583. 32x3 %139 = @load_deref (%138) (access=none)
  584. 32 %140 = deref_var &L (function_temp vec3)
  585. 32x3 %141 = @load_deref (%140) (access=none)
  586. 32 %142 = deref_var &L (function_temp vec3)
  587. 32x3 %143 = @load_deref (%142) (access=none)
  588. 32 %144 = fdot3 %141, %143
  589. 32 %145 = frsq %144
  590. 32x3 %146 = fmul %139, %145.xxx
  591. @store_deref (%137, %146) (wrmask=xyz, access=none)
  592. 32 %147 = deref_var &compiler_temp#37 (function_temp float)
  593. 32 %148 = deref_var &L (function_temp vec3)
  594. 32x3 %149 = @load_deref (%148) (access=none)
  595. 32 %150 = deref_var &direction_angle (function_temp vec4)
  596. 32x4 %151 = @load_deref (%150) (access=none)
  597. 32x3 %152 = mov %151.xyz
  598. 32 %153 = fdot3 %149, %152
  599. @store_deref (%147, %153) (wrmask=x, access=none)
  600. 32 %154 = deref_var &direction_angle (function_temp vec4)
  601. 32x4 %155 = @load_deref (%154) (access=none)
  602. 32 %156 = mov %155.w
  603. 32 %157 = deref_var &compiler_temp#37 (function_temp float)
  604. 32 %158 = @load_deref (%157) (access=none)
  605. 1 %159 = fge %156, %158
  606. // succs: b4 b5
  607. if %159 {
  608. con block b4: // preds: b3
  609. 32 %160 = deref_var &attenuation (function_temp float)
  610. 32 %161 = deref_var &const_temp#38 (function_temp float)
  611. @copy_deref (%160, %161) (dst_access=0, src_access=0)
  612. // succs: b6
  613. } else {
  614. con block b5: // preds: b3, succs: b6
  615. }
  616. con block b6: // preds: b4 b5, succs: b11
  617. } else {
  618. con block b7: // preds: b2
  619. 32 %162 = deref_var &color_type (function_temp vec4)
  620. 32x4 %163 = @load_deref (%162) (access=none)
  621. 32 %164 = mov %163.w
  622. 32 %165 = deref_var &const_temp#39 (function_temp float)
  623. 32 %166 = @load_deref (%165) (access=none)
  624. 1 %167 = feq %164, %166
  625. // succs: b8 b9
  626. if %167 {
  627. con block b8: // preds: b7
  628. 32 %168 = deref_var &L (function_temp vec3)
  629. 32 %169 = @load_param (param_idx=0)
  630. 32 %170 = deref_cast (int *)%169 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  631. 32 %171 = @load_deref (%170) (access=none)
  632. 32 %172 = deref_var &lights (ubo light[1024])
  633. 32 %173 = deref_array &(*%172)[%171] (ubo light) // &lights[%171]
  634. 32 %174 = deref_struct &%173->direction_angle (ubo vec4) // &lights[%171].direction_angle
  635. 32x4 %175 = @load_deref (%174) (access=none)
  636. 32x3 %176 = mov %175.xyz
  637. @store_deref (%168, %176) (wrmask=xyz, access=none)
  638. 32 %177 = deref_var &attenuation (function_temp float)
  639. 32 %178 = deref_var &const_temp#40 (function_temp float)
  640. @copy_deref (%177, %178) (dst_access=0, src_access=0)
  641. // succs: b10
  642. } else {
  643. con block b9: // preds: b7, succs: b10
  644. }
  645. con block b10: // preds: b8 b9, succs: b11
  646. }
  647. con block b11: // preds: b6 b10, succs: b12
  648. }
  649. con block b12: // preds: b1 b11
  650. 32 %179 = deref_var &param (function_temp vec3)
  651. 32 %180 = deref_var &L (function_temp vec3)
  652. 32x3 %181 = @load_deref (%180) (access=none)
  653. @store_deref (%179, %181) (wrmask=xyz, access=none)
  654. 32 %182 = deref_var &param#41 (function_temp vec3)
  655. 32 %183 = @load_param (param_idx=2)
  656. 32 %184 = deref_cast (vec3 *)%183 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  657. 32x3 %185 = @load_deref (%184) (access=none)
  658. @store_deref (%182, %185) (wrmask=xyz, access=none)
  659. 32 %186 = deref_var &param#42 (function_temp vec3)
  660. 32 %187 = @load_param (param_idx=3)
  661. 32 %188 = deref_cast (vec3 *)%187 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  662. 32x3 %189 = @load_deref (%188) (access=none)
  663. @store_deref (%186, %189) (wrmask=xyz, access=none)
  664. 32 %190 = deref_var &param#43 (function_temp vec3)
  665. 32 %191 = deref_var &attenuation (function_temp float)
  666. 32 %192 = @load_deref (%191) (access=none)
  667. 32 %193 = deref_var &attenuation (function_temp float)
  668. 32 %194 = @load_deref (%193) (access=none)
  669. 32 %195 = fmul %192, %194
  670. 32 %196 = deref_var &color_type (function_temp vec4)
  671. 32x4 %197 = @load_deref (%196) (access=none)
  672. 32x3 %198 = mov %197.xyz
  673. 32x3 %199 = fmul %195.xxx, %198
  674. @store_deref (%190, %199) (wrmask=xyz, access=none)
  675. 32 %200 = deref_var &param#44 (function_temp vec4)
  676. 32 %201 = @load_param (param_idx=4)
  677. 32 %202 = deref_cast (vec4 *)%201 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  678. 32x4 %203 = @load_deref (%202) (access=none)
  679. @store_deref (%200, %203) (wrmask=xyzw, access=none)
  680. 32 %204 = deref_var &param#45 (function_temp vec4)
  681. 32 %205 = @load_param (param_idx=5)
  682. 32 %206 = deref_cast (vec4 *)%205 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  683. 32x4 %207 = @load_deref (%206) (access=none)
  684. @store_deref (%204, %207) (wrmask=xyzw, access=none)
  685. 32 %208 = deref_var &param#46 (function_temp vec4)
  686. 32 %209 = @load_param (param_idx=6)
  687. 32 %210 = deref_cast (vec4 *)%209 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  688. 32x4 %211 = @load_deref (%210) (access=none)
  689. @store_deref (%208, %211) (wrmask=xyzw, access=none)
  690. 32 %212 = deref_var &const_temp#57 (function_temp float)
  691. 32 %213 = load_const (0x3f000000 = 0.500000)
  692. @store_deref (%212, %213 (0.500000)) (wrmask=x, access=none)
  693. 32 %214 = deref_var &const_temp#58 (function_temp float)
  694. 32 %215 = load_const (0x3f000000 = 0.500000)
  695. @store_deref (%214, %215 (0.500000)) (wrmask=x, access=none)
  696. 32 %216 = deref_var &const_temp#61 (function_temp float)
  697. 32 %217 = load_const (0x3f800000 = 1.000000)
  698. @store_deref (%216, %217 (1.000000)) (wrmask=x, access=none)
  699. 32 %218 = deref_var &NdotL#47 (function_temp float)
  700. 32 %219 = deref_cast (vec3 *)%182 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  701. 32x3 %220 = @load_deref (%219) (access=none)
  702. 32 %221 = deref_cast (vec3 *)%179 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  703. 32x3 %222 = @load_deref (%221) (access=none)
  704. 32 %223 = fdot3 %220, %222
  705. @store_deref (%218, %223) (wrmask=x, access=none)
  706. 32 %224 = deref_var &NdotL#47 (function_temp float)
  707. 32 %225 = deref_var &NdotL#47 (function_temp float)
  708. 32 %226 = @load_deref (%225) (access=none)
  709. 32 %227 = deref_var &const_temp#57 (function_temp float)
  710. 32 %228 = @load_deref (%227) (access=none)
  711. 32 %229 = fmul %226, %228
  712. 32 %230 = deref_var &const_temp#58 (function_temp float)
  713. 32 %231 = @load_deref (%230) (access=none)
  714. 32 %232 = fadd %229, %231
  715. @store_deref (%224, %232) (wrmask=x, access=none)
  716. 32 %233 = deref_var &NdotL#47 (function_temp float)
  717. 32 %234 = deref_var &NdotL#47 (function_temp float)
  718. 32 %235 = @load_deref (%234) (access=none)
  719. 32 %236 = deref_var &NdotL#47 (function_temp float)
  720. 32 %237 = @load_deref (%236) (access=none)
  721. 32 %238 = fmul %235, %237
  722. @store_deref (%233, %238) (wrmask=x, access=none)
  723. 32 %239 = deref_var &NdotL#47 (function_temp float)
  724. 32 %240 = deref_var &NdotL#47 (function_temp float)
  725. 32 %241 = @load_deref (%240) (access=none)
  726. 32 %242 = fsat %241
  727. @store_deref (%239, %242) (wrmask=x, access=none)
  728. 32 %243 = deref_cast (vec4 *)%208 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  729. 32 %244 = deref_cast (vec4 *)%208 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  730. 32x4 %245 = @load_deref (%244) (access=none)
  731. 32x3 %246 = mov %245.xyz
  732. 32 %247 = deref_cast (vec3 *)%190 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  733. 32x3 %248 = @load_deref (%247) (access=none)
  734. 32 %249 = deref_var &NdotL#47 (function_temp float)
  735. 32 %250 = @load_deref (%249) (access=none)
  736. 32x3 %251 = fmul %248, %250.xxx
  737. 32 %252 = deref_cast (vec4 *)%200 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  738. 32x4 %253 = @load_deref (%252) (access=none)
  739. 32x3 %254 = mov %253.xyz
  740. 32x3 %255 = fmul %251, %254
  741. 32x3 %256 = fadd %246, %255
  742. 32x4 %257 = mov %256.xyzx
  743. 32x3 %258 = mov %257.xyz
  744. 32x4 %259 = mov %258.xyzx
  745. @store_deref (%243, %259) (wrmask=xyz, access=none)
  746. 32 %260 = deref_cast (vec4 *)%208 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  747. 32 %261 = deref_cast (vec4 *)%208 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  748. 32x4 %262 = @load_deref (%261) (access=none)
  749. 32x3 %263 = mov %262.xyz
  750. 32 %264 = deref_cast (vec3 *)%190 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  751. 32x3 %265 = @load_deref (%264) (access=none)
  752. 32 %266 = deref_cast (vec4 *)%204 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  753. 32x4 %267 = @load_deref (%266) (access=none)
  754. 32x3 %268 = mov %267.xyz
  755. 32x3 %269 = fmul %265, %268
  756. 32 %270 = deref_cast (vec3 *)%182 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  757. 32x3 %271 = @load_deref (%270) (access=none)
  758. 32 %272 = deref_cast (vec3 *)%179 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  759. 32x3 %273 = @load_deref (%272) (access=none)
  760. 32 %274 = deref_cast (vec3 *)%186 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  761. 32x3 %275 = @load_deref (%274) (access=none)
  762. 32x3 %276 = fadd %273, %275
  763. 32 %277 = deref_cast (vec3 *)%179 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  764. 32x3 %278 = @load_deref (%277) (access=none)
  765. 32 %279 = deref_cast (vec3 *)%186 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  766. 32x3 %280 = @load_deref (%279) (access=none)
  767. 32x3 %281 = fadd %278, %280
  768. 32 %282 = deref_cast (vec3 *)%179 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  769. 32x3 %283 = @load_deref (%282) (access=none)
  770. 32 %284 = deref_cast (vec3 *)%186 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  771. 32x3 %285 = @load_deref (%284) (access=none)
  772. 32x3 %286 = fadd %283, %285
  773. 32 %287 = fdot3 %281, %286
  774. 32 %288 = frsq %287
  775. 32x3 %289 = fmul %276, %288.xxx
  776. 32 %290 = fdot3 %271, %289
  777. 32 %291 = fsat %290
  778. 32 %292 = deref_var &in_baseInstance (shader_in int)
  779. 32 %293 = @load_deref (%292) (access=none)
  780. 32 %294 = deref_var &materials (ssbo Material[])
  781. 32 %295 = deref_array &(*%294)[%293] (ssbo Material) // &materials[%293]
  782. 32 %296 = deref_struct &%295->u_SpecularExponent (ssbo vec2) // &materials[%293].u_SpecularExponent
  783. 32x2 %297 = @load_deref (%296) (access=readonly)
  784. 32 %298 = mov %297.x
  785. 32 %299 = deref_cast (vec4 *)%204 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  786. 32x4 %300 = @load_deref (%299) (access=none)
  787. 32 %301 = mov %300.w
  788. 32 %302 = fmul %298, %301
  789. 32 %303 = deref_var &in_baseInstance (shader_in int)
  790. 32 %304 = @load_deref (%303) (access=none)
  791. 32 %305 = deref_var &materials (ssbo Material[])
  792. 32 %306 = deref_array &(*%305)[%304] (ssbo Material) // &materials[%304]
  793. 32 %307 = deref_struct &%306->u_SpecularExponent (ssbo vec2) // &materials[%304].u_SpecularExponent
  794. 32x2 %308 = @load_deref (%307) (access=readonly)
  795. 32 %309 = mov %308.y
  796. 32 %310 = fadd %302, %309
  797. 32 %311 = fpow %291, %310
  798. 32x3 %312 = fmul %269, %311.xxx
  799. 32 %313 = deref_var &const_temp#61 (function_temp float)
  800. 32 %314 = @load_deref (%313) (access=none)
  801. 32x3 %315 = fmul %312, %314.xxx
  802. 32x3 %316 = fadd %263, %315
  803. 32x4 %317 = mov %316.xyzx
  804. 32x3 %318 = mov %317.xyz
  805. 32x4 %319 = mov %318.xyzx
  806. @store_deref (%260, %319) (wrmask=xyz, access=none)
  807. 32x4 %320 = @load_deref (%208) (access=none)
  808. 32 %321 = @load_param (param_idx=6)
  809. 32 %322 = deref_cast (vec4 *)%321 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  810. @store_deref (%322, %320) (wrmask=xyzw, access=none)
  811. // succs: b13
  812. block b13:
  813. }
  814.  
  815. decl_function computeDynamicLights (7 params)
  816.  
  817. impl computeDynamicLights {
  818. decl_var INTERP_MODE_NONE none int layer
  819. decl_var INTERP_MODE_NONE none vec3 tileScale
  820. decl_var INTERP_MODE_NONE none vec2 tile
  821. decl_var INTERP_MODE_NONE none vec2 compiler_temp#62
  822. decl_var INTERP_MODE_NONE none vec2 compiler_temp#63
  823. decl_var INTERP_MODE_NONE none float const_temp#64
  824. decl_var INTERP_MODE_NONE none float const_temp#65
  825. decl_var INTERP_MODE_NONE none float const_temp#66
  826. decl_var INTERP_MODE_NONE none vec3 compiler_temp#67
  827. decl_var INTERP_MODE_NONE none vec3 const_temp#68
  828. decl_var INTERP_MODE_NONE none int compiler_temp#69
  829. decl_var INTERP_MODE_NONE none int const_temp#70
  830. decl_var INTERP_MODE_NONE none int i
  831. decl_var INTERP_MODE_NONE none uvec4 idxs
  832. decl_var INTERP_MODE_NONE none vec3 compiler_temp#71
  833. decl_var INTERP_MODE_NONE none float const_temp#72
  834. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#73
  835. decl_var INTERP_MODE_NONE none uvec4 return_tmp
  836. decl_var INTERP_MODE_NONE none vec3 param#74
  837. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#75
  838. decl_var INTERP_MODE_NONE none int compiler_temp#76
  839. decl_var INTERP_MODE_NONE none int const_temp#77
  840. decl_var INTERP_MODE_NONE none int idx
  841. decl_var INTERP_MODE_NONE none int compiler_temp#78
  842. decl_var INTERP_MODE_NONE none int return_tmp#79
  843. decl_var INTERP_MODE_NONE none uvec4 param#80
  844. decl_var INTERP_MODE_NONE none int compiler_temp#81
  845. decl_var INTERP_MODE_NONE none int param#82
  846. decl_var INTERP_MODE_NONE none vec3 param#83
  847. decl_var INTERP_MODE_NONE none vec3 param#84
  848. decl_var INTERP_MODE_NONE none vec3 param#85
  849. decl_var INTERP_MODE_NONE none vec4 param#86
  850. decl_var INTERP_MODE_NONE none vec4 param#87
  851. decl_var INTERP_MODE_NONE none vec4 param#88
  852. decl_var INTERP_MODE_NONE none int const_temp#89
  853. decl_var INTERP_MODE_NONE none int const_temp#90
  854. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#91
  855. decl_var INTERP_MODE_NONE none uvec4 tmp#92
  856. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#93
  857. decl_var INTERP_MODE_NONE none uvec4 const_temp#94
  858. decl_var INTERP_MODE_NONE none uvec4 const_temp#95
  859. decl_var INTERP_MODE_NONE none int const_temp#96
  860. decl_var INTERP_MODE_NONE none float attenuation#97
  861. decl_var INTERP_MODE_NONE none vec3 L#98
  862. decl_var INTERP_MODE_NONE none vec4 color_type#99
  863. decl_var INTERP_MODE_NONE none vec4 center_radius#100
  864. decl_var INTERP_MODE_NONE none vec4 compiler_temp#101
  865. decl_var INTERP_MODE_NONE none vec4 compiler_temp#102
  866. decl_var INTERP_MODE_NONE none float const_temp#103
  867. decl_var INTERP_MODE_NONE none float t#104
  868. decl_var INTERP_MODE_NONE none float compiler_temp#105
  869. decl_var INTERP_MODE_NONE none float compiler_temp#106
  870. decl_var INTERP_MODE_NONE none float const_temp#107
  871. decl_var INTERP_MODE_NONE none float const_temp#108
  872. decl_var INTERP_MODE_NONE none float const_temp#109
  873. decl_var INTERP_MODE_NONE none vec3 compiler_temp#110
  874. decl_var INTERP_MODE_NONE none float const_temp#111
  875. decl_var INTERP_MODE_NONE none float t#112
  876. decl_var INTERP_MODE_NONE none vec4 direction_angle#113
  877. decl_var INTERP_MODE_NONE none vec4 compiler_temp#114
  878. decl_var INTERP_MODE_NONE none float compiler_temp#115
  879. decl_var INTERP_MODE_NONE none float compiler_temp#116
  880. decl_var INTERP_MODE_NONE none float const_temp#117
  881. decl_var INTERP_MODE_NONE none float const_temp#118
  882. decl_var INTERP_MODE_NONE none float const_temp#119
  883. decl_var INTERP_MODE_NONE none vec3 compiler_temp#120
  884. decl_var INTERP_MODE_NONE none float compiler_temp#121
  885. decl_var INTERP_MODE_NONE none float const_temp#122
  886. decl_var INTERP_MODE_NONE none float const_temp#123
  887. decl_var INTERP_MODE_NONE none float const_temp#124
  888. decl_var INTERP_MODE_NONE none vec3 param#125
  889. decl_var INTERP_MODE_NONE none vec3 param#126
  890. decl_var INTERP_MODE_NONE none vec3 param#127
  891. decl_var INTERP_MODE_NONE none vec3 param#128
  892. decl_var INTERP_MODE_NONE none vec4 param#129
  893. decl_var INTERP_MODE_NONE none vec4 param#130
  894. decl_var INTERP_MODE_NONE none vec4 param#131
  895. decl_var INTERP_MODE_NONE none float NdotL#132
  896. decl_var INTERP_MODE_NONE none float NdotH#133
  897. decl_var INTERP_MODE_NONE none vec3 H#134
  898. decl_var INTERP_MODE_NONE none vec3 compiler_temp#135
  899. decl_var INTERP_MODE_NONE none vec3 compiler_temp#136
  900. decl_var INTERP_MODE_NONE none float compiler_temp#137
  901. decl_var INTERP_MODE_NONE none float compiler_temp#138
  902. decl_var INTERP_MODE_NONE none float compiler_temp#139
  903. decl_var INTERP_MODE_NONE none float compiler_temp#140
  904. decl_var INTERP_MODE_NONE none float compiler_temp#141
  905. decl_var INTERP_MODE_NONE none float const_temp#142
  906. decl_var INTERP_MODE_NONE none float const_temp#143
  907. decl_var INTERP_MODE_NONE none float compiler_temp#144
  908. decl_var INTERP_MODE_NONE none float compiler_temp#145
  909. decl_var INTERP_MODE_NONE none float const_temp#146
  910. con block b0: // preds:
  911. 32 %0 = deref_var &layer (function_temp int)
  912. 32 %1 = load_const (0x00000000)
  913. @store_deref (%0, %1 (0x0)) (wrmask=x, access=none)
  914. 32 %2 = deref_var &tileScale (function_temp vec3)
  915. 32x3 %3 = load_const (0x3bcccccc, 0x3c360b61, 0x3e800000) = (0.006250, 0.011111, 0.250000)
  916. @store_deref (%2, %3 (0.006250, 0.011111, 0.250000)) (wrmask=xyz, access=none)
  917. 32 %4 = deref_var &const_temp#64 (function_temp float)
  918. 32 %5 = load_const (0x3f800000 = 1.000000)
  919. @store_deref (%4, %5 (1.000000)) (wrmask=x, access=none)
  920. 32 %6 = deref_var &const_temp#65 (function_temp float)
  921. 32 %7 = load_const (0x41800000 = 16.000000)
  922. @store_deref (%6, %7 (16.000000)) (wrmask=x, access=none)
  923. 32 %8 = deref_var &const_temp#66 (function_temp float)
  924. 32 %9 = load_const (0x3f000000 = 0.500000)
  925. @store_deref (%8, %9 (0.500000)) (wrmask=x, access=none)
  926. 32 %10 = deref_var &const_temp#68 (function_temp vec3)
  927. 32x3 %11 = load_const (0x3bcccccc, 0x3c360b61, 0x3e800000) = (0.006250, 0.011111, 0.250000)
  928. @store_deref (%10, %11 (0.006250, 0.011111, 0.250000)) (wrmask=xyz, access=none)
  929. 32 %12 = deref_var &const_temp#70 (function_temp int)
  930. 32 %13 = load_const (0x00000000)
  931. @store_deref (%12, %13 (0x0)) (wrmask=x, access=none)
  932. 32 %14 = deref_var &i (function_temp int)
  933. 32 %15 = load_const (0x00000000)
  934. @store_deref (%14, %15 (0x0)) (wrmask=x, access=none)
  935. 32 %16 = deref_var &const_temp#72 (function_temp float)
  936. 32 %17 = load_const (0x3f000000 = 0.500000)
  937. @store_deref (%16, %17 (0.500000)) (wrmask=x, access=none)
  938. 32 %18 = deref_var &const_temp#77 (function_temp int)
  939. 32 %19 = load_const (0x00000000)
  940. @store_deref (%18, %19 (0x0)) (wrmask=x, access=none)
  941. 32 %20 = deref_var &const_temp#89 (function_temp int)
  942. 32 %21 = load_const (0x00000001)
  943. @store_deref (%20, %21 (0x1)) (wrmask=x, access=none)
  944. 32 %22 = deref_var &const_temp#90 (function_temp int)
  945. 32 %23 = load_const (0x00000001)
  946. @store_deref (%22, %23 (0x1)) (wrmask=x, access=none)
  947. 32 %24 = deref_var &tile (function_temp vec2)
  948. 32 %25 = deref_var &gl_FragCoord (system vec4)
  949. 32x4 %26 = @load_deref (%25) (access=none)
  950. 32x2 %27 = mov %26.xy
  951. 32 %28 = deref_var &const_temp#64 (function_temp float)
  952. 32 %29 = @load_deref (%28) (access=none)
  953. 32 %30 = deref_var &const_temp#65 (function_temp float)
  954. 32 %31 = @load_deref (%30) (access=none)
  955. 32 %32 = fdiv %29, %31
  956. 32x2 %33 = fmul %27, %32.xx
  957. 32x2 %34 = ffloor %33
  958. 32 %35 = deref_var &const_temp#66 (function_temp float)
  959. 32 %36 = @load_deref (%35) (access=none)
  960. 32x2 %37 = fadd %34, %36.xx
  961. @store_deref (%24, %37) (wrmask=xy, access=none)
  962. 32 %38 = deref_var &tileScale (function_temp vec3)
  963. 32 %39 = deref_var &const_temp#68 (function_temp vec3)
  964. @copy_deref (%38, %39) (dst_access=0, src_access=0)
  965. 32 %40 = deref_var &layer (function_temp int)
  966. 32 %41 = deref_var &const_temp#70 (function_temp int)
  967. @copy_deref (%40, %41) (dst_access=0, src_access=0)
  968. // succs: b1
  969. loop {
  970. con block b1: // preds: b0 b24
  971. 32 %42 = deref_var &layer (function_temp int)
  972. 32 %43 = @load_deref (%42) (access=none)
  973. 32 %44 = deref_var &numLayers (shader_temp int)
  974. 32 %45 = @load_deref (%44) (access=none)
  975. 1 %46 = ilt %43, %45
  976. 1 %47 = inot %46
  977. // succs: b2 b3
  978. if %47 {
  979. con block b2:// preds: b1
  980. break
  981. // succs: b25
  982. } else {
  983. con block b3: // preds: b1, succs: b4
  984. }
  985. con block b4: // preds: b3
  986. 32 %48 = deref_var &compiler_temp#71 (function_temp vec3)
  987. 32 %49 = deref_var &tile (function_temp vec2)
  988. 32x2 %50 = @load_deref (%49) (access=none)
  989. 32x3 %51 = mov %50.xyx
  990. @store_deref (%48, %51) (wrmask=xy, access=none)
  991. 32 %52 = deref_var &compiler_temp#71 (function_temp vec3)
  992. 32 %53 = deref_var &layer (function_temp int)
  993. 32 %54 = @load_deref (%53) (access=none)
  994. 32 %55 = i2f32 %54
  995. 32 %56 = deref_var &const_temp#72 (function_temp float)
  996. 32 %57 = @load_deref (%56) (access=none)
  997. 32 %58 = fadd %55, %57
  998. 32x3 %59 = mov %58.xxx
  999. @store_deref (%52, %59) (wrmask=z, access=none)
  1000. 32 %60 = deref_var &return_tmp (function_temp uvec4)
  1001. 32 %61 = deref_var &param#74 (function_temp vec3)
  1002. 32 %62 = deref_var &tileScale (function_temp vec3)
  1003. 32x3 %63 = @load_deref (%62) (access=none)
  1004. 32 %64 = deref_var &compiler_temp#71 (function_temp vec3)
  1005. 32x3 %65 = @load_deref (%64) (access=none)
  1006. 32x3 %66 = fmul %63, %65
  1007. @store_deref (%61, %66) (wrmask=xyz, access=none)
  1008. 32 %67 = @load_param (param_idx=6)
  1009. 32 %68 = deref_cast (usampler3D *)%67 (uniform usampler3D) (ptr_stride=0, align_mul=0, align_offset=0)
  1010. 32 %69 = deref_var &compiler_temp#91 (function_temp uvec4)
  1011. 32 %70 = deref_cast (usampler3D *)%68 (uniform usampler3D) (ptr_stride=0, align_mul=0, align_offset=0)
  1012. 32 %71 = deref_cast (vec3 *)%61 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1013. 32x3 %72 = @load_deref (%71) (access=none)
  1014. 32x4 %73 = (uint32)tex %70 (texture_deref), %70 (sampler_deref), %72 (coord)
  1015. @store_deref (%69, %73) (wrmask=xyzw, access=none)
  1016. 32 %74 = deref_cast (uvec4 *)%60 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1017. 32 %75 = deref_var &compiler_temp#91 (function_temp uvec4)
  1018. 32x4 %76 = @load_deref (%75) (access=none)
  1019. @store_deref (%74, %76) (wrmask=xyzw, access=none)
  1020. 32x4 %77 = @load_deref (%60) (access=none)
  1021. 32 %78 = deref_var &compiler_temp#73 (function_temp uvec4)
  1022. @store_deref (%78, %77) (wrmask=xyzw, access=none)
  1023. 32 %79 = deref_var &idxs (function_temp uvec4)
  1024. 32 %80 = deref_var &compiler_temp#73 (function_temp uvec4)
  1025. @copy_deref (%79, %80) (dst_access=0, src_access=0)
  1026. 32 %81 = deref_var &i (function_temp int)
  1027. 32 %82 = deref_var &const_temp#77 (function_temp int)
  1028. @copy_deref (%81, %82) (dst_access=0, src_access=0)
  1029. // succs: b5
  1030. loop {
  1031. con block b5: // preds: b4 b23
  1032. 32 %83 = deref_var &i (function_temp int)
  1033. 32 %84 = @load_deref (%83) (access=none)
  1034. 32 %85 = deref_var &lightsPerLayer (shader_temp int)
  1035. 32 %86 = @load_deref (%85) (access=none)
  1036. 1 %87 = ilt %84, %86
  1037. 1 %88 = inot %87
  1038. // succs: b6 b7
  1039. if %88 {
  1040. con block b6:// preds: b5
  1041. break
  1042. // succs: b24
  1043. } else {
  1044. con block b7: // preds: b5, succs: b8
  1045. }
  1046. con block b8: // preds: b7
  1047. 32 %89 = deref_var &return_tmp#79 (function_temp int)
  1048. 32 %90 = deref_var &param#80 (function_temp uvec4)
  1049. 32 %91 = deref_var &idxs (function_temp uvec4)
  1050. 32x4 %92 = @load_deref (%91) (access=none)
  1051. @store_deref (%90, %92) (wrmask=xyzw, access=none)
  1052. 32 %93 = deref_var &const_temp#94 (function_temp uvec4)
  1053. 32x4 %94 = load_const (0x00000003, 0x00000003, 0x00000003, 0x00000003)
  1054. @store_deref (%93, %94 (0x3, 0x3, 0x3, 0x3)) (wrmask=xyzw, access=none)
  1055. 32 %95 = deref_var &const_temp#95 (function_temp uvec4)
  1056. 32x4 %96 = load_const (0x00000040, 0x00000010, 0x00000004, 0x00000001) = (64, 16, 4, 1)
  1057. @store_deref (%95, %96 (0x40, 0x10, 0x4, 0x1)) (wrmask=xyzw, access=none)
  1058. 32 %97 = deref_var &const_temp#96 (function_temp int)
  1059. 32 %98 = load_const (0x00000002)
  1060. @store_deref (%97, %98 (0x2)) (wrmask=x, access=none)
  1061. 32 %99 = deref_var &tmp#92 (function_temp uvec4)
  1062. 32 %100 = deref_cast (uvec4 *)%90 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1063. 32x4 %101 = @load_deref (%100) (access=none)
  1064. 32 %102 = deref_var &const_temp#94 (function_temp uvec4)
  1065. 32x4 %103 = @load_deref (%102) (access=none)
  1066. 32x4 %104 = iand %101, %103
  1067. 32 %105 = deref_var &const_temp#95 (function_temp uvec4)
  1068. 32x4 %106 = @load_deref (%105) (access=none)
  1069. 32x4 %107 = imul %104, %106
  1070. @store_deref (%99, %107) (wrmask=xyzw, access=none)
  1071. 32 %108 = deref_cast (uvec4 *)%90 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1072. 32 %109 = deref_cast (uvec4 *)%90 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1073. 32x4 %110 = @load_deref (%109) (access=none)
  1074. 32 %111 = deref_var &const_temp#96 (function_temp int)
  1075. 32 %112 = @load_deref (%111) (access=none)
  1076. 32x4 %113 = ushr %110, %112.xxxx
  1077. @store_deref (%108, %113) (wrmask=xyzw, access=none)
  1078. 32 %114 = deref_cast (int *)%89 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  1079. 32 %115 = deref_var &tmp#92 (function_temp uvec4)
  1080. 32x4 %116 = @load_deref (%115) (access=none)
  1081. 32 %117 = mov %116.x
  1082. 32 %118 = deref_var &tmp#92 (function_temp uvec4)
  1083. 32x4 %119 = @load_deref (%118) (access=none)
  1084. 32 %120 = mov %119.y
  1085. 32 %121 = iadd %117, %120
  1086. 32 %122 = deref_var &tmp#92 (function_temp uvec4)
  1087. 32x4 %123 = @load_deref (%122) (access=none)
  1088. 32 %124 = mov %123.z
  1089. 32 %125 = deref_var &tmp#92 (function_temp uvec4)
  1090. 32x4 %126 = @load_deref (%125) (access=none)
  1091. 32 %127 = mov %126.w
  1092. 32 %128 = iadd %124, %127
  1093. 32 %129 = iadd %121, %128
  1094. @store_deref (%114, %129) (wrmask=x, access=none)
  1095. 32x4 %130 = @load_deref (%90) (access=none)
  1096. 32 %131 = deref_var &idxs (function_temp uvec4)
  1097. @store_deref (%131, %130) (wrmask=xyzw, access=none)
  1098. 32 %132 = @load_deref (%89) (access=none)
  1099. 32 %133 = deref_var &compiler_temp#78 (function_temp int)
  1100. @store_deref (%133, %132) (wrmask=x, access=none)
  1101. 32 %134 = deref_var &idx (function_temp int)
  1102. 32 %135 = deref_var &numLayers (shader_temp int)
  1103. 32 %136 = @load_deref (%135) (access=none)
  1104. 32 %137 = deref_var &compiler_temp#78 (function_temp int)
  1105. 32 %138 = @load_deref (%137) (access=none)
  1106. 32 %139 = imul %136, %138
  1107. 32 %140 = deref_var &layer (function_temp int)
  1108. 32 %141 = @load_deref (%140) (access=none)
  1109. 32 %142 = iadd %139, %141
  1110. @store_deref (%134, %142) (wrmask=x, access=none)
  1111. 32 %143 = deref_var &idx (function_temp int)
  1112. 32 %144 = @load_deref (%143) (access=none)
  1113. 32 %145 = deref_var &u_numLights (uniform int)
  1114. 32 %146 = @load_deref (%145) (access=none)
  1115. 1 %147 = ige %144, %146
  1116. // succs: b9 b10
  1117. if %147 {
  1118. con block b9:// preds: b8
  1119. break
  1120. // succs: b24
  1121. } else {
  1122. con block b10: // preds: b8, succs: b11
  1123. }
  1124. con block b11: // preds: b10
  1125. 32 %148 = deref_var &param#82 (function_temp int)
  1126. 32 %149 = deref_var &idx (function_temp int)
  1127. 32 %150 = @load_deref (%149) (access=none)
  1128. @store_deref (%148, %150) (wrmask=x, access=none)
  1129. 32 %151 = deref_var &param#83 (function_temp vec3)
  1130. 32 %152 = @load_param (param_idx=0)
  1131. 32 %153 = deref_cast (vec3 *)%152 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1132. 32x3 %154 = @load_deref (%153) (access=none)
  1133. @store_deref (%151, %154) (wrmask=xyz, access=none)
  1134. 32 %155 = deref_var &param#84 (function_temp vec3)
  1135. 32 %156 = @load_param (param_idx=1)
  1136. 32 %157 = deref_cast (vec3 *)%156 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1137. 32x3 %158 = @load_deref (%157) (access=none)
  1138. @store_deref (%155, %158) (wrmask=xyz, access=none)
  1139. 32 %159 = deref_var &param#85 (function_temp vec3)
  1140. 32 %160 = @load_param (param_idx=2)
  1141. 32 %161 = deref_cast (vec3 *)%160 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1142. 32x3 %162 = @load_deref (%161) (access=none)
  1143. @store_deref (%159, %162) (wrmask=xyz, access=none)
  1144. 32 %163 = deref_var &param#86 (function_temp vec4)
  1145. 32 %164 = @load_param (param_idx=3)
  1146. 32 %165 = deref_cast (vec4 *)%164 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1147. 32x4 %166 = @load_deref (%165) (access=none)
  1148. @store_deref (%163, %166) (wrmask=xyzw, access=none)
  1149. 32 %167 = deref_var &param#87 (function_temp vec4)
  1150. 32 %168 = @load_param (param_idx=4)
  1151. 32 %169 = deref_cast (vec4 *)%168 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1152. 32x4 %170 = @load_deref (%169) (access=none)
  1153. @store_deref (%167, %170) (wrmask=xyzw, access=none)
  1154. 32 %171 = deref_var &param#88 (function_temp vec4)
  1155. 32 %172 = @load_param (param_idx=5)
  1156. 32 %173 = deref_cast (vec4 *)%172 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1157. 32x4 %174 = @load_deref (%173) (access=none)
  1158. @store_deref (%171, %174) (wrmask=xyzw, access=none)
  1159. 32 %175 = deref_var &attenuation#97 (function_temp float)
  1160. 32 %176 = load_const (0x00000000 = 0.000000)
  1161. @store_deref (%175, %176 (0.000000)) (wrmask=x, access=none)
  1162. 32 %177 = deref_var &L#98 (function_temp vec3)
  1163. 32x3 %178 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  1164. @store_deref (%177, %178 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  1165. 32 %179 = deref_var &const_temp#103 (function_temp float)
  1166. 32 %180 = load_const (0x00000000 = 0.000000)
  1167. @store_deref (%179, %180 (0.000000)) (wrmask=x, access=none)
  1168. 32 %181 = deref_var &const_temp#107 (function_temp float)
  1169. 32 %182 = load_const (0x3f800000 = 1.000000)
  1170. @store_deref (%181, %182 (1.000000)) (wrmask=x, access=none)
  1171. 32 %183 = deref_var &const_temp#108 (function_temp float)
  1172. 32 %184 = load_const (0x40247ae1 = 2.570000)
  1173. @store_deref (%183, %184 (2.570000)) (wrmask=x, access=none)
  1174. 32 %185 = deref_var &const_temp#109 (function_temp float)
  1175. 32 %186 = load_const (0x3f800000 = 1.000000)
  1176. @store_deref (%185, %186 (1.000000)) (wrmask=x, access=none)
  1177. 32 %187 = deref_var &const_temp#111 (function_temp float)
  1178. 32 %188 = load_const (0x3f800000 = 1.000000)
  1179. @store_deref (%187, %188 (1.000000)) (wrmask=x, access=none)
  1180. 32 %189 = deref_var &const_temp#117 (function_temp float)
  1181. 32 %190 = load_const (0x3f800000 = 1.000000)
  1182. @store_deref (%189, %190 (1.000000)) (wrmask=x, access=none)
  1183. 32 %191 = deref_var &const_temp#118 (function_temp float)
  1184. 32 %192 = load_const (0x40247ae1 = 2.570000)
  1185. @store_deref (%191, %192 (2.570000)) (wrmask=x, access=none)
  1186. 32 %193 = deref_var &const_temp#119 (function_temp float)
  1187. 32 %194 = load_const (0x3f800000 = 1.000000)
  1188. @store_deref (%193, %194 (1.000000)) (wrmask=x, access=none)
  1189. 32 %195 = deref_var &const_temp#122 (function_temp float)
  1190. 32 %196 = load_const (0x00000000 = 0.000000)
  1191. @store_deref (%195, %196 (0.000000)) (wrmask=x, access=none)
  1192. 32 %197 = deref_var &const_temp#123 (function_temp float)
  1193. 32 %198 = load_const (0x40000000 = 2.000000)
  1194. @store_deref (%197, %198 (2.000000)) (wrmask=x, access=none)
  1195. 32 %199 = deref_var &const_temp#124 (function_temp float)
  1196. 32 %200 = load_const (0x3f800000 = 1.000000)
  1197. @store_deref (%199, %200 (1.000000)) (wrmask=x, access=none)
  1198. 32 %201 = deref_var &center_radius#100 (function_temp vec4)
  1199. 32 %202 = deref_cast (int *)%148 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  1200. 32 %203 = @load_deref (%202) (access=none)
  1201. 32 %204 = deref_var &lights (ubo light[1024])
  1202. 32 %205 = deref_array &(*%204)[%203] (ubo light) // &lights[%203]
  1203. 32 %206 = deref_struct &%205->center_radius (ubo vec4) // &lights[%203].center_radius
  1204. @copy_deref (%201, %206) (dst_access=0, src_access=0)
  1205. 32 %207 = deref_var &color_type#99 (function_temp vec4)
  1206. 32 %208 = deref_cast (int *)%148 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  1207. 32 %209 = @load_deref (%208) (access=none)
  1208. 32 %210 = deref_var &lights (ubo light[1024])
  1209. 32 %211 = deref_array &(*%210)[%209] (ubo light) // &lights[%209]
  1210. 32 %212 = deref_struct &%211->color_type (ubo vec4) // &lights[%209].color_type
  1211. @copy_deref (%207, %212) (dst_access=0, src_access=0)
  1212. 32 %213 = deref_var &color_type#99 (function_temp vec4)
  1213. 32x4 %214 = @load_deref (%213) (access=none)
  1214. 32 %215 = mov %214.w
  1215. 32 %216 = deref_var &const_temp#103 (function_temp float)
  1216. 32 %217 = @load_deref (%216) (access=none)
  1217. 1 %218 = feq %215, %217
  1218. // succs: b12 b13
  1219. if %218 {
  1220. con block b12: // preds: b11
  1221. 32 %219 = deref_var &L#98 (function_temp vec3)
  1222. 32 %220 = deref_var &center_radius#100 (function_temp vec4)
  1223. 32x4 %221 = @load_deref (%220) (access=none)
  1224. 32x3 %222 = mov %221.xyz
  1225. 32 %223 = deref_cast (vec3 *)%151 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1226. 32x3 %224 = @load_deref (%223) (access=none)
  1227. 32x3 %225 = fsub %222, %224
  1228. @store_deref (%219, %225) (wrmask=xyz, access=none)
  1229. 32 %226 = deref_var &t#104 (function_temp float)
  1230. 32 %227 = deref_var &const_temp#107 (function_temp float)
  1231. 32 %228 = @load_deref (%227) (access=none)
  1232. 32 %229 = deref_var &const_temp#108 (function_temp float)
  1233. 32 %230 = @load_deref (%229) (access=none)
  1234. 32 %231 = deref_var &L#98 (function_temp vec3)
  1235. 32x3 %232 = @load_deref (%231) (access=none)
  1236. 32 %233 = deref_var &L#98 (function_temp vec3)
  1237. 32x3 %234 = @load_deref (%233) (access=none)
  1238. 32 %235 = fdot3 %232, %234
  1239. 32 %236 = fsqrt %235
  1240. 32 %237 = fmul %230, %236
  1241. 32 %238 = deref_var &center_radius#100 (function_temp vec4)
  1242. 32x4 %239 = @load_deref (%238) (access=none)
  1243. 32 %240 = mov %239.w
  1244. 32 %241 = fdiv %237, %240
  1245. 32 %242 = fadd %228, %241
  1246. @store_deref (%226, %242) (wrmask=x, access=none)
  1247. 32 %243 = deref_var &attenuation#97 (function_temp float)
  1248. 32 %244 = deref_var &const_temp#109 (function_temp float)
  1249. 32 %245 = @load_deref (%244) (access=none)
  1250. 32 %246 = deref_var &t#104 (function_temp float)
  1251. 32 %247 = @load_deref (%246) (access=none)
  1252. 32 %248 = deref_var &t#104 (function_temp float)
  1253. 32 %249 = @load_deref (%248) (access=none)
  1254. 32 %250 = fmul %247, %249
  1255. 32 %251 = fdiv %245, %250
  1256. @store_deref (%243, %251) (wrmask=x, access=none)
  1257. 32 %252 = deref_var &L#98 (function_temp vec3)
  1258. 32 %253 = deref_var &L#98 (function_temp vec3)
  1259. 32x3 %254 = @load_deref (%253) (access=none)
  1260. 32 %255 = deref_var &L#98 (function_temp vec3)
  1261. 32x3 %256 = @load_deref (%255) (access=none)
  1262. 32 %257 = deref_var &L#98 (function_temp vec3)
  1263. 32x3 %258 = @load_deref (%257) (access=none)
  1264. 32 %259 = fdot3 %256, %258
  1265. 32 %260 = frsq %259
  1266. 32x3 %261 = fmul %254, %260.xxx
  1267. @store_deref (%252, %261) (wrmask=xyz, access=none)
  1268. // succs: b23
  1269. } else {
  1270. con block b13: // preds: b11
  1271. 32 %262 = deref_var &color_type#99 (function_temp vec4)
  1272. 32x4 %263 = @load_deref (%262) (access=none)
  1273. 32 %264 = mov %263.w
  1274. 32 %265 = deref_var &const_temp#111 (function_temp float)
  1275. 32 %266 = @load_deref (%265) (access=none)
  1276. 1 %267 = feq %264, %266
  1277. // succs: b14 b18
  1278. if %267 {
  1279. con block b14: // preds: b13
  1280. 32 %268 = deref_var &direction_angle#113 (function_temp vec4)
  1281. 32 %269 = deref_cast (int *)%148 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  1282. 32 %270 = @load_deref (%269) (access=none)
  1283. 32 %271 = deref_var &lights (ubo light[1024])
  1284. 32 %272 = deref_array &(*%271)[%270] (ubo light) // &lights[%270]
  1285. 32 %273 = deref_struct &%272->direction_angle (ubo vec4) // &lights[%270].direction_angle
  1286. @copy_deref (%268, %273) (dst_access=0, src_access=0)
  1287. 32 %274 = deref_var &L#98 (function_temp vec3)
  1288. 32 %275 = deref_var &center_radius#100 (function_temp vec4)
  1289. 32x4 %276 = @load_deref (%275) (access=none)
  1290. 32x3 %277 = mov %276.xyz
  1291. 32 %278 = deref_cast (vec3 *)%151 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1292. 32x3 %279 = @load_deref (%278) (access=none)
  1293. 32x3 %280 = fsub %277, %279
  1294. @store_deref (%274, %280) (wrmask=xyz, access=none)
  1295. 32 %281 = deref_var &t#112 (function_temp float)
  1296. 32 %282 = deref_var &const_temp#117 (function_temp float)
  1297. 32 %283 = @load_deref (%282) (access=none)
  1298. 32 %284 = deref_var &const_temp#118 (function_temp float)
  1299. 32 %285 = @load_deref (%284) (access=none)
  1300. 32 %286 = deref_var &L#98 (function_temp vec3)
  1301. 32x3 %287 = @load_deref (%286) (access=none)
  1302. 32 %288 = deref_var &L#98 (function_temp vec3)
  1303. 32x3 %289 = @load_deref (%288) (access=none)
  1304. 32 %290 = fdot3 %287, %289
  1305. 32 %291 = fsqrt %290
  1306. 32 %292 = fmul %285, %291
  1307. 32 %293 = deref_var &center_radius#100 (function_temp vec4)
  1308. 32x4 %294 = @load_deref (%293) (access=none)
  1309. 32 %295 = mov %294.w
  1310. 32 %296 = fdiv %292, %295
  1311. 32 %297 = fadd %283, %296
  1312. @store_deref (%281, %297) (wrmask=x, access=none)
  1313. 32 %298 = deref_var &attenuation#97 (function_temp float)
  1314. 32 %299 = deref_var &const_temp#119 (function_temp float)
  1315. 32 %300 = @load_deref (%299) (access=none)
  1316. 32 %301 = deref_var &t#112 (function_temp float)
  1317. 32 %302 = @load_deref (%301) (access=none)
  1318. 32 %303 = deref_var &t#112 (function_temp float)
  1319. 32 %304 = @load_deref (%303) (access=none)
  1320. 32 %305 = fmul %302, %304
  1321. 32 %306 = fdiv %300, %305
  1322. @store_deref (%298, %306) (wrmask=x, access=none)
  1323. 32 %307 = deref_var &L#98 (function_temp vec3)
  1324. 32 %308 = deref_var &L#98 (function_temp vec3)
  1325. 32x3 %309 = @load_deref (%308) (access=none)
  1326. 32 %310 = deref_var &L#98 (function_temp vec3)
  1327. 32x3 %311 = @load_deref (%310) (access=none)
  1328. 32 %312 = deref_var &L#98 (function_temp vec3)
  1329. 32x3 %313 = @load_deref (%312) (access=none)
  1330. 32 %314 = fdot3 %311, %313
  1331. 32 %315 = frsq %314
  1332. 32x3 %316 = fmul %309, %315.xxx
  1333. @store_deref (%307, %316) (wrmask=xyz, access=none)
  1334. 32 %317 = deref_var &compiler_temp#121 (function_temp float)
  1335. 32 %318 = deref_var &L#98 (function_temp vec3)
  1336. 32x3 %319 = @load_deref (%318) (access=none)
  1337. 32 %320 = deref_var &direction_angle#113 (function_temp vec4)
  1338. 32x4 %321 = @load_deref (%320) (access=none)
  1339. 32x3 %322 = mov %321.xyz
  1340. 32 %323 = fdot3 %319, %322
  1341. @store_deref (%317, %323) (wrmask=x, access=none)
  1342. 32 %324 = deref_var &direction_angle#113 (function_temp vec4)
  1343. 32x4 %325 = @load_deref (%324) (access=none)
  1344. 32 %326 = mov %325.w
  1345. 32 %327 = deref_var &compiler_temp#121 (function_temp float)
  1346. 32 %328 = @load_deref (%327) (access=none)
  1347. 1 %329 = fge %326, %328
  1348. // succs: b15 b16
  1349. if %329 {
  1350. con block b15: // preds: b14
  1351. 32 %330 = deref_var &attenuation#97 (function_temp float)
  1352. 32 %331 = deref_var &const_temp#122 (function_temp float)
  1353. @copy_deref (%330, %331) (dst_access=0, src_access=0)
  1354. // succs: b17
  1355. } else {
  1356. con block b16: // preds: b14, succs: b17
  1357. }
  1358. con block b17: // preds: b15 b16, succs: b22
  1359. } else {
  1360. con block b18: // preds: b13
  1361. 32 %332 = deref_var &color_type#99 (function_temp vec4)
  1362. 32x4 %333 = @load_deref (%332) (access=none)
  1363. 32 %334 = mov %333.w
  1364. 32 %335 = deref_var &const_temp#123 (function_temp float)
  1365. 32 %336 = @load_deref (%335) (access=none)
  1366. 1 %337 = feq %334, %336
  1367. // succs: b19 b20
  1368. if %337 {
  1369. con block b19: // preds: b18
  1370. 32 %338 = deref_var &L#98 (function_temp vec3)
  1371. 32 %339 = deref_cast (int *)%148 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  1372. 32 %340 = @load_deref (%339) (access=none)
  1373. 32 %341 = deref_var &lights (ubo light[1024])
  1374. 32 %342 = deref_array &(*%341)[%340] (ubo light) // &lights[%340]
  1375. 32 %343 = deref_struct &%342->direction_angle (ubo vec4) // &lights[%340].direction_angle
  1376. 32x4 %344 = @load_deref (%343) (access=none)
  1377. 32x3 %345 = mov %344.xyz
  1378. @store_deref (%338, %345) (wrmask=xyz, access=none)
  1379. 32 %346 = deref_var &attenuation#97 (function_temp float)
  1380. 32 %347 = deref_var &const_temp#124 (function_temp float)
  1381. @copy_deref (%346, %347) (dst_access=0, src_access=0)
  1382. // succs: b21
  1383. } else {
  1384. con block b20: // preds: b18, succs: b21
  1385. }
  1386. con block b21: // preds: b19 b20, succs: b22
  1387. }
  1388. con block b22: // preds: b17 b21, succs: b23
  1389. }
  1390. con block b23: // preds: b12 b22
  1391. 32 %348 = deref_var &param#125 (function_temp vec3)
  1392. 32 %349 = deref_var &L#98 (function_temp vec3)
  1393. 32x3 %350 = @load_deref (%349) (access=none)
  1394. @store_deref (%348, %350) (wrmask=xyz, access=none)
  1395. 32 %351 = deref_var &param#126 (function_temp vec3)
  1396. 32 %352 = deref_cast (vec3 *)%155 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1397. 32x3 %353 = @load_deref (%352) (access=none)
  1398. @store_deref (%351, %353) (wrmask=xyz, access=none)
  1399. 32 %354 = deref_var &param#127 (function_temp vec3)
  1400. 32 %355 = deref_cast (vec3 *)%159 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1401. 32x3 %356 = @load_deref (%355) (access=none)
  1402. @store_deref (%354, %356) (wrmask=xyz, access=none)
  1403. 32 %357 = deref_var &param#128 (function_temp vec3)
  1404. 32 %358 = deref_var &attenuation#97 (function_temp float)
  1405. 32 %359 = @load_deref (%358) (access=none)
  1406. 32 %360 = deref_var &attenuation#97 (function_temp float)
  1407. 32 %361 = @load_deref (%360) (access=none)
  1408. 32 %362 = fmul %359, %361
  1409. 32 %363 = deref_var &color_type#99 (function_temp vec4)
  1410. 32x4 %364 = @load_deref (%363) (access=none)
  1411. 32x3 %365 = mov %364.xyz
  1412. 32x3 %366 = fmul %362.xxx, %365
  1413. @store_deref (%357, %366) (wrmask=xyz, access=none)
  1414. 32 %367 = deref_var &param#129 (function_temp vec4)
  1415. 32 %368 = deref_cast (vec4 *)%163 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1416. 32x4 %369 = @load_deref (%368) (access=none)
  1417. @store_deref (%367, %369) (wrmask=xyzw, access=none)
  1418. 32 %370 = deref_var &param#130 (function_temp vec4)
  1419. 32 %371 = deref_cast (vec4 *)%167 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1420. 32x4 %372 = @load_deref (%371) (access=none)
  1421. @store_deref (%370, %372) (wrmask=xyzw, access=none)
  1422. 32 %373 = deref_var &param#131 (function_temp vec4)
  1423. 32 %374 = deref_cast (vec4 *)%171 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1424. 32x4 %375 = @load_deref (%374) (access=none)
  1425. @store_deref (%373, %375) (wrmask=xyzw, access=none)
  1426. 32 %376 = deref_var &const_temp#142 (function_temp float)
  1427. 32 %377 = load_const (0x3f000000 = 0.500000)
  1428. @store_deref (%376, %377 (0.500000)) (wrmask=x, access=none)
  1429. 32 %378 = deref_var &const_temp#143 (function_temp float)
  1430. 32 %379 = load_const (0x3f000000 = 0.500000)
  1431. @store_deref (%378, %379 (0.500000)) (wrmask=x, access=none)
  1432. 32 %380 = deref_var &const_temp#146 (function_temp float)
  1433. 32 %381 = load_const (0x3f800000 = 1.000000)
  1434. @store_deref (%380, %381 (1.000000)) (wrmask=x, access=none)
  1435. 32 %382 = deref_var &NdotL#132 (function_temp float)
  1436. 32 %383 = deref_cast (vec3 *)%351 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1437. 32x3 %384 = @load_deref (%383) (access=none)
  1438. 32 %385 = deref_cast (vec3 *)%348 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1439. 32x3 %386 = @load_deref (%385) (access=none)
  1440. 32 %387 = fdot3 %384, %386
  1441. @store_deref (%382, %387) (wrmask=x, access=none)
  1442. 32 %388 = deref_var &NdotL#132 (function_temp float)
  1443. 32 %389 = deref_var &NdotL#132 (function_temp float)
  1444. 32 %390 = @load_deref (%389) (access=none)
  1445. 32 %391 = deref_var &const_temp#142 (function_temp float)
  1446. 32 %392 = @load_deref (%391) (access=none)
  1447. 32 %393 = fmul %390, %392
  1448. 32 %394 = deref_var &const_temp#143 (function_temp float)
  1449. 32 %395 = @load_deref (%394) (access=none)
  1450. 32 %396 = fadd %393, %395
  1451. @store_deref (%388, %396) (wrmask=x, access=none)
  1452. 32 %397 = deref_var &NdotL#132 (function_temp float)
  1453. 32 %398 = deref_var &NdotL#132 (function_temp float)
  1454. 32 %399 = @load_deref (%398) (access=none)
  1455. 32 %400 = deref_var &NdotL#132 (function_temp float)
  1456. 32 %401 = @load_deref (%400) (access=none)
  1457. 32 %402 = fmul %399, %401
  1458. @store_deref (%397, %402) (wrmask=x, access=none)
  1459. 32 %403 = deref_var &NdotL#132 (function_temp float)
  1460. 32 %404 = deref_var &NdotL#132 (function_temp float)
  1461. 32 %405 = @load_deref (%404) (access=none)
  1462. 32 %406 = fsat %405
  1463. @store_deref (%403, %406) (wrmask=x, access=none)
  1464. 32 %407 = deref_cast (vec4 *)%373 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1465. 32 %408 = deref_cast (vec4 *)%373 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1466. 32x4 %409 = @load_deref (%408) (access=none)
  1467. 32x3 %410 = mov %409.xyz
  1468. 32 %411 = deref_cast (vec3 *)%357 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1469. 32x3 %412 = @load_deref (%411) (access=none)
  1470. 32 %413 = deref_var &NdotL#132 (function_temp float)
  1471. 32 %414 = @load_deref (%413) (access=none)
  1472. 32x3 %415 = fmul %412, %414.xxx
  1473. 32 %416 = deref_cast (vec4 *)%367 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1474. 32x4 %417 = @load_deref (%416) (access=none)
  1475. 32x3 %418 = mov %417.xyz
  1476. 32x3 %419 = fmul %415, %418
  1477. 32x3 %420 = fadd %410, %419
  1478. 32x4 %421 = mov %420.xyzx
  1479. 32x3 %422 = mov %421.xyz
  1480. 32x4 %423 = mov %422.xyzx
  1481. @store_deref (%407, %423) (wrmask=xyz, access=none)
  1482. 32 %424 = deref_cast (vec4 *)%373 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1483. 32 %425 = deref_cast (vec4 *)%373 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1484. 32x4 %426 = @load_deref (%425) (access=none)
  1485. 32x3 %427 = mov %426.xyz
  1486. 32 %428 = deref_cast (vec3 *)%357 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1487. 32x3 %429 = @load_deref (%428) (access=none)
  1488. 32 %430 = deref_cast (vec4 *)%370 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1489. 32x4 %431 = @load_deref (%430) (access=none)
  1490. 32x3 %432 = mov %431.xyz
  1491. 32x3 %433 = fmul %429, %432
  1492. 32 %434 = deref_cast (vec3 *)%351 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1493. 32x3 %435 = @load_deref (%434) (access=none)
  1494. 32 %436 = deref_cast (vec3 *)%348 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1495. 32x3 %437 = @load_deref (%436) (access=none)
  1496. 32 %438 = deref_cast (vec3 *)%354 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1497. 32x3 %439 = @load_deref (%438) (access=none)
  1498. 32x3 %440 = fadd %437, %439
  1499. 32 %441 = deref_cast (vec3 *)%348 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1500. 32x3 %442 = @load_deref (%441) (access=none)
  1501. 32 %443 = deref_cast (vec3 *)%354 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1502. 32x3 %444 = @load_deref (%443) (access=none)
  1503. 32x3 %445 = fadd %442, %444
  1504. 32 %446 = deref_cast (vec3 *)%348 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1505. 32x3 %447 = @load_deref (%446) (access=none)
  1506. 32 %448 = deref_cast (vec3 *)%354 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1507. 32x3 %449 = @load_deref (%448) (access=none)
  1508. 32x3 %450 = fadd %447, %449
  1509. 32 %451 = fdot3 %445, %450
  1510. 32 %452 = frsq %451
  1511. 32x3 %453 = fmul %440, %452.xxx
  1512. 32 %454 = fdot3 %435, %453
  1513. 32 %455 = fsat %454
  1514. 32 %456 = deref_var &in_baseInstance (shader_in int)
  1515. 32 %457 = @load_deref (%456) (access=none)
  1516. 32 %458 = deref_var &materials (ssbo Material[])
  1517. 32 %459 = deref_array &(*%458)[%457] (ssbo Material) // &materials[%457]
  1518. 32 %460 = deref_struct &%459->u_SpecularExponent (ssbo vec2) // &materials[%457].u_SpecularExponent
  1519. 32x2 %461 = @load_deref (%460) (access=readonly)
  1520. 32 %462 = mov %461.x
  1521. 32 %463 = deref_cast (vec4 *)%370 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1522. 32x4 %464 = @load_deref (%463) (access=none)
  1523. 32 %465 = mov %464.w
  1524. 32 %466 = fmul %462, %465
  1525. 32 %467 = deref_var &in_baseInstance (shader_in int)
  1526. 32 %468 = @load_deref (%467) (access=none)
  1527. 32 %469 = deref_var &materials (ssbo Material[])
  1528. 32 %470 = deref_array &(*%469)[%468] (ssbo Material) // &materials[%468]
  1529. 32 %471 = deref_struct &%470->u_SpecularExponent (ssbo vec2) // &materials[%468].u_SpecularExponent
  1530. 32x2 %472 = @load_deref (%471) (access=readonly)
  1531. 32 %473 = mov %472.y
  1532. 32 %474 = fadd %466, %473
  1533. 32 %475 = fpow %455, %474
  1534. 32x3 %476 = fmul %433, %475.xxx
  1535. 32 %477 = deref_var &const_temp#146 (function_temp float)
  1536. 32 %478 = @load_deref (%477) (access=none)
  1537. 32x3 %479 = fmul %476, %478.xxx
  1538. 32x3 %480 = fadd %427, %479
  1539. 32x4 %481 = mov %480.xyzx
  1540. 32x3 %482 = mov %481.xyz
  1541. 32x4 %483 = mov %482.xyzx
  1542. @store_deref (%424, %483) (wrmask=xyz, access=none)
  1543. 32x4 %484 = @load_deref (%373) (access=none)
  1544. 32 %485 = deref_cast (vec4 *)%171 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1545. @store_deref (%485, %484) (wrmask=xyzw, access=none)
  1546. 32x4 %486 = @load_deref (%171) (access=none)
  1547. 32 %487 = @load_param (param_idx=5)
  1548. 32 %488 = deref_cast (vec4 *)%487 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  1549. @store_deref (%488, %486) (wrmask=xyzw, access=none)
  1550. 32 %489 = deref_var &i (function_temp int)
  1551. 32 %490 = deref_var &i (function_temp int)
  1552. 32 %491 = @load_deref (%490) (access=none)
  1553. 32 %492 = deref_var &const_temp#89 (function_temp int)
  1554. 32 %493 = @load_deref (%492) (access=none)
  1555. 32 %494 = iadd %491, %493
  1556. @store_deref (%489, %494) (wrmask=x, access=none)
  1557. // succs: b5
  1558. }
  1559. con block b24: // preds: b6 b9
  1560. 32 %495 = deref_var &layer (function_temp int)
  1561. 32 %496 = deref_var &layer (function_temp int)
  1562. 32 %497 = @load_deref (%496) (access=none)
  1563. 32 %498 = deref_var &const_temp#90 (function_temp int)
  1564. 32 %499 = @load_deref (%498) (access=none)
  1565. 32 %500 = iadd %497, %499
  1566. @store_deref (%495, %500) (wrmask=x, access=none)
  1567. // succs: b1
  1568. }
  1569. con block b25: // preds: b2, succs: b26
  1570. block b26:
  1571. }
  1572.  
  1573. decl_function NormalInTangentSpace (3 params)
  1574.  
  1575. impl NormalInTangentSpace {
  1576. decl_var INTERP_MODE_NONE none vec3 normal
  1577. decl_var INTERP_MODE_NONE none vec4 compiler_temp#147
  1578. decl_var INTERP_MODE_NONE none float const_temp#148
  1579. decl_var INTERP_MODE_NONE none float const_temp#149
  1580. decl_var INTERP_MODE_NONE none float compiler_temp#150
  1581. decl_var INTERP_MODE_NONE none float compiler_temp#151
  1582. decl_var INTERP_MODE_NONE none float compiler_temp#152
  1583. decl_var INTERP_MODE_NONE none float const_temp#153
  1584. decl_var INTERP_MODE_NONE none float const_temp#154
  1585. decl_var INTERP_MODE_NONE none int const_temp#155
  1586. decl_var INTERP_MODE_NONE none int const_temp#156
  1587. con block b0: // preds:
  1588. 32 %87 = deref_var &normal (function_temp vec3)
  1589. 32x3 %88 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  1590. @store_deref (%87, %88 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  1591. 32 %89 = deref_var &const_temp#148 (function_temp float)
  1592. 32 %90 = load_const (0x40000000 = 2.000000)
  1593. @store_deref (%89, %90 (2.000000)) (wrmask=x, access=none)
  1594. 32 %91 = deref_var &const_temp#149 (function_temp float)
  1595. 32 %92 = load_const (0x3f800000 = 1.000000)
  1596. @store_deref (%91, %92 (1.000000)) (wrmask=x, access=none)
  1597. 32 %93 = deref_var &const_temp#153 (function_temp float)
  1598. 32 %94 = load_const (0x00000000 = 0.000000)
  1599. @store_deref (%93, %94 (0.000000)) (wrmask=x, access=none)
  1600. 32 %95 = deref_var &const_temp#154 (function_temp float)
  1601. 32 %96 = load_const (0x3f800000 = 1.000000)
  1602. @store_deref (%95, %96 (1.000000)) (wrmask=x, access=none)
  1603. 32 %97 = deref_var &const_temp#155 (function_temp int)
  1604. 32 %98 = load_const (0x00000000)
  1605. @store_deref (%97, %98 (0x0)) (wrmask=x, access=none)
  1606. 32 %99 = deref_var &const_temp#156 (function_temp int)
  1607. 32 %100 = load_const (0x00000001)
  1608. @store_deref (%99, %100 (0x1)) (wrmask=x, access=none)
  1609. 32 %0 = deref_var &normal (function_temp vec3)
  1610. 32 %1 = @load_param (param_idx=2)
  1611. 32 %2 = deref_cast (sampler2D *)%1 (uniform sampler2D) (ptr_stride=0, align_mul=0, align_offset=0)
  1612. 32 %3 = @load_param (param_idx=1)
  1613. 32 %4 = deref_cast (vec2 *)%3 (function_temp vec2) (ptr_stride=0, align_mul=0, align_offset=0)
  1614. 32x2 %5 = @load_deref (%4) (access=none)
  1615. 32x4 %6 = (float32)tex %2 (texture_deref), %2 (sampler_deref), %5 (coord)
  1616. 32x3 %7 = mov %6.xyw
  1617. @store_deref (%0, %7) (wrmask=xyz, access=none)
  1618. 32 %8 = deref_var &normal (function_temp vec3)
  1619. 32 %9 = deref_var &normal (function_temp vec3)
  1620. 32x3 %10 = @load_deref (%9) (access=none)
  1621. 32 %11 = mov %10.x
  1622. 32 %12 = deref_var &normal (function_temp vec3)
  1623. 32x3 %13 = @load_deref (%12) (access=none)
  1624. 32 %14 = mov %13.z
  1625. 32 %15 = fmul %11, %14
  1626. 32x3 %16 = mov %15.xxx
  1627. 32 %17 = mov %16.x
  1628. 32x3 %18 = mov %17.xxx
  1629. @store_deref (%8, %18) (wrmask=x, access=none)
  1630. 32 %19 = deref_var &normal (function_temp vec3)
  1631. 32 %20 = deref_var &const_temp#148 (function_temp float)
  1632. 32 %21 = @load_deref (%20) (access=none)
  1633. 32 %22 = deref_var &normal (function_temp vec3)
  1634. 32x3 %23 = @load_deref (%22) (access=none)
  1635. 32x2 %24 = mov %23.xy
  1636. 32x2 %25 = fmul %21.xx, %24
  1637. 32 %26 = deref_var &const_temp#149 (function_temp float)
  1638. 32 %27 = @load_deref (%26) (access=none)
  1639. 32x2 %28 = fsub %25, %27.xx
  1640. 32x3 %29 = mov %28.xyx
  1641. 32x2 %30 = mov %29.xy
  1642. 32x3 %31 = mov %30.xyx
  1643. @store_deref (%19, %31) (wrmask=xy, access=none)
  1644. 32 %32 = deref_var &normal (function_temp vec3)
  1645. 32 %33 = deref_var &const_temp#153 (function_temp float)
  1646. 32 %34 = @load_deref (%33) (access=none)
  1647. 32 %35 = deref_var &const_temp#154 (function_temp float)
  1648. 32 %36 = @load_deref (%35) (access=none)
  1649. 32 %37 = deref_var &normal (function_temp vec3)
  1650. 32x3 %38 = @load_deref (%37) (access=none)
  1651. 32x2 %39 = mov %38.xy
  1652. 32 %40 = deref_var &normal (function_temp vec3)
  1653. 32x3 %41 = @load_deref (%40) (access=none)
  1654. 32x2 %42 = mov %41.xy
  1655. 32 %43 = fdot2 %39, %42
  1656. 32 %44 = fsub %36, %43
  1657. 32 %45 = fmax %34, %44
  1658. 32 %46 = fsqrt %45
  1659. 32x3 %47 = mov %46.xxx
  1660. 32 %48 = mov %47.z
  1661. 32x3 %49 = mov %48.xxx
  1662. @store_deref (%32, %49) (wrmask=z, access=none)
  1663. 32 %50 = deref_var &in_baseInstance (shader_in int)
  1664. 32 %51 = @load_deref (%50) (access=none)
  1665. 32 %52 = deref_var &materials (ssbo Material[])
  1666. 32 %53 = deref_array &(*%52)[%51] (ssbo Material) // &materials[%51]
  1667. 32 %54 = deref_struct &%53->u_NormalScale (ssbo vec3) // &materials[%51].u_NormalScale
  1668. 32x3 %55 = @load_deref (%54) (access=readonly)
  1669. 32 %56 = mov %55.z
  1670. 32 %57 = deref_var &const_temp#155 (function_temp int)
  1671. 32 %58 = @load_deref (%57) (access=none)
  1672. 32 %59 = i2f32 %58
  1673. 1 %60 = fneu %56, %59
  1674. // succs: b1 b2
  1675. if %60 {
  1676. con block b1: // preds: b0
  1677. 32 %61 = deref_var &normal (function_temp vec3)
  1678. 32 %62 = deref_var &normal (function_temp vec3)
  1679. 32x3 %63 = @load_deref (%62) (access=none)
  1680. 32 %64 = deref_var &in_baseInstance (shader_in int)
  1681. 32 %65 = @load_deref (%64) (access=none)
  1682. 32 %66 = deref_var &materials (ssbo Material[])
  1683. 32 %67 = deref_array &(*%66)[%65] (ssbo Material) // &materials[%65]
  1684. 32 %68 = deref_struct &%67->u_NormalScale (ssbo vec3) // &materials[%65].u_NormalScale
  1685. 32x3 %69 = @load_deref (%68) (access=readonly)
  1686. 32x3 %70 = fmul %63, %69
  1687. @store_deref (%61, %70) (wrmask=xyz, access=none)
  1688. // succs: b3
  1689. } else {
  1690. con block b2: // preds: b0, succs: b3
  1691. }
  1692. con block b3: // preds: b1 b2
  1693. 32 %71 = deref_var &normal (function_temp vec3)
  1694. 32 %72 = deref_var &normal (function_temp vec3)
  1695. 32x3 %73 = @load_deref (%72) (access=none)
  1696. 32 %74 = mov %73.y
  1697. 32 %75 = deref_var &const_temp#156 (function_temp int)
  1698. 32 %76 = @load_deref (%75) (access=none)
  1699. 32 %77 = ineg %76
  1700. 32 %78 = i2f32 %77
  1701. 32 %79 = fmul %74, %78
  1702. 32x3 %80 = mov %79.xxx
  1703. 32 %81 = mov %80.y
  1704. 32x3 %82 = mov %81.xxx
  1705. @store_deref (%71, %82) (wrmask=y, access=none)
  1706. 32 %83 = @load_param (param_idx=0)
  1707. 32 %84 = deref_cast (vec3 *)%83 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1708. 32 %85 = deref_var &normal (function_temp vec3)
  1709. 32x3 %86 = @load_deref (%85) (access=none)
  1710. @store_deref (%84, %86) (wrmask=xyz, access=none)
  1711. // succs: b4
  1712. block b4:
  1713. }
  1714.  
  1715. decl_function NormalInWorldSpace (4 params)
  1716.  
  1717. impl NormalInWorldSpace {
  1718. decl_var INTERP_MODE_NONE none vec3 normal#157
  1719. decl_var INTERP_MODE_NONE none vec3 compiler_temp#158
  1720. decl_var INTERP_MODE_NONE none vec3 return_tmp#159
  1721. decl_var INTERP_MODE_NONE none vec2 param#160
  1722. decl_var INTERP_MODE_NONE none vec3 compiler_temp#161
  1723. decl_var INTERP_MODE_NONE none vec3 compiler_temp#162
  1724. decl_var INTERP_MODE_NONE none vec3 compiler_temp#163
  1725. decl_var INTERP_MODE_NONE none int const_temp#164
  1726. decl_var INTERP_MODE_NONE none int const_temp#165
  1727. decl_var INTERP_MODE_NONE none int const_temp#166
  1728. decl_var INTERP_MODE_NONE none vec3 compiler_temp#167
  1729. decl_var INTERP_MODE_NONE none int const_temp#168
  1730. decl_var INTERP_MODE_NONE none int const_temp#169
  1731. decl_var INTERP_MODE_NONE none int const_temp#170
  1732. decl_var INTERP_MODE_NONE none vec3 compiler_temp#171
  1733. decl_var INTERP_MODE_NONE none int const_temp#172
  1734. decl_var INTERP_MODE_NONE none int const_temp#173
  1735. decl_var INTERP_MODE_NONE none int const_temp#174
  1736. decl_var INTERP_MODE_NONE none vec3 normal#175
  1737. decl_var INTERP_MODE_NONE none vec4 compiler_temp#176
  1738. decl_var INTERP_MODE_NONE none float const_temp#177
  1739. decl_var INTERP_MODE_NONE none float const_temp#178
  1740. decl_var INTERP_MODE_NONE none float compiler_temp#179
  1741. decl_var INTERP_MODE_NONE none float compiler_temp#180
  1742. decl_var INTERP_MODE_NONE none float compiler_temp#181
  1743. decl_var INTERP_MODE_NONE none float const_temp#182
  1744. decl_var INTERP_MODE_NONE none float const_temp#183
  1745. decl_var INTERP_MODE_NONE none int const_temp#184
  1746. decl_var INTERP_MODE_NONE none int const_temp#185
  1747. con block b0: // preds:
  1748. 32 %0 = deref_var &const_temp#164 (function_temp int)
  1749. 32 %1 = load_const (0x00000000)
  1750. @store_deref (%0, %1 (0x0)) (wrmask=x, access=none)
  1751. 32 %2 = deref_var &const_temp#165 (function_temp int)
  1752. 32 %3 = load_const (0x00000001)
  1753. @store_deref (%2, %3 (0x1)) (wrmask=x, access=none)
  1754. 32 %4 = deref_var &const_temp#166 (function_temp int)
  1755. 32 %5 = load_const (0x00000002)
  1756. @store_deref (%4, %5 (0x2)) (wrmask=x, access=none)
  1757. 32 %6 = deref_var &const_temp#168 (function_temp int)
  1758. 32 %7 = load_const (0x00000000)
  1759. @store_deref (%6, %7 (0x0)) (wrmask=x, access=none)
  1760. 32 %8 = deref_var &const_temp#169 (function_temp int)
  1761. 32 %9 = load_const (0x00000001)
  1762. @store_deref (%8, %9 (0x1)) (wrmask=x, access=none)
  1763. 32 %10 = deref_var &const_temp#170 (function_temp int)
  1764. 32 %11 = load_const (0x00000002)
  1765. @store_deref (%10, %11 (0x2)) (wrmask=x, access=none)
  1766. 32 %12 = deref_var &const_temp#172 (function_temp int)
  1767. 32 %13 = load_const (0x00000000)
  1768. @store_deref (%12, %13 (0x0)) (wrmask=x, access=none)
  1769. 32 %14 = deref_var &const_temp#173 (function_temp int)
  1770. 32 %15 = load_const (0x00000001)
  1771. @store_deref (%14, %15 (0x1)) (wrmask=x, access=none)
  1772. 32 %16 = deref_var &const_temp#174 (function_temp int)
  1773. 32 %17 = load_const (0x00000002)
  1774. @store_deref (%16, %17 (0x2)) (wrmask=x, access=none)
  1775. 32 %18 = deref_var &return_tmp#159 (function_temp vec3)
  1776. 32 %19 = deref_var &param#160 (function_temp vec2)
  1777. 32 %20 = @load_param (param_idx=1)
  1778. 32 %21 = deref_cast (vec2 *)%20 (function_temp vec2) (ptr_stride=0, align_mul=0, align_offset=0)
  1779. 32x2 %22 = @load_deref (%21) (access=none)
  1780. @store_deref (%19, %22) (wrmask=xy, access=none)
  1781. 32 %23 = @load_param (param_idx=3)
  1782. 32 %24 = deref_cast (sampler2D *)%23 (uniform sampler2D) (ptr_stride=0, align_mul=0, align_offset=0)
  1783. 32 %25 = deref_var &normal#175 (function_temp vec3)
  1784. 32x3 %26 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  1785. @store_deref (%25, %26 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  1786. 32 %27 = deref_var &const_temp#177 (function_temp float)
  1787. 32 %28 = load_const (0x40000000 = 2.000000)
  1788. @store_deref (%27, %28 (2.000000)) (wrmask=x, access=none)
  1789. 32 %29 = deref_var &const_temp#178 (function_temp float)
  1790. 32 %30 = load_const (0x3f800000 = 1.000000)
  1791. @store_deref (%29, %30 (1.000000)) (wrmask=x, access=none)
  1792. 32 %31 = deref_var &const_temp#182 (function_temp float)
  1793. 32 %32 = load_const (0x00000000 = 0.000000)
  1794. @store_deref (%31, %32 (0.000000)) (wrmask=x, access=none)
  1795. 32 %33 = deref_var &const_temp#183 (function_temp float)
  1796. 32 %34 = load_const (0x3f800000 = 1.000000)
  1797. @store_deref (%33, %34 (1.000000)) (wrmask=x, access=none)
  1798. 32 %35 = deref_var &const_temp#184 (function_temp int)
  1799. 32 %36 = load_const (0x00000000)
  1800. @store_deref (%35, %36 (0x0)) (wrmask=x, access=none)
  1801. 32 %37 = deref_var &const_temp#185 (function_temp int)
  1802. 32 %38 = load_const (0x00000001)
  1803. @store_deref (%37, %38 (0x1)) (wrmask=x, access=none)
  1804. 32 %39 = deref_var &normal#175 (function_temp vec3)
  1805. 32 %40 = deref_cast (sampler2D *)%24 (uniform sampler2D) (ptr_stride=0, align_mul=0, align_offset=0)
  1806. 32 %41 = deref_cast (vec2 *)%19 (function_temp vec2) (ptr_stride=0, align_mul=0, align_offset=0)
  1807. 32x2 %42 = @load_deref (%41) (access=none)
  1808. 32x4 %43 = (float32)tex %40 (texture_deref), %40 (sampler_deref), %42 (coord)
  1809. 32x3 %44 = mov %43.xyw
  1810. @store_deref (%39, %44) (wrmask=xyz, access=none)
  1811. 32 %45 = deref_var &normal#175 (function_temp vec3)
  1812. 32 %46 = deref_var &normal#175 (function_temp vec3)
  1813. 32x3 %47 = @load_deref (%46) (access=none)
  1814. 32 %48 = mov %47.x
  1815. 32 %49 = deref_var &normal#175 (function_temp vec3)
  1816. 32x3 %50 = @load_deref (%49) (access=none)
  1817. 32 %51 = mov %50.z
  1818. 32 %52 = fmul %48, %51
  1819. 32x3 %53 = mov %52.xxx
  1820. 32 %54 = mov %53.x
  1821. 32x3 %55 = mov %54.xxx
  1822. @store_deref (%45, %55) (wrmask=x, access=none)
  1823. 32 %56 = deref_var &normal#175 (function_temp vec3)
  1824. 32 %57 = deref_var &const_temp#177 (function_temp float)
  1825. 32 %58 = @load_deref (%57) (access=none)
  1826. 32 %59 = deref_var &normal#175 (function_temp vec3)
  1827. 32x3 %60 = @load_deref (%59) (access=none)
  1828. 32x2 %61 = mov %60.xy
  1829. 32x2 %62 = fmul %58.xx, %61
  1830. 32 %63 = deref_var &const_temp#178 (function_temp float)
  1831. 32 %64 = @load_deref (%63) (access=none)
  1832. 32x2 %65 = fsub %62, %64.xx
  1833. 32x3 %66 = mov %65.xyx
  1834. 32x2 %67 = mov %66.xy
  1835. 32x3 %68 = mov %67.xyx
  1836. @store_deref (%56, %68) (wrmask=xy, access=none)
  1837. 32 %69 = deref_var &normal#175 (function_temp vec3)
  1838. 32 %70 = deref_var &const_temp#182 (function_temp float)
  1839. 32 %71 = @load_deref (%70) (access=none)
  1840. 32 %72 = deref_var &const_temp#183 (function_temp float)
  1841. 32 %73 = @load_deref (%72) (access=none)
  1842. 32 %74 = deref_var &normal#175 (function_temp vec3)
  1843. 32x3 %75 = @load_deref (%74) (access=none)
  1844. 32x2 %76 = mov %75.xy
  1845. 32 %77 = deref_var &normal#175 (function_temp vec3)
  1846. 32x3 %78 = @load_deref (%77) (access=none)
  1847. 32x2 %79 = mov %78.xy
  1848. 32 %80 = fdot2 %76, %79
  1849. 32 %81 = fsub %73, %80
  1850. 32 %82 = fmax %71, %81
  1851. 32 %83 = fsqrt %82
  1852. 32x3 %84 = mov %83.xxx
  1853. 32 %85 = mov %84.z
  1854. 32x3 %86 = mov %85.xxx
  1855. @store_deref (%69, %86) (wrmask=z, access=none)
  1856. 32 %87 = deref_var &in_baseInstance (shader_in int)
  1857. 32 %88 = @load_deref (%87) (access=none)
  1858. 32 %89 = deref_var &materials (ssbo Material[])
  1859. 32 %90 = deref_array &(*%89)[%88] (ssbo Material) // &materials[%88]
  1860. 32 %91 = deref_struct &%90->u_NormalScale (ssbo vec3) // &materials[%88].u_NormalScale
  1861. 32x3 %92 = @load_deref (%91) (access=readonly)
  1862. 32 %93 = mov %92.z
  1863. 32 %94 = deref_var &const_temp#184 (function_temp int)
  1864. 32 %95 = @load_deref (%94) (access=none)
  1865. 32 %96 = i2f32 %95
  1866. 1 %97 = fneu %93, %96
  1867. // succs: b1 b2
  1868. if %97 {
  1869. con block b1: // preds: b0
  1870. 32 %98 = deref_var &normal#175 (function_temp vec3)
  1871. 32 %99 = deref_var &normal#175 (function_temp vec3)
  1872. 32x3 %100 = @load_deref (%99) (access=none)
  1873. 32 %101 = deref_var &in_baseInstance (shader_in int)
  1874. 32 %102 = @load_deref (%101) (access=none)
  1875. 32 %103 = deref_var &materials (ssbo Material[])
  1876. 32 %104 = deref_array &(*%103)[%102] (ssbo Material) // &materials[%102]
  1877. 32 %105 = deref_struct &%104->u_NormalScale (ssbo vec3) // &materials[%102].u_NormalScale
  1878. 32x3 %106 = @load_deref (%105) (access=readonly)
  1879. 32x3 %107 = fmul %100, %106
  1880. @store_deref (%98, %107) (wrmask=xyz, access=none)
  1881. // succs: b3
  1882. } else {
  1883. con block b2: // preds: b0, succs: b3
  1884. }
  1885. con block b3: // preds: b1 b2
  1886. 32 %108 = deref_var &normal#175 (function_temp vec3)
  1887. 32 %109 = deref_var &normal#175 (function_temp vec3)
  1888. 32x3 %110 = @load_deref (%109) (access=none)
  1889. 32 %111 = mov %110.y
  1890. 32 %112 = deref_var &const_temp#185 (function_temp int)
  1891. 32 %113 = @load_deref (%112) (access=none)
  1892. 32 %114 = ineg %113
  1893. 32 %115 = i2f32 %114
  1894. 32 %116 = fmul %111, %115
  1895. 32x3 %117 = mov %116.xxx
  1896. 32 %118 = mov %117.y
  1897. 32x3 %119 = mov %118.xxx
  1898. @store_deref (%108, %119) (wrmask=y, access=none)
  1899. 32 %120 = deref_cast (vec3 *)%18 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  1900. 32 %121 = deref_var &normal#175 (function_temp vec3)
  1901. 32x3 %122 = @load_deref (%121) (access=none)
  1902. @store_deref (%120, %122) (wrmask=xyz, access=none)
  1903. 32x3 %123 = @load_deref (%18) (access=none)
  1904. 32 %124 = deref_var &compiler_temp#158 (function_temp vec3)
  1905. @store_deref (%124, %123) (wrmask=xyz, access=none)
  1906. 32 %125 = deref_var &normal#157 (function_temp vec3)
  1907. 32 %126 = deref_var &compiler_temp#158 (function_temp vec3)
  1908. @copy_deref (%125, %126) (dst_access=0, src_access=0)
  1909. 32 %127 = deref_var &compiler_temp#163 (function_temp vec3)
  1910. 32 %128 = deref_var &const_temp#164 (function_temp int)
  1911. 32 %129 = @load_deref (%128) (access=none)
  1912. 32 %130 = @load_param (param_idx=2)
  1913. 32 %131 = deref_cast (mat3 *)%130 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1914. 32 %132 = deref_array &(*%131)[%129] (function_temp vec3) // &(*(mat3 *)%130)[%129]
  1915. 32x3 %133 = @load_deref (%132) (access=none)
  1916. 32 %134 = deref_var &normal#157 (function_temp vec3)
  1917. 32x3 %135 = @load_deref (%134) (access=none)
  1918. 32 %136 = mov %135.x
  1919. 32x3 %137 = fmul %133, %136.xxx
  1920. 32 %138 = deref_var &const_temp#165 (function_temp int)
  1921. 32 %139 = @load_deref (%138) (access=none)
  1922. 32 %140 = @load_param (param_idx=2)
  1923. 32 %141 = deref_cast (mat3 *)%140 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1924. 32 %142 = deref_array &(*%141)[%139] (function_temp vec3) // &(*(mat3 *)%140)[%139]
  1925. 32x3 %143 = @load_deref (%142) (access=none)
  1926. 32 %144 = deref_var &normal#157 (function_temp vec3)
  1927. 32x3 %145 = @load_deref (%144) (access=none)
  1928. 32 %146 = mov %145.y
  1929. 32x3 %147 = fmul %143, %146.xxx
  1930. 32x3 %148 = fadd %137, %147
  1931. 32 %149 = deref_var &const_temp#166 (function_temp int)
  1932. 32 %150 = @load_deref (%149) (access=none)
  1933. 32 %151 = @load_param (param_idx=2)
  1934. 32 %152 = deref_cast (mat3 *)%151 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1935. 32 %153 = deref_array &(*%152)[%150] (function_temp vec3) // &(*(mat3 *)%151)[%150]
  1936. 32x3 %154 = @load_deref (%153) (access=none)
  1937. 32 %155 = deref_var &normal#157 (function_temp vec3)
  1938. 32x3 %156 = @load_deref (%155) (access=none)
  1939. 32 %157 = mov %156.z
  1940. 32x3 %158 = fmul %154, %157.xxx
  1941. 32x3 %159 = fadd %148, %158
  1942. @store_deref (%127, %159) (wrmask=xyz, access=none)
  1943. 32 %160 = deref_var &compiler_temp#167 (function_temp vec3)
  1944. 32 %161 = deref_var &const_temp#168 (function_temp int)
  1945. 32 %162 = @load_deref (%161) (access=none)
  1946. 32 %163 = @load_param (param_idx=2)
  1947. 32 %164 = deref_cast (mat3 *)%163 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1948. 32 %165 = deref_array &(*%164)[%162] (function_temp vec3) // &(*(mat3 *)%163)[%162]
  1949. 32x3 %166 = @load_deref (%165) (access=none)
  1950. 32 %167 = deref_var &normal#157 (function_temp vec3)
  1951. 32x3 %168 = @load_deref (%167) (access=none)
  1952. 32 %169 = mov %168.x
  1953. 32x3 %170 = fmul %166, %169.xxx
  1954. 32 %171 = deref_var &const_temp#169 (function_temp int)
  1955. 32 %172 = @load_deref (%171) (access=none)
  1956. 32 %173 = @load_param (param_idx=2)
  1957. 32 %174 = deref_cast (mat3 *)%173 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1958. 32 %175 = deref_array &(*%174)[%172] (function_temp vec3) // &(*(mat3 *)%173)[%172]
  1959. 32x3 %176 = @load_deref (%175) (access=none)
  1960. 32 %177 = deref_var &normal#157 (function_temp vec3)
  1961. 32x3 %178 = @load_deref (%177) (access=none)
  1962. 32 %179 = mov %178.y
  1963. 32x3 %180 = fmul %176, %179.xxx
  1964. 32x3 %181 = fadd %170, %180
  1965. 32 %182 = deref_var &const_temp#170 (function_temp int)
  1966. 32 %183 = @load_deref (%182) (access=none)
  1967. 32 %184 = @load_param (param_idx=2)
  1968. 32 %185 = deref_cast (mat3 *)%184 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1969. 32 %186 = deref_array &(*%185)[%183] (function_temp vec3) // &(*(mat3 *)%184)[%183]
  1970. 32x3 %187 = @load_deref (%186) (access=none)
  1971. 32 %188 = deref_var &normal#157 (function_temp vec3)
  1972. 32x3 %189 = @load_deref (%188) (access=none)
  1973. 32 %190 = mov %189.z
  1974. 32x3 %191 = fmul %187, %190.xxx
  1975. 32x3 %192 = fadd %181, %191
  1976. @store_deref (%160, %192) (wrmask=xyz, access=none)
  1977. 32 %193 = deref_var &compiler_temp#171 (function_temp vec3)
  1978. 32 %194 = deref_var &const_temp#172 (function_temp int)
  1979. 32 %195 = @load_deref (%194) (access=none)
  1980. 32 %196 = @load_param (param_idx=2)
  1981. 32 %197 = deref_cast (mat3 *)%196 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1982. 32 %198 = deref_array &(*%197)[%195] (function_temp vec3) // &(*(mat3 *)%196)[%195]
  1983. 32x3 %199 = @load_deref (%198) (access=none)
  1984. 32 %200 = deref_var &normal#157 (function_temp vec3)
  1985. 32x3 %201 = @load_deref (%200) (access=none)
  1986. 32 %202 = mov %201.x
  1987. 32x3 %203 = fmul %199, %202.xxx
  1988. 32 %204 = deref_var &const_temp#173 (function_temp int)
  1989. 32 %205 = @load_deref (%204) (access=none)
  1990. 32 %206 = @load_param (param_idx=2)
  1991. 32 %207 = deref_cast (mat3 *)%206 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  1992. 32 %208 = deref_array &(*%207)[%205] (function_temp vec3) // &(*(mat3 *)%206)[%205]
  1993. 32x3 %209 = @load_deref (%208) (access=none)
  1994. 32 %210 = deref_var &normal#157 (function_temp vec3)
  1995. 32x3 %211 = @load_deref (%210) (access=none)
  1996. 32 %212 = mov %211.y
  1997. 32x3 %213 = fmul %209, %212.xxx
  1998. 32x3 %214 = fadd %203, %213
  1999. 32 %215 = deref_var &const_temp#174 (function_temp int)
  2000. 32 %216 = @load_deref (%215) (access=none)
  2001. 32 %217 = @load_param (param_idx=2)
  2002. 32 %218 = deref_cast (mat3 *)%217 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2003. 32 %219 = deref_array &(*%218)[%216] (function_temp vec3) // &(*(mat3 *)%217)[%216]
  2004. 32x3 %220 = @load_deref (%219) (access=none)
  2005. 32 %221 = deref_var &normal#157 (function_temp vec3)
  2006. 32x3 %222 = @load_deref (%221) (access=none)
  2007. 32 %223 = mov %222.z
  2008. 32x3 %224 = fmul %220, %223.xxx
  2009. 32x3 %225 = fadd %214, %224
  2010. @store_deref (%193, %225) (wrmask=xyz, access=none)
  2011. 32 %226 = deref_var &compiler_temp#162 (function_temp vec3)
  2012. 32 %227 = deref_var &compiler_temp#171 (function_temp vec3)
  2013. 32x3 %228 = @load_deref (%227) (access=none)
  2014. 32 %229 = deref_var &compiler_temp#163 (function_temp vec3)
  2015. 32x3 %230 = @load_deref (%229) (access=none)
  2016. 32 %231 = deref_var &compiler_temp#167 (function_temp vec3)
  2017. 32x3 %232 = @load_deref (%231) (access=none)
  2018. 32 %233 = fdot3 %230, %232
  2019. 32 %234 = frsq %233
  2020. 32x3 %235 = fmul %228, %234.xxx
  2021. @store_deref (%226, %235) (wrmask=xyz, access=none)
  2022. 32 %236 = @load_param (param_idx=0)
  2023. 32 %237 = deref_cast (vec3 *)%236 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  2024. 32 %238 = deref_var &compiler_temp#162 (function_temp vec3)
  2025. 32x3 %239 = @load_deref (%238) (access=none)
  2026. @store_deref (%237, %239) (wrmask=xyz, access=none)
  2027. // succs: b4
  2028. block b4:
  2029. }
  2030.  
  2031. decl_function main (0 params)
  2032.  
  2033. impl main {
  2034. decl_var INTERP_MODE_NONE none int compiler_temp#186
  2035. decl_var INTERP_MODE_NONE none int compiler_temp#187
  2036. decl_var INTERP_MODE_NONE none float compiler_temp#188
  2037. decl_var INTERP_MODE_NONE none int compiler_temp#189
  2038. decl_var INTERP_MODE_NONE none int const_temp#190
  2039. decl_var INTERP_MODE_NONE none float const_temp#191
  2040. decl_var INTERP_MODE_NONE none int const_temp#192
  2041. decl_var INTERP_MODE_NONE none int const_temp#193
  2042. decl_var INTERP_MODE_NONE none bool compiler_temp#194
  2043. decl_var INTERP_MODE_NONE none bool const_temp#195
  2044. decl_var INTERP_MODE_NONE none bool compiler_temp#196
  2045. decl_var INTERP_MODE_NONE none bool const_temp#197
  2046. decl_var INTERP_MODE_NONE none vec3 glow
  2047. decl_var INTERP_MODE_NONE none vec3 lightColor
  2048. decl_var INTERP_MODE_NONE none vec4 color
  2049. decl_var INTERP_MODE_NONE none vec4 material
  2050. decl_var INTERP_MODE_NONE none vec3 normal#198
  2051. decl_var INTERP_MODE_NONE none vec4 diffuse
  2052. decl_var INTERP_MODE_NONE none mat3 tangentToWorldMatrix
  2053. decl_var INTERP_MODE_NONE none vec2 texCoords
  2054. decl_var INTERP_MODE_NONE none vec3 viewDir
  2055. decl_var bindless INTERP_MODE_NONE none sampler2D u_NormalMap
  2056. decl_var bindless INTERP_MODE_NONE none sampler2D u_LightMap
  2057. decl_var bindless INTERP_MODE_NONE none sampler2D u_GlowMap
  2058. decl_var bindless INTERP_MODE_NONE none sampler2D u_MaterialMap
  2059. decl_var bindless INTERP_MODE_NONE none sampler2D u_DiffuseMap
  2060. decl_var bindless INTERP_MODE_NONE none usampler3D u_LightTilesInt
  2061. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#199
  2062. decl_var INTERP_MODE_NONE none usampler3D compiler_temp#200
  2063. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#201
  2064. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#202
  2065. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#203
  2066. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#204
  2067. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#205
  2068. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#206
  2069. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#207
  2070. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#208
  2071. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#209
  2072. decl_var INTERP_MODE_NONE none sampler3D compiler_temp#210
  2073. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#211
  2074. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#212
  2075. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#213
  2076. decl_var INTERP_MODE_NONE none sampler3D compiler_temp#214
  2077. decl_var INTERP_MODE_NONE none uvec2 compiler_temp#215
  2078. decl_var INTERP_MODE_NONE none sampler2D compiler_temp#216
  2079. decl_var INTERP_MODE_NONE none vec3 compiler_temp#217
  2080. decl_var INTERP_MODE_NONE none vec3 compiler_temp#218
  2081. decl_var INTERP_MODE_NONE none vec2 compiler_temp#219
  2082. decl_var INTERP_MODE_NONE none mat3 compiler_temp#220
  2083. decl_var INTERP_MODE_NONE none vec3 compiler_temp#221
  2084. decl_var INTERP_MODE_NONE none uint const_temp#222
  2085. decl_var INTERP_MODE_NONE none vec3 compiler_temp#223
  2086. decl_var INTERP_MODE_NONE none uint const_temp#224
  2087. decl_var INTERP_MODE_NONE none vec3 compiler_temp#225
  2088. decl_var INTERP_MODE_NONE none uint const_temp#226
  2089. decl_var INTERP_MODE_NONE none mat3 compiler_temp#227
  2090. decl_var INTERP_MODE_NONE none vec4 compiler_temp#228
  2091. decl_var INTERP_MODE_NONE none vec4 compiler_temp#229
  2092. decl_var INTERP_MODE_NONE none float compiler_temp#230
  2093. decl_var INTERP_MODE_NONE none float const_temp#231
  2094. decl_var INTERP_MODE_NONE none bool const_temp#232
  2095. decl_var INTERP_MODE_NONE none bool const_temp#233
  2096. decl_var INTERP_MODE_NONE none vec3 compiler_temp#234
  2097. decl_var INTERP_MODE_NONE none vec3 return_tmp#235
  2098. decl_var INTERP_MODE_NONE none vec2 param#236
  2099. decl_var INTERP_MODE_NONE none mat3 param#237
  2100. decl_var INTERP_MODE_NONE none vec3 compiler_temp#238
  2101. decl_var INTERP_MODE_NONE none vec4 compiler_temp#239
  2102. decl_var INTERP_MODE_NONE none vec4 compiler_temp#240
  2103. decl_var INTERP_MODE_NONE none vec4 compiler_temp#241
  2104. decl_var INTERP_MODE_NONE none vec3 compiler_temp#242
  2105. decl_var INTERP_MODE_NONE none vec3 const_temp#243
  2106. decl_var INTERP_MODE_NONE none vec3 param#244
  2107. decl_var INTERP_MODE_NONE none vec4 param#245
  2108. decl_var INTERP_MODE_NONE none vec4 param#246
  2109. decl_var INTERP_MODE_NONE none vec3 param#247
  2110. decl_var INTERP_MODE_NONE none vec3 param#248
  2111. decl_var INTERP_MODE_NONE none vec3 param#249
  2112. decl_var INTERP_MODE_NONE none vec4 param#250
  2113. decl_var INTERP_MODE_NONE none vec4 param#251
  2114. decl_var INTERP_MODE_NONE none vec4 param#252
  2115. decl_var INTERP_MODE_NONE none int const_temp#253
  2116. decl_var INTERP_MODE_NONE none vec4 compiler_temp#254
  2117. decl_var INTERP_MODE_NONE none vec3 compiler_temp#255
  2118. decl_var INTERP_MODE_NONE none int const_temp#256
  2119. decl_var INTERP_MODE_NONE none vec3 normal#257
  2120. decl_var INTERP_MODE_NONE none vec3 compiler_temp#258
  2121. decl_var INTERP_MODE_NONE none vec3 return_tmp#259
  2122. decl_var INTERP_MODE_NONE none vec2 param#260
  2123. decl_var INTERP_MODE_NONE none vec3 compiler_temp#261
  2124. decl_var INTERP_MODE_NONE none vec3 compiler_temp#262
  2125. decl_var INTERP_MODE_NONE none vec3 compiler_temp#263
  2126. decl_var INTERP_MODE_NONE none int const_temp#264
  2127. decl_var INTERP_MODE_NONE none int const_temp#265
  2128. decl_var INTERP_MODE_NONE none int const_temp#266
  2129. decl_var INTERP_MODE_NONE none vec3 compiler_temp#267
  2130. decl_var INTERP_MODE_NONE none int const_temp#268
  2131. decl_var INTERP_MODE_NONE none int const_temp#269
  2132. decl_var INTERP_MODE_NONE none int const_temp#270
  2133. decl_var INTERP_MODE_NONE none vec3 compiler_temp#271
  2134. decl_var INTERP_MODE_NONE none int const_temp#272
  2135. decl_var INTERP_MODE_NONE none int const_temp#273
  2136. decl_var INTERP_MODE_NONE none int const_temp#274
  2137. decl_var INTERP_MODE_NONE none vec3 normal#275
  2138. decl_var INTERP_MODE_NONE none vec4 compiler_temp#276
  2139. decl_var INTERP_MODE_NONE none float const_temp#277
  2140. decl_var INTERP_MODE_NONE none float const_temp#278
  2141. decl_var INTERP_MODE_NONE none float compiler_temp#279
  2142. decl_var INTERP_MODE_NONE none float compiler_temp#280
  2143. decl_var INTERP_MODE_NONE none float compiler_temp#281
  2144. decl_var INTERP_MODE_NONE none float const_temp#282
  2145. decl_var INTERP_MODE_NONE none float const_temp#283
  2146. decl_var INTERP_MODE_NONE none int const_temp#284
  2147. decl_var INTERP_MODE_NONE none int const_temp#285
  2148. decl_var INTERP_MODE_NONE none int layer#286
  2149. decl_var INTERP_MODE_NONE none vec3 tileScale#287
  2150. decl_var INTERP_MODE_NONE none vec2 tile#288
  2151. decl_var INTERP_MODE_NONE none vec2 compiler_temp#289
  2152. decl_var INTERP_MODE_NONE none vec2 compiler_temp#290
  2153. decl_var INTERP_MODE_NONE none float const_temp#291
  2154. decl_var INTERP_MODE_NONE none float const_temp#292
  2155. decl_var INTERP_MODE_NONE none float const_temp#293
  2156. decl_var INTERP_MODE_NONE none vec3 compiler_temp#294
  2157. decl_var INTERP_MODE_NONE none vec3 const_temp#295
  2158. decl_var INTERP_MODE_NONE none int compiler_temp#296
  2159. decl_var INTERP_MODE_NONE none int const_temp#297
  2160. decl_var INTERP_MODE_NONE none int i#298
  2161. decl_var INTERP_MODE_NONE none uvec4 idxs#299
  2162. decl_var INTERP_MODE_NONE none vec3 compiler_temp#300
  2163. decl_var INTERP_MODE_NONE none float const_temp#301
  2164. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#302
  2165. decl_var INTERP_MODE_NONE none uvec4 return_tmp#303
  2166. decl_var INTERP_MODE_NONE none vec3 param#304
  2167. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#305
  2168. decl_var INTERP_MODE_NONE none int compiler_temp#306
  2169. decl_var INTERP_MODE_NONE none int const_temp#307
  2170. decl_var INTERP_MODE_NONE none int idx#308
  2171. decl_var INTERP_MODE_NONE none int compiler_temp#309
  2172. decl_var INTERP_MODE_NONE none int return_tmp#310
  2173. decl_var INTERP_MODE_NONE none uvec4 param#311
  2174. decl_var INTERP_MODE_NONE none int compiler_temp#312
  2175. decl_var INTERP_MODE_NONE none int param#313
  2176. decl_var INTERP_MODE_NONE none vec3 param#314
  2177. decl_var INTERP_MODE_NONE none vec3 param#315
  2178. decl_var INTERP_MODE_NONE none vec3 param#316
  2179. decl_var INTERP_MODE_NONE none vec4 param#317
  2180. decl_var INTERP_MODE_NONE none vec4 param#318
  2181. decl_var INTERP_MODE_NONE none vec4 param#319
  2182. decl_var INTERP_MODE_NONE none int const_temp#320
  2183. decl_var INTERP_MODE_NONE none int const_temp#321
  2184. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#322
  2185. decl_var INTERP_MODE_NONE none uvec4 tmp#323
  2186. decl_var INTERP_MODE_NONE none uvec4 compiler_temp#324
  2187. decl_var INTERP_MODE_NONE none uvec4 const_temp#325
  2188. decl_var INTERP_MODE_NONE none uvec4 const_temp#326
  2189. decl_var INTERP_MODE_NONE none int const_temp#327
  2190. decl_var INTERP_MODE_NONE none float attenuation#328
  2191. decl_var INTERP_MODE_NONE none vec3 L#329
  2192. decl_var INTERP_MODE_NONE none vec4 color_type#330
  2193. decl_var INTERP_MODE_NONE none vec4 center_radius#331
  2194. decl_var INTERP_MODE_NONE none vec4 compiler_temp#332
  2195. decl_var INTERP_MODE_NONE none vec4 compiler_temp#333
  2196. decl_var INTERP_MODE_NONE none float const_temp#334
  2197. decl_var INTERP_MODE_NONE none float t#335
  2198. decl_var INTERP_MODE_NONE none float compiler_temp#336
  2199. decl_var INTERP_MODE_NONE none float compiler_temp#337
  2200. decl_var INTERP_MODE_NONE none float const_temp#338
  2201. decl_var INTERP_MODE_NONE none float const_temp#339
  2202. decl_var INTERP_MODE_NONE none float const_temp#340
  2203. decl_var INTERP_MODE_NONE none vec3 compiler_temp#341
  2204. decl_var INTERP_MODE_NONE none float const_temp#342
  2205. decl_var INTERP_MODE_NONE none float t#343
  2206. decl_var INTERP_MODE_NONE none vec4 direction_angle#344
  2207. decl_var INTERP_MODE_NONE none vec4 compiler_temp#345
  2208. decl_var INTERP_MODE_NONE none float compiler_temp#346
  2209. decl_var INTERP_MODE_NONE none float compiler_temp#347
  2210. decl_var INTERP_MODE_NONE none float const_temp#348
  2211. decl_var INTERP_MODE_NONE none float const_temp#349
  2212. decl_var INTERP_MODE_NONE none float const_temp#350
  2213. decl_var INTERP_MODE_NONE none vec3 compiler_temp#351
  2214. decl_var INTERP_MODE_NONE none float compiler_temp#352
  2215. decl_var INTERP_MODE_NONE none float const_temp#353
  2216. decl_var INTERP_MODE_NONE none float const_temp#354
  2217. decl_var INTERP_MODE_NONE none float const_temp#355
  2218. decl_var INTERP_MODE_NONE none vec3 param#356
  2219. decl_var INTERP_MODE_NONE none vec3 param#357
  2220. decl_var INTERP_MODE_NONE none vec3 param#358
  2221. decl_var INTERP_MODE_NONE none vec3 param#359
  2222. decl_var INTERP_MODE_NONE none vec4 param#360
  2223. decl_var INTERP_MODE_NONE none vec4 param#361
  2224. decl_var INTERP_MODE_NONE none vec4 param#362
  2225. decl_var INTERP_MODE_NONE none float NdotL#363
  2226. decl_var INTERP_MODE_NONE none float NdotH#364
  2227. decl_var INTERP_MODE_NONE none vec3 H#365
  2228. decl_var INTERP_MODE_NONE none vec3 compiler_temp#366
  2229. decl_var INTERP_MODE_NONE none vec3 compiler_temp#367
  2230. decl_var INTERP_MODE_NONE none float compiler_temp#368
  2231. decl_var INTERP_MODE_NONE none float compiler_temp#369
  2232. decl_var INTERP_MODE_NONE none float compiler_temp#370
  2233. decl_var INTERP_MODE_NONE none float compiler_temp#371
  2234. decl_var INTERP_MODE_NONE none float compiler_temp#372
  2235. decl_var INTERP_MODE_NONE none float const_temp#373
  2236. decl_var INTERP_MODE_NONE none float const_temp#374
  2237. decl_var INTERP_MODE_NONE none float compiler_temp#375
  2238. decl_var INTERP_MODE_NONE none float compiler_temp#376
  2239. decl_var INTERP_MODE_NONE none float const_temp#377
  2240. con block b0: // preds:
  2241. 32 %0 = deref_var &const_temp#190 (function_temp int)
  2242. 32 %1 = load_const (0x00000100 = 256)
  2243. @store_deref (%0, %1 (0x100)) (wrmask=x, access=none)
  2244. 32 %2 = deref_var &const_temp#191 (function_temp float)
  2245. 32 %3 = load_const (0x40400000 = 3.000000)
  2246. @store_deref (%2, %3 (3.000000)) (wrmask=x, access=none)
  2247. 32 %4 = deref_var &const_temp#192 (function_temp int)
  2248. 32 %5 = load_const (0x00000010 = 16)
  2249. @store_deref (%4, %5 (0x10)) (wrmask=x, access=none)
  2250. 32 %6 = deref_var &const_temp#193 (function_temp int)
  2251. 32 %7 = load_const (0x00000004)
  2252. @store_deref (%6, %7 (0x4)) (wrmask=x, access=none)
  2253. 32 %8 = deref_var &const_temp#195 (function_temp bool)
  2254. 1 %9 = load_const (true)
  2255. @store_deref (%8, %9 (true)) (wrmask=x, access=none)
  2256. 32 %10 = deref_var &const_temp#197 (function_temp bool)
  2257. 1 %11 = load_const (false)
  2258. @store_deref (%10, %11 (false)) (wrmask=x, access=none)
  2259. 32 %12 = deref_var &color (function_temp vec4)
  2260. 32x4 %13 = load_const (0x00000000, 0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000, 0.000000)
  2261. @store_deref (%12, %13 (0.000000, 0.000000, 0.000000, 0.000000)) (wrmask=xyzw, access=none)
  2262. 32 %14 = deref_var &const_temp#222 (function_temp uint)
  2263. 32 %15 = load_const (0x00000000)
  2264. @store_deref (%14, %15 (0x0)) (wrmask=x, access=none)
  2265. 32 %16 = deref_var &const_temp#224 (function_temp uint)
  2266. 32 %17 = load_const (0x00000001)
  2267. @store_deref (%16, %17 (0x1)) (wrmask=x, access=none)
  2268. 32 %18 = deref_var &const_temp#226 (function_temp uint)
  2269. 32 %19 = load_const (0x00000002)
  2270. @store_deref (%18, %19 (0x2)) (wrmask=x, access=none)
  2271. 32 %20 = deref_var &const_temp#231 (function_temp float)
  2272. 32 %21 = load_const (0x3f800000 = 1.000000)
  2273. @store_deref (%20, %21 (1.000000)) (wrmask=x, access=none)
  2274. 32 %22 = deref_var &const_temp#232 (function_temp bool)
  2275. 1 %23 = load_const (true)
  2276. @store_deref (%22, %23 (true)) (wrmask=x, access=none)
  2277. 32 %24 = deref_var &const_temp#233 (function_temp bool)
  2278. 1 %25 = load_const (false)
  2279. @store_deref (%24, %25 (false)) (wrmask=x, access=none)
  2280. 32 %26 = deref_var &const_temp#243 (function_temp vec3)
  2281. 32x3 %27 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  2282. @store_deref (%26, %27 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  2283. 32 %28 = deref_var &const_temp#253 (function_temp int)
  2284. 32 %29 = load_const (0x00000000)
  2285. @store_deref (%28, %29 (0x0)) (wrmask=x, access=none)
  2286. 32 %30 = deref_var &const_temp#256 (function_temp int)
  2287. 32 %31 = load_const (0x00000000)
  2288. @store_deref (%30, %31 (0x0)) (wrmask=x, access=none)
  2289. 32 %32 = deref_var &MAX_GLSL_BONES (shader_temp int)
  2290. 32 %33 = load_const (0x00000100 = 256)
  2291. @store_deref (%32, %33 (0x100)) (wrmask=x, access=none)
  2292. 32 %34 = deref_var &r_RimExponent (shader_temp float)
  2293. 32 %35 = load_const (0x40400000 = 3.000000)
  2294. @store_deref (%34, %35 (3.000000)) (wrmask=x, access=none)
  2295. 32 %36 = deref_var &lightsPerLayer (shader_temp int)
  2296. 32 %37 = load_const (0x00000010 = 16)
  2297. @store_deref (%36, %37 (0x10)) (wrmask=x, access=none)
  2298. 32 %38 = deref_var &numLayers (shader_temp int)
  2299. 32 %39 = load_const (0x00000004)
  2300. @store_deref (%38, %39 (0x4)) (wrmask=x, access=none)
  2301. 32 %40 = deref_var &compiler_temp#189 (function_temp int)
  2302. 32 %41 = deref_var &const_temp#190 (function_temp int)
  2303. @copy_deref (%40, %41) (dst_access=0, src_access=0)
  2304. 32 %42 = deref_var &MAX_GLSL_BONES (shader_temp int)
  2305. 32 %43 = deref_var &compiler_temp#189 (function_temp int)
  2306. @copy_deref (%42, %43) (dst_access=0, src_access=0)
  2307. 32 %44 = deref_var &compiler_temp#188 (function_temp float)
  2308. 32 %45 = deref_var &const_temp#191 (function_temp float)
  2309. @copy_deref (%44, %45) (dst_access=0, src_access=0)
  2310. 32 %46 = deref_var &r_RimExponent (shader_temp float)
  2311. 32 %47 = deref_var &compiler_temp#188 (function_temp float)
  2312. @copy_deref (%46, %47) (dst_access=0, src_access=0)
  2313. 32 %48 = deref_var &compiler_temp#187 (function_temp int)
  2314. 32 %49 = deref_var &const_temp#192 (function_temp int)
  2315. @copy_deref (%48, %49) (dst_access=0, src_access=0)
  2316. 32 %50 = deref_var &lightsPerLayer (shader_temp int)
  2317. 32 %51 = deref_var &compiler_temp#187 (function_temp int)
  2318. @copy_deref (%50, %51) (dst_access=0, src_access=0)
  2319. 32 %52 = deref_var &compiler_temp#186 (function_temp int)
  2320. 32 %53 = deref_var &const_temp#193 (function_temp int)
  2321. @copy_deref (%52, %53) (dst_access=0, src_access=0)
  2322. 32 %54 = deref_var &numLayers (shader_temp int)
  2323. 32 %55 = deref_var &compiler_temp#186 (function_temp int)
  2324. @copy_deref (%54, %55) (dst_access=0, src_access=0)
  2325. 32 %56 = deref_var &compiler_temp#194 (function_temp bool)
  2326. 32 %57 = deref_var &const_temp#195 (function_temp bool)
  2327. @copy_deref (%56, %57) (dst_access=0, src_access=0)
  2328. 32 %58 = deref_var &compiler_temp#196 (function_temp bool)
  2329. 32 %59 = deref_var &const_temp#197 (function_temp bool)
  2330. @copy_deref (%58, %59) (dst_access=0, src_access=0)
  2331. 32 %60 = deref_var &compiler_temp#200 (function_temp usampler3D)
  2332. 32 %61 = deref_var &in_baseInstance (shader_in int)
  2333. 32 %62 = @load_deref (%61) (access=none)
  2334. 32 %63 = deref_var &materials (ssbo Material[])
  2335. 32 %64 = deref_array &(*%63)[%62] (ssbo Material) // &materials[%62]
  2336. 32 %65 = deref_struct &%64->u_LightTilesInt (ssbo uvec2) // &materials[%62].u_LightTilesInt
  2337. 32x2 %66 = @load_deref (%65) (access=readonly)
  2338. 64 %67 = pack_64_2x32 %66
  2339. @store_deref (%60, %67) (wrmask=x, access=none)
  2340. 32 %68 = deref_var &u_LightTilesInt (function_temp usampler3D)
  2341. 32 %69 = deref_var &compiler_temp#200 (function_temp usampler3D)
  2342. @copy_deref (%68, %69) (dst_access=0, src_access=0)
  2343. 32 %70 = deref_var &compiler_temp#202 (function_temp sampler2D)
  2344. 32 %71 = deref_var &in_baseInstance (shader_in int)
  2345. 32 %72 = @load_deref (%71) (access=none)
  2346. 32 %73 = deref_var &materials (ssbo Material[])
  2347. 32 %74 = deref_array &(*%73)[%72] (ssbo Material) // &materials[%72]
  2348. 32 %75 = deref_struct &%74->u_DiffuseMap (ssbo uvec2) // &materials[%72].u_DiffuseMap
  2349. 32x2 %76 = @load_deref (%75) (access=readonly)
  2350. 64 %77 = pack_64_2x32 %76
  2351. @store_deref (%70, %77) (wrmask=x, access=none)
  2352. 32 %78 = deref_var &u_DiffuseMap (function_temp sampler2D)
  2353. 32 %79 = deref_var &compiler_temp#202 (function_temp sampler2D)
  2354. @copy_deref (%78, %79) (dst_access=0, src_access=0)
  2355. 32 %80 = deref_var &compiler_temp#204 (function_temp sampler2D)
  2356. 32 %81 = deref_var &in_baseInstance (shader_in int)
  2357. 32 %82 = @load_deref (%81) (access=none)
  2358. 32 %83 = deref_var &materials (ssbo Material[])
  2359. 32 %84 = deref_array &(*%83)[%82] (ssbo Material) // &materials[%82]
  2360. 32 %85 = deref_struct &%84->u_MaterialMap (ssbo uvec2) // &materials[%82].u_MaterialMap
  2361. 32x2 %86 = @load_deref (%85) (access=readonly)
  2362. 64 %87 = pack_64_2x32 %86
  2363. @store_deref (%80, %87) (wrmask=x, access=none)
  2364. 32 %88 = deref_var &u_MaterialMap (function_temp sampler2D)
  2365. 32 %89 = deref_var &compiler_temp#204 (function_temp sampler2D)
  2366. @copy_deref (%88, %89) (dst_access=0, src_access=0)
  2367. 32 %90 = deref_var &compiler_temp#206 (function_temp sampler2D)
  2368. 32 %91 = deref_var &in_baseInstance (shader_in int)
  2369. 32 %92 = @load_deref (%91) (access=none)
  2370. 32 %93 = deref_var &materials (ssbo Material[])
  2371. 32 %94 = deref_array &(*%93)[%92] (ssbo Material) // &materials[%92]
  2372. 32 %95 = deref_struct &%94->u_GlowMap (ssbo uvec2) // &materials[%92].u_GlowMap
  2373. 32x2 %96 = @load_deref (%95) (access=readonly)
  2374. 64 %97 = pack_64_2x32 %96
  2375. @store_deref (%90, %97) (wrmask=x, access=none)
  2376. 32 %98 = deref_var &u_GlowMap (function_temp sampler2D)
  2377. 32 %99 = deref_var &compiler_temp#206 (function_temp sampler2D)
  2378. @copy_deref (%98, %99) (dst_access=0, src_access=0)
  2379. 32 %100 = deref_var &compiler_temp#208 (function_temp sampler2D)
  2380. 32 %101 = deref_var &in_baseInstance (shader_in int)
  2381. 32 %102 = @load_deref (%101) (access=none)
  2382. 32 %103 = deref_var &materials (ssbo Material[])
  2383. 32 %104 = deref_array &(*%103)[%102] (ssbo Material) // &materials[%102]
  2384. 32 %105 = deref_struct &%104->u_LightMap (ssbo uvec2) // &materials[%102].u_LightMap
  2385. 32x2 %106 = @load_deref (%105) (access=readonly)
  2386. 64 %107 = pack_64_2x32 %106
  2387. @store_deref (%100, %107) (wrmask=x, access=none)
  2388. 32 %108 = deref_var &u_LightMap (function_temp sampler2D)
  2389. 32 %109 = deref_var &compiler_temp#208 (function_temp sampler2D)
  2390. @copy_deref (%108, %109) (dst_access=0, src_access=0)
  2391. 32 %110 = deref_var &compiler_temp#210 (function_temp sampler3D)
  2392. 32 %111 = deref_var &in_baseInstance (shader_in int)
  2393. 32 %112 = @load_deref (%111) (access=none)
  2394. 32 %113 = deref_var &materials (ssbo Material[])
  2395. 32 %114 = deref_array &(*%113)[%112] (ssbo Material) // &materials[%112]
  2396. 32 %115 = deref_struct &%114->u_LightGrid1 (ssbo uvec2) // &materials[%112].u_LightGrid1
  2397. 32x2 %116 = @load_deref (%115) (access=readonly)
  2398. 64 %117 = pack_64_2x32 %116
  2399. @store_deref (%110, %117) (wrmask=x, access=none)
  2400. 32 %118 = deref_var &compiler_temp#212 (function_temp sampler2D)
  2401. 32 %119 = deref_var &in_baseInstance (shader_in int)
  2402. 32 %120 = @load_deref (%119) (access=none)
  2403. 32 %121 = deref_var &materials (ssbo Material[])
  2404. 32 %122 = deref_array &(*%121)[%120] (ssbo Material) // &materials[%120]
  2405. 32 %123 = deref_struct &%122->u_DeluxeMap (ssbo uvec2) // &materials[%120].u_DeluxeMap
  2406. 32x2 %124 = @load_deref (%123) (access=readonly)
  2407. 64 %125 = pack_64_2x32 %124
  2408. @store_deref (%118, %125) (wrmask=x, access=none)
  2409. 32 %126 = deref_var &compiler_temp#214 (function_temp sampler3D)
  2410. 32 %127 = deref_var &in_baseInstance (shader_in int)
  2411. 32 %128 = @load_deref (%127) (access=none)
  2412. 32 %129 = deref_var &materials (ssbo Material[])
  2413. 32 %130 = deref_array &(*%129)[%128] (ssbo Material) // &materials[%128]
  2414. 32 %131 = deref_struct &%130->u_LightGrid2 (ssbo uvec2) // &materials[%128].u_LightGrid2
  2415. 32x2 %132 = @load_deref (%131) (access=readonly)
  2416. 64 %133 = pack_64_2x32 %132
  2417. @store_deref (%126, %133) (wrmask=x, access=none)
  2418. 32 %134 = deref_var &compiler_temp#216 (function_temp sampler2D)
  2419. 32 %135 = deref_var &in_baseInstance (shader_in int)
  2420. 32 %136 = @load_deref (%135) (access=none)
  2421. 32 %137 = deref_var &materials (ssbo Material[])
  2422. 32 %138 = deref_array &(*%137)[%136] (ssbo Material) // &materials[%136]
  2423. 32 %139 = deref_struct &%138->u_NormalMap (ssbo uvec2) // &materials[%136].u_NormalMap
  2424. 32x2 %140 = @load_deref (%139) (access=readonly)
  2425. 64 %141 = pack_64_2x32 %140
  2426. @store_deref (%134, %141) (wrmask=x, access=none)
  2427. 32 %142 = deref_var &u_NormalMap (function_temp sampler2D)
  2428. 32 %143 = deref_var &compiler_temp#216 (function_temp sampler2D)
  2429. @copy_deref (%142, %143) (dst_access=0, src_access=0)
  2430. 32 %144 = deref_var &viewDir (function_temp vec3)
  2431. 32 %145 = deref_var &u_ViewOrigin (uniform vec3)
  2432. 32x3 %146 = @load_deref (%145) (access=none)
  2433. 32 %147 = deref_var &var_Position (shader_in vec3)
  2434. 32x3 %148 = @load_deref (%147) (access=none)
  2435. 32x3 %149 = fsub %146, %148
  2436. 32 %150 = deref_var &u_ViewOrigin (uniform vec3)
  2437. 32x3 %151 = @load_deref (%150) (access=none)
  2438. 32 %152 = deref_var &var_Position (shader_in vec3)
  2439. 32x3 %153 = @load_deref (%152) (access=none)
  2440. 32x3 %154 = fsub %151, %153
  2441. 32 %155 = deref_var &u_ViewOrigin (uniform vec3)
  2442. 32x3 %156 = @load_deref (%155) (access=none)
  2443. 32 %157 = deref_var &var_Position (shader_in vec3)
  2444. 32x3 %158 = @load_deref (%157) (access=none)
  2445. 32x3 %159 = fsub %156, %158
  2446. 32 %160 = fdot3 %154, %159
  2447. 32 %161 = frsq %160
  2448. 32x3 %162 = fmul %149, %161.xxx
  2449. @store_deref (%144, %162) (wrmask=xyz, access=none)
  2450. 32 %163 = deref_var &texCoords (function_temp vec2)
  2451. 32 %164 = deref_var &var_TexCoords (shader_in vec2)
  2452. @copy_deref (%163, %164) (dst_access=0, src_access=0)
  2453. 32 %165 = deref_var &const_temp#222 (function_temp uint)
  2454. 32 %166 = @load_deref (%165) (access=none)
  2455. 32 %167 = deref_var &compiler_temp#220 (function_temp mat3)
  2456. 32 %168 = deref_array &(*%167)[%166] (function_temp vec3) // &compiler_temp#220[%166]
  2457. 32 %169 = deref_var &var_Tangent (shader_in vec3)
  2458. 32x3 %170 = @load_deref (%169) (access=none)
  2459. @store_deref (%168, %170) (wrmask=xyz, access=none)
  2460. 32 %171 = deref_var &const_temp#224 (function_temp uint)
  2461. 32 %172 = @load_deref (%171) (access=none)
  2462. 32 %173 = deref_var &compiler_temp#220 (function_temp mat3)
  2463. 32 %174 = deref_array &(*%173)[%172] (function_temp vec3) // &compiler_temp#220[%172]
  2464. 32 %175 = deref_var &var_Binormal (shader_in vec3)
  2465. 32x3 %176 = @load_deref (%175) (access=none)
  2466. @store_deref (%174, %176) (wrmask=xyz, access=none)
  2467. 32 %177 = deref_var &const_temp#226 (function_temp uint)
  2468. 32 %178 = @load_deref (%177) (access=none)
  2469. 32 %179 = deref_var &compiler_temp#220 (function_temp mat3)
  2470. 32 %180 = deref_array &(*%179)[%178] (function_temp vec3) // &compiler_temp#220[%178]
  2471. 32 %181 = deref_var &var_Normal (shader_in vec3)
  2472. 32x3 %182 = @load_deref (%181) (access=none)
  2473. @store_deref (%180, %182) (wrmask=xyz, access=none)
  2474. 32 %183 = deref_var &tangentToWorldMatrix (function_temp mat3)
  2475. 32 %184 = deref_var &compiler_temp#220 (function_temp mat3)
  2476. @copy_deref (%183, %184) (dst_access=0, src_access=0)
  2477. 32 %185 = deref_var &diffuse (function_temp vec4)
  2478. 32 %186 = deref_var &u_DiffuseMap (function_temp sampler2D)
  2479. 64 %187 = @load_deref (%186) (access=none)
  2480. 32 %188 = deref_var &texCoords (function_temp vec2)
  2481. 32x2 %189 = @load_deref (%188) (access=none)
  2482. 32x4 %190 = (float32)tex %187 (texture_handle), %187 (sampler_handle), %189 (coord), 0 (texture), 0 (sampler)
  2483. @store_deref (%185, %190) (wrmask=xyzw, access=none)
  2484. 32 %191 = deref_var &diffuse (function_temp vec4)
  2485. 32 %192 = deref_var &diffuse (function_temp vec4)
  2486. 32x4 %193 = @load_deref (%192) (access=none)
  2487. 32 %194 = deref_var &var_Color (shader_in vec4)
  2488. 32x4 %195 = @load_deref (%194) (access=none)
  2489. 32x4 %196 = fmul %193, %195
  2490. @store_deref (%191, %196) (wrmask=xyzw, access=none)
  2491. 32 %197 = deref_var &compiler_temp#230 (function_temp float)
  2492. 32 %198 = deref_var &diffuse (function_temp vec4)
  2493. 32x4 %199 = @load_deref (%198) (access=none)
  2494. 32 %200 = mov %199.w
  2495. 32 %201 = deref_var &in_baseInstance (shader_in int)
  2496. 32 %202 = @load_deref (%201) (access=none)
  2497. 32 %203 = deref_var &materials (ssbo Material[])
  2498. 32 %204 = deref_array &(*%203)[%202] (ssbo Material) // &materials[%202]
  2499. 32 %205 = deref_struct &%204->u_AlphaThreshold (ssbo float) // &materials[%202].u_AlphaThreshold
  2500. 32 %206 = @load_deref (%205) (access=readonly)
  2501. 32 %207 = fadd %200, %206
  2502. 32 %208 = fabs %207
  2503. @store_deref (%197, %208) (wrmask=x, access=none)
  2504. 32 %209 = deref_var &const_temp#231 (function_temp float)
  2505. 32 %210 = @load_deref (%209) (access=none)
  2506. 32 %211 = deref_var &compiler_temp#230 (function_temp float)
  2507. 32 %212 = @load_deref (%211) (access=none)
  2508. 1 %213 = fge %210, %212
  2509. // succs: b1 b2
  2510. if %213 {
  2511. con block b1: // preds: b0
  2512. @discard
  2513. 32 %214 = deref_var &compiler_temp#196 (function_temp bool)
  2514. 32 %215 = deref_var &const_temp#232 (function_temp bool)
  2515. @copy_deref (%214, %215) (dst_access=0, src_access=0)
  2516. 32 %216 = deref_var &compiler_temp#194 (function_temp bool)
  2517. 32 %217 = deref_var &const_temp#233 (function_temp bool)
  2518. @copy_deref (%216, %217) (dst_access=0, src_access=0)
  2519. // succs: b37
  2520. } else {
  2521. con block b2: // preds: b0
  2522. 32 %218 = deref_var &return_tmp#235 (function_temp vec3)
  2523. 32 %219 = deref_var &param#236 (function_temp vec2)
  2524. 32 %220 = deref_var &texCoords (function_temp vec2)
  2525. 32x2 %221 = @load_deref (%220) (access=none)
  2526. @store_deref (%219, %221) (wrmask=xy, access=none)
  2527. 32 %222 = deref_var &param#237 (function_temp mat3)
  2528. 32 %223 = deref_var &tangentToWorldMatrix (function_temp mat3)
  2529. @copy_deref (%222, %223) (dst_access=0, src_access=0)
  2530. 32 %224 = deref_var &u_NormalMap (function_temp sampler2D)
  2531. 32 %225 = deref_var &const_temp#264 (function_temp int)
  2532. 32 %226 = load_const (0x00000000)
  2533. @store_deref (%225, %226 (0x0)) (wrmask=x, access=none)
  2534. 32 %227 = deref_var &const_temp#265 (function_temp int)
  2535. 32 %228 = load_const (0x00000001)
  2536. @store_deref (%227, %228 (0x1)) (wrmask=x, access=none)
  2537. 32 %229 = deref_var &const_temp#266 (function_temp int)
  2538. 32 %230 = load_const (0x00000002)
  2539. @store_deref (%229, %230 (0x2)) (wrmask=x, access=none)
  2540. 32 %231 = deref_var &const_temp#268 (function_temp int)
  2541. 32 %232 = load_const (0x00000000)
  2542. @store_deref (%231, %232 (0x0)) (wrmask=x, access=none)
  2543. 32 %233 = deref_var &const_temp#269 (function_temp int)
  2544. 32 %234 = load_const (0x00000001)
  2545. @store_deref (%233, %234 (0x1)) (wrmask=x, access=none)
  2546. 32 %235 = deref_var &const_temp#270 (function_temp int)
  2547. 32 %236 = load_const (0x00000002)
  2548. @store_deref (%235, %236 (0x2)) (wrmask=x, access=none)
  2549. 32 %237 = deref_var &const_temp#272 (function_temp int)
  2550. 32 %238 = load_const (0x00000000)
  2551. @store_deref (%237, %238 (0x0)) (wrmask=x, access=none)
  2552. 32 %239 = deref_var &const_temp#273 (function_temp int)
  2553. 32 %240 = load_const (0x00000001)
  2554. @store_deref (%239, %240 (0x1)) (wrmask=x, access=none)
  2555. 32 %241 = deref_var &const_temp#274 (function_temp int)
  2556. 32 %242 = load_const (0x00000002)
  2557. @store_deref (%241, %242 (0x2)) (wrmask=x, access=none)
  2558. 32 %243 = deref_var &return_tmp#259 (function_temp vec3)
  2559. 32 %244 = deref_var &param#260 (function_temp vec2)
  2560. 32 %245 = deref_cast (vec2 *)%219 (function_temp vec2) (ptr_stride=0, align_mul=0, align_offset=0)
  2561. 32x2 %246 = @load_deref (%245) (access=none)
  2562. @store_deref (%244, %246) (wrmask=xy, access=none)
  2563. 32 %247 = deref_cast (sampler2D *)%224 (uniform sampler2D) (ptr_stride=0, align_mul=0, align_offset=0)
  2564. error: instr->modes & parent->modes (../src/compiler/nir/nir_validate.c:334)
  2565.  
  2566. 32 %248 = deref_var &normal#275 (function_temp vec3)
  2567. 32x3 %249 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  2568. @store_deref (%248, %249 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  2569. 32 %250 = deref_var &const_temp#277 (function_temp float)
  2570. 32 %251 = load_const (0x40000000 = 2.000000)
  2571. @store_deref (%250, %251 (2.000000)) (wrmask=x, access=none)
  2572. 32 %252 = deref_var &const_temp#278 (function_temp float)
  2573. 32 %253 = load_const (0x3f800000 = 1.000000)
  2574. @store_deref (%252, %253 (1.000000)) (wrmask=x, access=none)
  2575. 32 %254 = deref_var &const_temp#282 (function_temp float)
  2576. 32 %255 = load_const (0x00000000 = 0.000000)
  2577. @store_deref (%254, %255 (0.000000)) (wrmask=x, access=none)
  2578. 32 %256 = deref_var &const_temp#283 (function_temp float)
  2579. 32 %257 = load_const (0x3f800000 = 1.000000)
  2580. @store_deref (%256, %257 (1.000000)) (wrmask=x, access=none)
  2581. 32 %258 = deref_var &const_temp#284 (function_temp int)
  2582. 32 %259 = load_const (0x00000000)
  2583. @store_deref (%258, %259 (0x0)) (wrmask=x, access=none)
  2584. 32 %260 = deref_var &const_temp#285 (function_temp int)
  2585. 32 %261 = load_const (0x00000001)
  2586. @store_deref (%260, %261 (0x1)) (wrmask=x, access=none)
  2587. 32 %262 = deref_var &normal#275 (function_temp vec3)
  2588. 32 %263 = deref_cast (sampler2D *)%247 (uniform sampler2D) (ptr_stride=0, align_mul=0, align_offset=0)
  2589. 32 %264 = deref_cast (vec2 *)%244 (function_temp vec2) (ptr_stride=0, align_mul=0, align_offset=0)
  2590. 32x2 %265 = @load_deref (%264) (access=none)
  2591. 32x4 %266 = (float32)tex %263 (texture_deref), %263 (sampler_deref), %265 (coord)
  2592. 32x3 %267 = mov %266.xyw
  2593. @store_deref (%262, %267) (wrmask=xyz, access=none)
  2594. 32 %268 = deref_var &normal#275 (function_temp vec3)
  2595. 32 %269 = deref_var &normal#275 (function_temp vec3)
  2596. 32x3 %270 = @load_deref (%269) (access=none)
  2597. 32 %271 = mov %270.x
  2598. 32 %272 = deref_var &normal#275 (function_temp vec3)
  2599. 32x3 %273 = @load_deref (%272) (access=none)
  2600. 32 %274 = mov %273.z
  2601. 32 %275 = fmul %271, %274
  2602. 32x3 %276 = mov %275.xxx
  2603. 32 %277 = mov %276.x
  2604. 32x3 %278 = mov %277.xxx
  2605. @store_deref (%268, %278) (wrmask=x, access=none)
  2606. 32 %279 = deref_var &normal#275 (function_temp vec3)
  2607. 32 %280 = deref_var &const_temp#277 (function_temp float)
  2608. 32 %281 = @load_deref (%280) (access=none)
  2609. 32 %282 = deref_var &normal#275 (function_temp vec3)
  2610. 32x3 %283 = @load_deref (%282) (access=none)
  2611. 32x2 %284 = mov %283.xy
  2612. 32x2 %285 = fmul %281.xx, %284
  2613. 32 %286 = deref_var &const_temp#278 (function_temp float)
  2614. 32 %287 = @load_deref (%286) (access=none)
  2615. 32x2 %288 = fsub %285, %287.xx
  2616. 32x3 %289 = mov %288.xyx
  2617. 32x2 %290 = mov %289.xy
  2618. 32x3 %291 = mov %290.xyx
  2619. @store_deref (%279, %291) (wrmask=xy, access=none)
  2620. 32 %292 = deref_var &normal#275 (function_temp vec3)
  2621. 32 %293 = deref_var &const_temp#282 (function_temp float)
  2622. 32 %294 = @load_deref (%293) (access=none)
  2623. 32 %295 = deref_var &const_temp#283 (function_temp float)
  2624. 32 %296 = @load_deref (%295) (access=none)
  2625. 32 %297 = deref_var &normal#275 (function_temp vec3)
  2626. 32x3 %298 = @load_deref (%297) (access=none)
  2627. 32x2 %299 = mov %298.xy
  2628. 32 %300 = deref_var &normal#275 (function_temp vec3)
  2629. 32x3 %301 = @load_deref (%300) (access=none)
  2630. 32x2 %302 = mov %301.xy
  2631. 32 %303 = fdot2 %299, %302
  2632. 32 %304 = fsub %296, %303
  2633. 32 %305 = fmax %294, %304
  2634. 32 %306 = fsqrt %305
  2635. 32x3 %307 = mov %306.xxx
  2636. 32 %308 = mov %307.z
  2637. 32x3 %309 = mov %308.xxx
  2638. @store_deref (%292, %309) (wrmask=z, access=none)
  2639. 32 %310 = deref_var &in_baseInstance (shader_in int)
  2640. 32 %311 = @load_deref (%310) (access=none)
  2641. 32 %312 = deref_var &materials (ssbo Material[])
  2642. 32 %313 = deref_array &(*%312)[%311] (ssbo Material) // &materials[%311]
  2643. 32 %314 = deref_struct &%313->u_NormalScale (ssbo vec3) // &materials[%311].u_NormalScale
  2644. 32x3 %315 = @load_deref (%314) (access=readonly)
  2645. 32 %316 = mov %315.z
  2646. 32 %317 = deref_var &const_temp#284 (function_temp int)
  2647. 32 %318 = @load_deref (%317) (access=none)
  2648. 32 %319 = i2f32 %318
  2649. 1 %320 = fneu %316, %319
  2650. // succs: b3 b4
  2651. if %320 {
  2652. con block b3: // preds: b2
  2653. 32 %321 = deref_var &normal#275 (function_temp vec3)
  2654. 32 %322 = deref_var &normal#275 (function_temp vec3)
  2655. 32x3 %323 = @load_deref (%322) (access=none)
  2656. 32 %324 = deref_var &in_baseInstance (shader_in int)
  2657. 32 %325 = @load_deref (%324) (access=none)
  2658. 32 %326 = deref_var &materials (ssbo Material[])
  2659. 32 %327 = deref_array &(*%326)[%325] (ssbo Material) // &materials[%325]
  2660. 32 %328 = deref_struct &%327->u_NormalScale (ssbo vec3) // &materials[%325].u_NormalScale
  2661. 32x3 %329 = @load_deref (%328) (access=readonly)
  2662. 32x3 %330 = fmul %323, %329
  2663. @store_deref (%321, %330) (wrmask=xyz, access=none)
  2664. // succs: b5
  2665. } else {
  2666. con block b4: // preds: b2, succs: b5
  2667. }
  2668. con block b5: // preds: b3 b4
  2669. 32 %331 = deref_var &normal#275 (function_temp vec3)
  2670. 32 %332 = deref_var &normal#275 (function_temp vec3)
  2671. 32x3 %333 = @load_deref (%332) (access=none)
  2672. 32 %334 = mov %333.y
  2673. 32 %335 = deref_var &const_temp#285 (function_temp int)
  2674. 32 %336 = @load_deref (%335) (access=none)
  2675. 32 %337 = ineg %336
  2676. 32 %338 = i2f32 %337
  2677. 32 %339 = fmul %334, %338
  2678. 32x3 %340 = mov %339.xxx
  2679. 32 %341 = mov %340.y
  2680. 32x3 %342 = mov %341.xxx
  2681. @store_deref (%331, %342) (wrmask=y, access=none)
  2682. 32 %343 = deref_cast (vec3 *)%243 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  2683. 32 %344 = deref_var &normal#275 (function_temp vec3)
  2684. 32x3 %345 = @load_deref (%344) (access=none)
  2685. @store_deref (%343, %345) (wrmask=xyz, access=none)
  2686. 32x3 %346 = @load_deref (%243) (access=none)
  2687. 32 %347 = deref_var &compiler_temp#258 (function_temp vec3)
  2688. @store_deref (%347, %346) (wrmask=xyz, access=none)
  2689. 32 %348 = deref_var &normal#257 (function_temp vec3)
  2690. 32 %349 = deref_var &compiler_temp#258 (function_temp vec3)
  2691. @copy_deref (%348, %349) (dst_access=0, src_access=0)
  2692. 32 %350 = deref_var &compiler_temp#263 (function_temp vec3)
  2693. 32 %351 = deref_var &const_temp#264 (function_temp int)
  2694. 32 %352 = @load_deref (%351) (access=none)
  2695. 32 %353 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2696. 32 %354 = deref_array &(*%353)[%352] (function_temp vec3) // &(*(mat3 *)%222)[%352]
  2697. 32x3 %355 = @load_deref (%354) (access=none)
  2698. 32 %356 = deref_var &normal#257 (function_temp vec3)
  2699. 32x3 %357 = @load_deref (%356) (access=none)
  2700. 32 %358 = mov %357.x
  2701. 32x3 %359 = fmul %355, %358.xxx
  2702. 32 %360 = deref_var &const_temp#265 (function_temp int)
  2703. 32 %361 = @load_deref (%360) (access=none)
  2704. 32 %362 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2705. 32 %363 = deref_array &(*%362)[%361] (function_temp vec3) // &(*(mat3 *)%222)[%361]
  2706. 32x3 %364 = @load_deref (%363) (access=none)
  2707. 32 %365 = deref_var &normal#257 (function_temp vec3)
  2708. 32x3 %366 = @load_deref (%365) (access=none)
  2709. 32 %367 = mov %366.y
  2710. 32x3 %368 = fmul %364, %367.xxx
  2711. 32x3 %369 = fadd %359, %368
  2712. 32 %370 = deref_var &const_temp#266 (function_temp int)
  2713. 32 %371 = @load_deref (%370) (access=none)
  2714. 32 %372 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2715. 32 %373 = deref_array &(*%372)[%371] (function_temp vec3) // &(*(mat3 *)%222)[%371]
  2716. 32x3 %374 = @load_deref (%373) (access=none)
  2717. 32 %375 = deref_var &normal#257 (function_temp vec3)
  2718. 32x3 %376 = @load_deref (%375) (access=none)
  2719. 32 %377 = mov %376.z
  2720. 32x3 %378 = fmul %374, %377.xxx
  2721. 32x3 %379 = fadd %369, %378
  2722. @store_deref (%350, %379) (wrmask=xyz, access=none)
  2723. 32 %380 = deref_var &compiler_temp#267 (function_temp vec3)
  2724. 32 %381 = deref_var &const_temp#268 (function_temp int)
  2725. 32 %382 = @load_deref (%381) (access=none)
  2726. 32 %383 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2727. 32 %384 = deref_array &(*%383)[%382] (function_temp vec3) // &(*(mat3 *)%222)[%382]
  2728. 32x3 %385 = @load_deref (%384) (access=none)
  2729. 32 %386 = deref_var &normal#257 (function_temp vec3)
  2730. 32x3 %387 = @load_deref (%386) (access=none)
  2731. 32 %388 = mov %387.x
  2732. 32x3 %389 = fmul %385, %388.xxx
  2733. 32 %390 = deref_var &const_temp#269 (function_temp int)
  2734. 32 %391 = @load_deref (%390) (access=none)
  2735. 32 %392 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2736. 32 %393 = deref_array &(*%392)[%391] (function_temp vec3) // &(*(mat3 *)%222)[%391]
  2737. 32x3 %394 = @load_deref (%393) (access=none)
  2738. 32 %395 = deref_var &normal#257 (function_temp vec3)
  2739. 32x3 %396 = @load_deref (%395) (access=none)
  2740. 32 %397 = mov %396.y
  2741. 32x3 %398 = fmul %394, %397.xxx
  2742. 32x3 %399 = fadd %389, %398
  2743. 32 %400 = deref_var &const_temp#270 (function_temp int)
  2744. 32 %401 = @load_deref (%400) (access=none)
  2745. 32 %402 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2746. 32 %403 = deref_array &(*%402)[%401] (function_temp vec3) // &(*(mat3 *)%222)[%401]
  2747. 32x3 %404 = @load_deref (%403) (access=none)
  2748. 32 %405 = deref_var &normal#257 (function_temp vec3)
  2749. 32x3 %406 = @load_deref (%405) (access=none)
  2750. 32 %407 = mov %406.z
  2751. 32x3 %408 = fmul %404, %407.xxx
  2752. 32x3 %409 = fadd %399, %408
  2753. @store_deref (%380, %409) (wrmask=xyz, access=none)
  2754. 32 %410 = deref_var &compiler_temp#271 (function_temp vec3)
  2755. 32 %411 = deref_var &const_temp#272 (function_temp int)
  2756. 32 %412 = @load_deref (%411) (access=none)
  2757. 32 %413 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2758. 32 %414 = deref_array &(*%413)[%412] (function_temp vec3) // &(*(mat3 *)%222)[%412]
  2759. 32x3 %415 = @load_deref (%414) (access=none)
  2760. 32 %416 = deref_var &normal#257 (function_temp vec3)
  2761. 32x3 %417 = @load_deref (%416) (access=none)
  2762. 32 %418 = mov %417.x
  2763. 32x3 %419 = fmul %415, %418.xxx
  2764. 32 %420 = deref_var &const_temp#273 (function_temp int)
  2765. 32 %421 = @load_deref (%420) (access=none)
  2766. 32 %422 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2767. 32 %423 = deref_array &(*%422)[%421] (function_temp vec3) // &(*(mat3 *)%222)[%421]
  2768. 32x3 %424 = @load_deref (%423) (access=none)
  2769. 32 %425 = deref_var &normal#257 (function_temp vec3)
  2770. 32x3 %426 = @load_deref (%425) (access=none)
  2771. 32 %427 = mov %426.y
  2772. 32x3 %428 = fmul %424, %427.xxx
  2773. 32x3 %429 = fadd %419, %428
  2774. 32 %430 = deref_var &const_temp#274 (function_temp int)
  2775. 32 %431 = @load_deref (%430) (access=none)
  2776. 32 %432 = deref_cast (mat3 *)%222 (function_temp mat3) (ptr_stride=0, align_mul=0, align_offset=0)
  2777. 32 %433 = deref_array &(*%432)[%431] (function_temp vec3) // &(*(mat3 *)%222)[%431]
  2778. 32x3 %434 = @load_deref (%433) (access=none)
  2779. 32 %435 = deref_var &normal#257 (function_temp vec3)
  2780. 32x3 %436 = @load_deref (%435) (access=none)
  2781. 32 %437 = mov %436.z
  2782. 32x3 %438 = fmul %434, %437.xxx
  2783. 32x3 %439 = fadd %429, %438
  2784. @store_deref (%410, %439) (wrmask=xyz, access=none)
  2785. 32 %440 = deref_var &compiler_temp#262 (function_temp vec3)
  2786. 32 %441 = deref_var &compiler_temp#271 (function_temp vec3)
  2787. 32x3 %442 = @load_deref (%441) (access=none)
  2788. 32 %443 = deref_var &compiler_temp#263 (function_temp vec3)
  2789. 32x3 %444 = @load_deref (%443) (access=none)
  2790. 32 %445 = deref_var &compiler_temp#267 (function_temp vec3)
  2791. 32x3 %446 = @load_deref (%445) (access=none)
  2792. 32 %447 = fdot3 %444, %446
  2793. 32 %448 = frsq %447
  2794. 32x3 %449 = fmul %442, %448.xxx
  2795. @store_deref (%440, %449) (wrmask=xyz, access=none)
  2796. 32 %450 = deref_cast (vec3 *)%218 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  2797. 32 %451 = deref_var &compiler_temp#262 (function_temp vec3)
  2798. 32x3 %452 = @load_deref (%451) (access=none)
  2799. @store_deref (%450, %452) (wrmask=xyz, access=none)
  2800. 32x3 %453 = @load_deref (%218) (access=none)
  2801. 32 %454 = deref_var &compiler_temp#234 (function_temp vec3)
  2802. @store_deref (%454, %453) (wrmask=xyz, access=none)
  2803. 32 %455 = deref_var &normal#198 (function_temp vec3)
  2804. 32 %456 = deref_var &compiler_temp#234 (function_temp vec3)
  2805. @copy_deref (%455, %456) (dst_access=0, src_access=0)
  2806. 32 %457 = deref_var &material (function_temp vec4)
  2807. 32 %458 = deref_var &u_MaterialMap (function_temp sampler2D)
  2808. 64 %459 = @load_deref (%458) (access=none)
  2809. 32 %460 = deref_var &texCoords (function_temp vec2)
  2810. 32x2 %461 = @load_deref (%460) (access=none)
  2811. 32x4 %462 = (float32)tex %459 (texture_handle), %459 (sampler_handle), %461 (coord), 0 (texture), 0 (sampler)
  2812. @store_deref (%457, %462) (wrmask=xyzw, access=none)
  2813. 32 %463 = deref_var &color (function_temp vec4)
  2814. 32 %464 = deref_var &diffuse (function_temp vec4)
  2815. 32x4 %465 = @load_deref (%464) (access=none)
  2816. 32 %466 = mov %465.w
  2817. 32x4 %467 = mov %466.xxxx
  2818. 32 %468 = mov %467.w
  2819. 32x4 %469 = mov %468.xxxx
  2820. @store_deref (%463, %469) (wrmask=w, access=none)
  2821. 32 %470 = deref_var &color (function_temp vec4)
  2822. 32 %471 = deref_var &const_temp#243 (function_temp vec3)
  2823. 32x3 %472 = @load_deref (%471) (access=none)
  2824. 32x4 %473 = mov %472.xyzx
  2825. 32x3 %474 = mov %473.xyz
  2826. 32x4 %475 = mov %474.xyzx
  2827. @store_deref (%470, %475) (wrmask=xyz, access=none)
  2828. 32 %476 = deref_var &param#244 (function_temp vec3)
  2829. 32 %477 = deref_var &u_LightMap (function_temp sampler2D)
  2830. 64 %478 = @load_deref (%477) (access=none)
  2831. 32 %479 = deref_var &var_TexLight (shader_in vec2)
  2832. 32x2 %480 = @load_deref (%479) (access=none)
  2833. 32x4 %481 = (float32)tex %478 (texture_handle), %478 (sampler_handle), %480 (coord), 0 (texture), 0 (sampler)
  2834. 32x3 %482 = mov %481.xyz
  2835. @store_deref (%476, %482) (wrmask=xyz, access=none)
  2836. 32 %483 = deref_var &param#245 (function_temp vec4)
  2837. 32 %484 = deref_var &diffuse (function_temp vec4)
  2838. 32x4 %485 = @load_deref (%484) (access=none)
  2839. @store_deref (%483, %485) (wrmask=xyzw, access=none)
  2840. 32 %486 = deref_var &param#246 (function_temp vec4)
  2841. 32 %487 = deref_var &color (function_temp vec4)
  2842. 32x4 %488 = @load_deref (%487) (access=none)
  2843. @store_deref (%486, %488) (wrmask=xyzw, access=none)
  2844. 32 %489 = deref_cast (vec4 *)%486 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  2845. 32 %490 = deref_cast (vec4 *)%486 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  2846. 32x4 %491 = @load_deref (%490) (access=none)
  2847. 32x3 %492 = mov %491.xyz
  2848. 32 %493 = deref_cast (vec3 *)%476 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  2849. 32x3 %494 = @load_deref (%493) (access=none)
  2850. 32 %495 = deref_cast (vec4 *)%483 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  2851. 32x4 %496 = @load_deref (%495) (access=none)
  2852. 32x3 %497 = mov %496.xyz
  2853. 32x3 %498 = fmul %494, %497
  2854. 32x3 %499 = fadd %492, %498
  2855. 32x4 %500 = mov %499.xyzx
  2856. 32x3 %501 = mov %500.xyz
  2857. 32x4 %502 = mov %501.xyzx
  2858. @store_deref (%489, %502) (wrmask=xyz, access=none)
  2859. 32x4 %503 = @load_deref (%486) (access=none)
  2860. 32 %504 = deref_var &color (function_temp vec4)
  2861. @store_deref (%504, %503) (wrmask=xyzw, access=none)
  2862. 32 %505 = deref_var &param#247 (function_temp vec3)
  2863. 32 %506 = deref_var &var_Position (shader_in vec3)
  2864. 32x3 %507 = @load_deref (%506) (access=none)
  2865. @store_deref (%505, %507) (wrmask=xyz, access=none)
  2866. 32 %508 = deref_var &param#248 (function_temp vec3)
  2867. 32 %509 = deref_var &normal#198 (function_temp vec3)
  2868. 32x3 %510 = @load_deref (%509) (access=none)
  2869. @store_deref (%508, %510) (wrmask=xyz, access=none)
  2870. 32 %511 = deref_var &param#249 (function_temp vec3)
  2871. 32 %512 = deref_var &viewDir (function_temp vec3)
  2872. 32x3 %513 = @load_deref (%512) (access=none)
  2873. @store_deref (%511, %513) (wrmask=xyz, access=none)
  2874. 32 %514 = deref_var &param#250 (function_temp vec4)
  2875. 32 %515 = deref_var &diffuse (function_temp vec4)
  2876. 32x4 %516 = @load_deref (%515) (access=none)
  2877. @store_deref (%514, %516) (wrmask=xyzw, access=none)
  2878. 32 %517 = deref_var &param#251 (function_temp vec4)
  2879. 32 %518 = deref_var &material (function_temp vec4)
  2880. 32x4 %519 = @load_deref (%518) (access=none)
  2881. @store_deref (%517, %519) (wrmask=xyzw, access=none)
  2882. 32 %520 = deref_var &param#252 (function_temp vec4)
  2883. 32 %521 = deref_var &color (function_temp vec4)
  2884. 32x4 %522 = @load_deref (%521) (access=none)
  2885. @store_deref (%520, %522) (wrmask=xyzw, access=none)
  2886. 32 %523 = deref_var &u_LightTilesInt (function_temp usampler3D)
  2887. 32 %524 = deref_var &layer#286 (function_temp int)
  2888. 32 %525 = load_const (0x00000000)
  2889. @store_deref (%524, %525 (0x0)) (wrmask=x, access=none)
  2890. 32 %526 = deref_var &tileScale#287 (function_temp vec3)
  2891. 32x3 %527 = load_const (0x3bcccccc, 0x3c360b61, 0x3e800000) = (0.006250, 0.011111, 0.250000)
  2892. @store_deref (%526, %527 (0.006250, 0.011111, 0.250000)) (wrmask=xyz, access=none)
  2893. 32 %528 = deref_var &const_temp#291 (function_temp float)
  2894. 32 %529 = load_const (0x3f800000 = 1.000000)
  2895. @store_deref (%528, %529 (1.000000)) (wrmask=x, access=none)
  2896. 32 %530 = deref_var &const_temp#292 (function_temp float)
  2897. 32 %531 = load_const (0x41800000 = 16.000000)
  2898. @store_deref (%530, %531 (16.000000)) (wrmask=x, access=none)
  2899. 32 %532 = deref_var &const_temp#293 (function_temp float)
  2900. 32 %533 = load_const (0x3f000000 = 0.500000)
  2901. @store_deref (%532, %533 (0.500000)) (wrmask=x, access=none)
  2902. 32 %534 = deref_var &const_temp#295 (function_temp vec3)
  2903. 32x3 %535 = load_const (0x3bcccccc, 0x3c360b61, 0x3e800000) = (0.006250, 0.011111, 0.250000)
  2904. @store_deref (%534, %535 (0.006250, 0.011111, 0.250000)) (wrmask=xyz, access=none)
  2905. 32 %536 = deref_var &const_temp#297 (function_temp int)
  2906. 32 %537 = load_const (0x00000000)
  2907. @store_deref (%536, %537 (0x0)) (wrmask=x, access=none)
  2908. 32 %538 = deref_var &i#298 (function_temp int)
  2909. 32 %539 = load_const (0x00000000)
  2910. @store_deref (%538, %539 (0x0)) (wrmask=x, access=none)
  2911. 32 %540 = deref_var &const_temp#301 (function_temp float)
  2912. 32 %541 = load_const (0x3f000000 = 0.500000)
  2913. @store_deref (%540, %541 (0.500000)) (wrmask=x, access=none)
  2914. 32 %542 = deref_var &const_temp#307 (function_temp int)
  2915. 32 %543 = load_const (0x00000000)
  2916. @store_deref (%542, %543 (0x0)) (wrmask=x, access=none)
  2917. 32 %544 = deref_var &const_temp#320 (function_temp int)
  2918. 32 %545 = load_const (0x00000001)
  2919. @store_deref (%544, %545 (0x1)) (wrmask=x, access=none)
  2920. 32 %546 = deref_var &const_temp#321 (function_temp int)
  2921. 32 %547 = load_const (0x00000001)
  2922. @store_deref (%546, %547 (0x1)) (wrmask=x, access=none)
  2923. 32 %548 = deref_var &tile#288 (function_temp vec2)
  2924. 32 %549 = deref_var &gl_FragCoord (system vec4)
  2925. 32x4 %550 = @load_deref (%549) (access=none)
  2926. 32x2 %551 = mov %550.xy
  2927. 32 %552 = deref_var &const_temp#291 (function_temp float)
  2928. 32 %553 = @load_deref (%552) (access=none)
  2929. 32 %554 = deref_var &const_temp#292 (function_temp float)
  2930. 32 %555 = @load_deref (%554) (access=none)
  2931. 32 %556 = fdiv %553, %555
  2932. 32x2 %557 = fmul %551, %556.xx
  2933. 32x2 %558 = ffloor %557
  2934. 32 %559 = deref_var &const_temp#293 (function_temp float)
  2935. 32 %560 = @load_deref (%559) (access=none)
  2936. 32x2 %561 = fadd %558, %560.xx
  2937. @store_deref (%548, %561) (wrmask=xy, access=none)
  2938. 32 %562 = deref_var &tileScale#287 (function_temp vec3)
  2939. 32 %563 = deref_var &const_temp#295 (function_temp vec3)
  2940. @copy_deref (%562, %563) (dst_access=0, src_access=0)
  2941. 32 %564 = deref_var &layer#286 (function_temp int)
  2942. 32 %565 = deref_var &const_temp#297 (function_temp int)
  2943. @copy_deref (%564, %565) (dst_access=0, src_access=0)
  2944. // succs: b6
  2945. loop {
  2946. con block b6: // preds: b5 b29
  2947. 32 %566 = deref_var &layer#286 (function_temp int)
  2948. 32 %567 = @load_deref (%566) (access=none)
  2949. 32 %568 = deref_var &numLayers (shader_temp int)
  2950. 32 %569 = @load_deref (%568) (access=none)
  2951. 1 %570 = ilt %567, %569
  2952. 1 %571 = inot %570
  2953. // succs: b7 b8
  2954. if %571 {
  2955. con block b7:// preds: b6
  2956. break
  2957. // succs: b30
  2958. } else {
  2959. con block b8: // preds: b6, succs: b9
  2960. }
  2961. con block b9: // preds: b8
  2962. 32 %572 = deref_var &compiler_temp#300 (function_temp vec3)
  2963. 32 %573 = deref_var &tile#288 (function_temp vec2)
  2964. 32x2 %574 = @load_deref (%573) (access=none)
  2965. 32x3 %575 = mov %574.xyx
  2966. @store_deref (%572, %575) (wrmask=xy, access=none)
  2967. 32 %576 = deref_var &compiler_temp#300 (function_temp vec3)
  2968. 32 %577 = deref_var &layer#286 (function_temp int)
  2969. 32 %578 = @load_deref (%577) (access=none)
  2970. 32 %579 = i2f32 %578
  2971. 32 %580 = deref_var &const_temp#301 (function_temp float)
  2972. 32 %581 = @load_deref (%580) (access=none)
  2973. 32 %582 = fadd %579, %581
  2974. 32x3 %583 = mov %582.xxx
  2975. @store_deref (%576, %583) (wrmask=z, access=none)
  2976. 32 %584 = deref_var &return_tmp#303 (function_temp uvec4)
  2977. 32 %585 = deref_var &param#304 (function_temp vec3)
  2978. 32 %586 = deref_var &tileScale#287 (function_temp vec3)
  2979. 32x3 %587 = @load_deref (%586) (access=none)
  2980. 32 %588 = deref_var &compiler_temp#300 (function_temp vec3)
  2981. 32x3 %589 = @load_deref (%588) (access=none)
  2982. 32x3 %590 = fmul %587, %589
  2983. @store_deref (%585, %590) (wrmask=xyz, access=none)
  2984. 32 %591 = deref_cast (usampler3D *)%523 (uniform usampler3D) (ptr_stride=0, align_mul=0, align_offset=0)
  2985. error: instr->modes & parent->modes (../src/compiler/nir/nir_validate.c:334)
  2986.  
  2987. 32 %592 = deref_var &compiler_temp#322 (function_temp uvec4)
  2988. 32 %593 = deref_cast (usampler3D *)%591 (uniform usampler3D) (ptr_stride=0, align_mul=0, align_offset=0)
  2989. 32 %594 = deref_cast (vec3 *)%585 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  2990. 32x3 %595 = @load_deref (%594) (access=none)
  2991. 32x4 %596 = (uint32)tex %593 (texture_deref), %593 (sampler_deref), %595 (coord)
  2992. @store_deref (%592, %596) (wrmask=xyzw, access=none)
  2993. 32 %597 = deref_cast (uvec4 *)%584 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  2994. 32 %598 = deref_var &compiler_temp#322 (function_temp uvec4)
  2995. 32x4 %599 = @load_deref (%598) (access=none)
  2996. @store_deref (%597, %599) (wrmask=xyzw, access=none)
  2997. 32x4 %600 = @load_deref (%584) (access=none)
  2998. 32 %601 = deref_var &compiler_temp#302 (function_temp uvec4)
  2999. @store_deref (%601, %600) (wrmask=xyzw, access=none)
  3000. 32 %602 = deref_var &idxs#299 (function_temp uvec4)
  3001. 32 %603 = deref_var &compiler_temp#302 (function_temp uvec4)
  3002. @copy_deref (%602, %603) (dst_access=0, src_access=0)
  3003. 32 %604 = deref_var &i#298 (function_temp int)
  3004. 32 %605 = deref_var &const_temp#307 (function_temp int)
  3005. @copy_deref (%604, %605) (dst_access=0, src_access=0)
  3006. // succs: b10
  3007. loop {
  3008. con block b10: // preds: b9 b28
  3009. 32 %606 = deref_var &i#298 (function_temp int)
  3010. 32 %607 = @load_deref (%606) (access=none)
  3011. 32 %608 = deref_var &lightsPerLayer (shader_temp int)
  3012. 32 %609 = @load_deref (%608) (access=none)
  3013. 1 %610 = ilt %607, %609
  3014. 1 %611 = inot %610
  3015. // succs: b11 b12
  3016. if %611 {
  3017. con block b11:// preds: b10
  3018. break
  3019. // succs: b29
  3020. } else {
  3021. con block b12: // preds: b10, succs: b13
  3022. }
  3023. con block b13: // preds: b12
  3024. 32 %612 = deref_var &return_tmp#310 (function_temp int)
  3025. 32 %613 = deref_var &param#311 (function_temp uvec4)
  3026. 32 %614 = deref_var &idxs#299 (function_temp uvec4)
  3027. 32x4 %615 = @load_deref (%614) (access=none)
  3028. @store_deref (%613, %615) (wrmask=xyzw, access=none)
  3029. 32 %616 = deref_var &const_temp#325 (function_temp uvec4)
  3030. 32x4 %617 = load_const (0x00000003, 0x00000003, 0x00000003, 0x00000003)
  3031. @store_deref (%616, %617 (0x3, 0x3, 0x3, 0x3)) (wrmask=xyzw, access=none)
  3032. 32 %618 = deref_var &const_temp#326 (function_temp uvec4)
  3033. 32x4 %619 = load_const (0x00000040, 0x00000010, 0x00000004, 0x00000001) = (64, 16, 4, 1)
  3034. @store_deref (%618, %619 (0x40, 0x10, 0x4, 0x1)) (wrmask=xyzw, access=none)
  3035. 32 %620 = deref_var &const_temp#327 (function_temp int)
  3036. 32 %621 = load_const (0x00000002)
  3037. @store_deref (%620, %621 (0x2)) (wrmask=x, access=none)
  3038. 32 %622 = deref_var &tmp#323 (function_temp uvec4)
  3039. 32 %623 = deref_cast (uvec4 *)%613 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3040. 32x4 %624 = @load_deref (%623) (access=none)
  3041. 32 %625 = deref_var &const_temp#325 (function_temp uvec4)
  3042. 32x4 %626 = @load_deref (%625) (access=none)
  3043. 32x4 %627 = iand %624, %626
  3044. 32 %628 = deref_var &const_temp#326 (function_temp uvec4)
  3045. 32x4 %629 = @load_deref (%628) (access=none)
  3046. 32x4 %630 = imul %627, %629
  3047. @store_deref (%622, %630) (wrmask=xyzw, access=none)
  3048. 32 %631 = deref_cast (uvec4 *)%613 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3049. 32 %632 = deref_cast (uvec4 *)%613 (function_temp uvec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3050. 32x4 %633 = @load_deref (%632) (access=none)
  3051. 32 %634 = deref_var &const_temp#327 (function_temp int)
  3052. 32 %635 = @load_deref (%634) (access=none)
  3053. 32x4 %636 = ushr %633, %635.xxxx
  3054. @store_deref (%631, %636) (wrmask=xyzw, access=none)
  3055. 32 %637 = deref_cast (int *)%612 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  3056. 32 %638 = deref_var &tmp#323 (function_temp uvec4)
  3057. 32x4 %639 = @load_deref (%638) (access=none)
  3058. 32 %640 = mov %639.x
  3059. 32 %641 = deref_var &tmp#323 (function_temp uvec4)
  3060. 32x4 %642 = @load_deref (%641) (access=none)
  3061. 32 %643 = mov %642.y
  3062. 32 %644 = iadd %640, %643
  3063. 32 %645 = deref_var &tmp#323 (function_temp uvec4)
  3064. 32x4 %646 = @load_deref (%645) (access=none)
  3065. 32 %647 = mov %646.z
  3066. 32 %648 = deref_var &tmp#323 (function_temp uvec4)
  3067. 32x4 %649 = @load_deref (%648) (access=none)
  3068. 32 %650 = mov %649.w
  3069. 32 %651 = iadd %647, %650
  3070. 32 %652 = iadd %644, %651
  3071. @store_deref (%637, %652) (wrmask=x, access=none)
  3072. 32x4 %653 = @load_deref (%613) (access=none)
  3073. 32 %654 = deref_var &idxs#299 (function_temp uvec4)
  3074. @store_deref (%654, %653) (wrmask=xyzw, access=none)
  3075. 32 %655 = @load_deref (%612) (access=none)
  3076. 32 %656 = deref_var &compiler_temp#309 (function_temp int)
  3077. @store_deref (%656, %655) (wrmask=x, access=none)
  3078. 32 %657 = deref_var &idx#308 (function_temp int)
  3079. 32 %658 = deref_var &numLayers (shader_temp int)
  3080. 32 %659 = @load_deref (%658) (access=none)
  3081. 32 %660 = deref_var &compiler_temp#309 (function_temp int)
  3082. 32 %661 = @load_deref (%660) (access=none)
  3083. 32 %662 = imul %659, %661
  3084. 32 %663 = deref_var &layer#286 (function_temp int)
  3085. 32 %664 = @load_deref (%663) (access=none)
  3086. 32 %665 = iadd %662, %664
  3087. @store_deref (%657, %665) (wrmask=x, access=none)
  3088. 32 %666 = deref_var &idx#308 (function_temp int)
  3089. 32 %667 = @load_deref (%666) (access=none)
  3090. 32 %668 = deref_var &u_numLights (uniform int)
  3091. 32 %669 = @load_deref (%668) (access=none)
  3092. 1 %670 = ige %667, %669
  3093. // succs: b14 b15
  3094. if %670 {
  3095. con block b14:// preds: b13
  3096. break
  3097. // succs: b29
  3098. } else {
  3099. con block b15: // preds: b13, succs: b16
  3100. }
  3101. con block b16: // preds: b15
  3102. 32 %671 = deref_var &param#313 (function_temp int)
  3103. 32 %672 = deref_var &idx#308 (function_temp int)
  3104. 32 %673 = @load_deref (%672) (access=none)
  3105. @store_deref (%671, %673) (wrmask=x, access=none)
  3106. 32 %674 = deref_var &param#314 (function_temp vec3)
  3107. 32 %675 = deref_cast (vec3 *)%505 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3108. 32x3 %676 = @load_deref (%675) (access=none)
  3109. @store_deref (%674, %676) (wrmask=xyz, access=none)
  3110. 32 %677 = deref_var &param#315 (function_temp vec3)
  3111. 32 %678 = deref_cast (vec3 *)%508 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3112. 32x3 %679 = @load_deref (%678) (access=none)
  3113. @store_deref (%677, %679) (wrmask=xyz, access=none)
  3114. 32 %680 = deref_var &param#316 (function_temp vec3)
  3115. 32 %681 = deref_cast (vec3 *)%511 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3116. 32x3 %682 = @load_deref (%681) (access=none)
  3117. @store_deref (%680, %682) (wrmask=xyz, access=none)
  3118. 32 %683 = deref_var &param#317 (function_temp vec4)
  3119. 32 %684 = deref_cast (vec4 *)%514 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3120. 32x4 %685 = @load_deref (%684) (access=none)
  3121. @store_deref (%683, %685) (wrmask=xyzw, access=none)
  3122. 32 %686 = deref_var &param#318 (function_temp vec4)
  3123. 32 %687 = deref_cast (vec4 *)%517 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3124. 32x4 %688 = @load_deref (%687) (access=none)
  3125. @store_deref (%686, %688) (wrmask=xyzw, access=none)
  3126. 32 %689 = deref_var &param#319 (function_temp vec4)
  3127. 32 %690 = deref_cast (vec4 *)%520 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3128. 32x4 %691 = @load_deref (%690) (access=none)
  3129. @store_deref (%689, %691) (wrmask=xyzw, access=none)
  3130. 32 %692 = deref_var &attenuation#328 (function_temp float)
  3131. 32 %693 = load_const (0x00000000 = 0.000000)
  3132. @store_deref (%692, %693 (0.000000)) (wrmask=x, access=none)
  3133. 32 %694 = deref_var &L#329 (function_temp vec3)
  3134. 32x3 %695 = load_const (0x00000000, 0x00000000, 0x00000000) = (0.000000, 0.000000, 0.000000)
  3135. @store_deref (%694, %695 (0.000000, 0.000000, 0.000000)) (wrmask=xyz, access=none)
  3136. 32 %696 = deref_var &const_temp#334 (function_temp float)
  3137. 32 %697 = load_const (0x00000000 = 0.000000)
  3138. @store_deref (%696, %697 (0.000000)) (wrmask=x, access=none)
  3139. 32 %698 = deref_var &const_temp#338 (function_temp float)
  3140. 32 %699 = load_const (0x3f800000 = 1.000000)
  3141. @store_deref (%698, %699 (1.000000)) (wrmask=x, access=none)
  3142. 32 %700 = deref_var &const_temp#339 (function_temp float)
  3143. 32 %701 = load_const (0x40247ae1 = 2.570000)
  3144. @store_deref (%700, %701 (2.570000)) (wrmask=x, access=none)
  3145. 32 %702 = deref_var &const_temp#340 (function_temp float)
  3146. 32 %703 = load_const (0x3f800000 = 1.000000)
  3147. @store_deref (%702, %703 (1.000000)) (wrmask=x, access=none)
  3148. 32 %704 = deref_var &const_temp#342 (function_temp float)
  3149. 32 %705 = load_const (0x3f800000 = 1.000000)
  3150. @store_deref (%704, %705 (1.000000)) (wrmask=x, access=none)
  3151. 32 %706 = deref_var &const_temp#348 (function_temp float)
  3152. 32 %707 = load_const (0x3f800000 = 1.000000)
  3153. @store_deref (%706, %707 (1.000000)) (wrmask=x, access=none)
  3154. 32 %708 = deref_var &const_temp#349 (function_temp float)
  3155. 32 %709 = load_const (0x40247ae1 = 2.570000)
  3156. @store_deref (%708, %709 (2.570000)) (wrmask=x, access=none)
  3157. 32 %710 = deref_var &const_temp#350 (function_temp float)
  3158. 32 %711 = load_const (0x3f800000 = 1.000000)
  3159. @store_deref (%710, %711 (1.000000)) (wrmask=x, access=none)
  3160. 32 %712 = deref_var &const_temp#353 (function_temp float)
  3161. 32 %713 = load_const (0x00000000 = 0.000000)
  3162. @store_deref (%712, %713 (0.000000)) (wrmask=x, access=none)
  3163. 32 %714 = deref_var &const_temp#354 (function_temp float)
  3164. 32 %715 = load_const (0x40000000 = 2.000000)
  3165. @store_deref (%714, %715 (2.000000)) (wrmask=x, access=none)
  3166. 32 %716 = deref_var &const_temp#355 (function_temp float)
  3167. 32 %717 = load_const (0x3f800000 = 1.000000)
  3168. @store_deref (%716, %717 (1.000000)) (wrmask=x, access=none)
  3169. 32 %718 = deref_var &center_radius#331 (function_temp vec4)
  3170. 32 %719 = deref_cast (int *)%671 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  3171. 32 %720 = @load_deref (%719) (access=none)
  3172. 32 %721 = deref_var &lights (ubo light[1024])
  3173. 32 %722 = deref_array &(*%721)[%720] (ubo light) // &lights[%720]
  3174. 32 %723 = deref_struct &%722->center_radius (ubo vec4) // &lights[%720].center_radius
  3175. @copy_deref (%718, %723) (dst_access=0, src_access=0)
  3176. 32 %724 = deref_var &color_type#330 (function_temp vec4)
  3177. 32 %725 = deref_cast (int *)%671 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  3178. 32 %726 = @load_deref (%725) (access=none)
  3179. 32 %727 = deref_var &lights (ubo light[1024])
  3180. 32 %728 = deref_array &(*%727)[%726] (ubo light) // &lights[%726]
  3181. 32 %729 = deref_struct &%728->color_type (ubo vec4) // &lights[%726].color_type
  3182. @copy_deref (%724, %729) (dst_access=0, src_access=0)
  3183. 32 %730 = deref_var &color_type#330 (function_temp vec4)
  3184. 32x4 %731 = @load_deref (%730) (access=none)
  3185. 32 %732 = mov %731.w
  3186. 32 %733 = deref_var &const_temp#334 (function_temp float)
  3187. 32 %734 = @load_deref (%733) (access=none)
  3188. 1 %735 = feq %732, %734
  3189. // succs: b17 b18
  3190. if %735 {
  3191. con block b17: // preds: b16
  3192. 32 %736 = deref_var &L#329 (function_temp vec3)
  3193. 32 %737 = deref_var &center_radius#331 (function_temp vec4)
  3194. 32x4 %738 = @load_deref (%737) (access=none)
  3195. 32x3 %739 = mov %738.xyz
  3196. 32 %740 = deref_cast (vec3 *)%674 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3197. 32x3 %741 = @load_deref (%740) (access=none)
  3198. 32x3 %742 = fsub %739, %741
  3199. @store_deref (%736, %742) (wrmask=xyz, access=none)
  3200. 32 %743 = deref_var &t#335 (function_temp float)
  3201. 32 %744 = deref_var &const_temp#338 (function_temp float)
  3202. 32 %745 = @load_deref (%744) (access=none)
  3203. 32 %746 = deref_var &const_temp#339 (function_temp float)
  3204. 32 %747 = @load_deref (%746) (access=none)
  3205. 32 %748 = deref_var &L#329 (function_temp vec3)
  3206. 32x3 %749 = @load_deref (%748) (access=none)
  3207. 32 %750 = deref_var &L#329 (function_temp vec3)
  3208. 32x3 %751 = @load_deref (%750) (access=none)
  3209. 32 %752 = fdot3 %749, %751
  3210. 32 %753 = fsqrt %752
  3211. 32 %754 = fmul %747, %753
  3212. 32 %755 = deref_var &center_radius#331 (function_temp vec4)
  3213. 32x4 %756 = @load_deref (%755) (access=none)
  3214. 32 %757 = mov %756.w
  3215. 32 %758 = fdiv %754, %757
  3216. 32 %759 = fadd %745, %758
  3217. @store_deref (%743, %759) (wrmask=x, access=none)
  3218. 32 %760 = deref_var &attenuation#328 (function_temp float)
  3219. 32 %761 = deref_var &const_temp#340 (function_temp float)
  3220. 32 %762 = @load_deref (%761) (access=none)
  3221. 32 %763 = deref_var &t#335 (function_temp float)
  3222. 32 %764 = @load_deref (%763) (access=none)
  3223. 32 %765 = deref_var &t#335 (function_temp float)
  3224. 32 %766 = @load_deref (%765) (access=none)
  3225. 32 %767 = fmul %764, %766
  3226. 32 %768 = fdiv %762, %767
  3227. @store_deref (%760, %768) (wrmask=x, access=none)
  3228. 32 %769 = deref_var &L#329 (function_temp vec3)
  3229. 32 %770 = deref_var &L#329 (function_temp vec3)
  3230. 32x3 %771 = @load_deref (%770) (access=none)
  3231. 32 %772 = deref_var &L#329 (function_temp vec3)
  3232. 32x3 %773 = @load_deref (%772) (access=none)
  3233. 32 %774 = deref_var &L#329 (function_temp vec3)
  3234. 32x3 %775 = @load_deref (%774) (access=none)
  3235. 32 %776 = fdot3 %773, %775
  3236. 32 %777 = frsq %776
  3237. 32x3 %778 = fmul %771, %777.xxx
  3238. @store_deref (%769, %778) (wrmask=xyz, access=none)
  3239. // succs: b28
  3240. } else {
  3241. con block b18: // preds: b16
  3242. 32 %779 = deref_var &color_type#330 (function_temp vec4)
  3243. 32x4 %780 = @load_deref (%779) (access=none)
  3244. 32 %781 = mov %780.w
  3245. 32 %782 = deref_var &const_temp#342 (function_temp float)
  3246. 32 %783 = @load_deref (%782) (access=none)
  3247. 1 %784 = feq %781, %783
  3248. // succs: b19 b23
  3249. if %784 {
  3250. con block b19: // preds: b18
  3251. 32 %785 = deref_var &direction_angle#344 (function_temp vec4)
  3252. 32 %786 = deref_cast (int *)%671 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  3253. 32 %787 = @load_deref (%786) (access=none)
  3254. 32 %788 = deref_var &lights (ubo light[1024])
  3255. 32 %789 = deref_array &(*%788)[%787] (ubo light) // &lights[%787]
  3256. 32 %790 = deref_struct &%789->direction_angle (ubo vec4) // &lights[%787].direction_angle
  3257. @copy_deref (%785, %790) (dst_access=0, src_access=0)
  3258. 32 %791 = deref_var &L#329 (function_temp vec3)
  3259. 32 %792 = deref_var &center_radius#331 (function_temp vec4)
  3260. 32x4 %793 = @load_deref (%792) (access=none)
  3261. 32x3 %794 = mov %793.xyz
  3262. 32 %795 = deref_cast (vec3 *)%674 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3263. 32x3 %796 = @load_deref (%795) (access=none)
  3264. 32x3 %797 = fsub %794, %796
  3265. @store_deref (%791, %797) (wrmask=xyz, access=none)
  3266. 32 %798 = deref_var &t#343 (function_temp float)
  3267. 32 %799 = deref_var &const_temp#348 (function_temp float)
  3268. 32 %800 = @load_deref (%799) (access=none)
  3269. 32 %801 = deref_var &const_temp#349 (function_temp float)
  3270. 32 %802 = @load_deref (%801) (access=none)
  3271. 32 %803 = deref_var &L#329 (function_temp vec3)
  3272. 32x3 %804 = @load_deref (%803) (access=none)
  3273. 32 %805 = deref_var &L#329 (function_temp vec3)
  3274. 32x3 %806 = @load_deref (%805) (access=none)
  3275. 32 %807 = fdot3 %804, %806
  3276. 32 %808 = fsqrt %807
  3277. 32 %809 = fmul %802, %808
  3278. 32 %810 = deref_var &center_radius#331 (function_temp vec4)
  3279. 32x4 %811 = @load_deref (%810) (access=none)
  3280. 32 %812 = mov %811.w
  3281. 32 %813 = fdiv %809, %812
  3282. 32 %814 = fadd %800, %813
  3283. @store_deref (%798, %814) (wrmask=x, access=none)
  3284. 32 %815 = deref_var &attenuation#328 (function_temp float)
  3285. 32 %816 = deref_var &const_temp#350 (function_temp float)
  3286. 32 %817 = @load_deref (%816) (access=none)
  3287. 32 %818 = deref_var &t#343 (function_temp float)
  3288. 32 %819 = @load_deref (%818) (access=none)
  3289. 32 %820 = deref_var &t#343 (function_temp float)
  3290. 32 %821 = @load_deref (%820) (access=none)
  3291. 32 %822 = fmul %819, %821
  3292. 32 %823 = fdiv %817, %822
  3293. @store_deref (%815, %823) (wrmask=x, access=none)
  3294. 32 %824 = deref_var &L#329 (function_temp vec3)
  3295. 32 %825 = deref_var &L#329 (function_temp vec3)
  3296. 32x3 %826 = @load_deref (%825) (access=none)
  3297. 32 %827 = deref_var &L#329 (function_temp vec3)
  3298. 32x3 %828 = @load_deref (%827) (access=none)
  3299. 32 %829 = deref_var &L#329 (function_temp vec3)
  3300. 32x3 %830 = @load_deref (%829) (access=none)
  3301. 32 %831 = fdot3 %828, %830
  3302. 32 %832 = frsq %831
  3303. 32x3 %833 = fmul %826, %832.xxx
  3304. @store_deref (%824, %833) (wrmask=xyz, access=none)
  3305. 32 %834 = deref_var &compiler_temp#352 (function_temp float)
  3306. 32 %835 = deref_var &L#329 (function_temp vec3)
  3307. 32x3 %836 = @load_deref (%835) (access=none)
  3308. 32 %837 = deref_var &direction_angle#344 (function_temp vec4)
  3309. 32x4 %838 = @load_deref (%837) (access=none)
  3310. 32x3 %839 = mov %838.xyz
  3311. 32 %840 = fdot3 %836, %839
  3312. @store_deref (%834, %840) (wrmask=x, access=none)
  3313. 32 %841 = deref_var &direction_angle#344 (function_temp vec4)
  3314. 32x4 %842 = @load_deref (%841) (access=none)
  3315. 32 %843 = mov %842.w
  3316. 32 %844 = deref_var &compiler_temp#352 (function_temp float)
  3317. 32 %845 = @load_deref (%844) (access=none)
  3318. 1 %846 = fge %843, %845
  3319. // succs: b20 b21
  3320. if %846 {
  3321. con block b20: // preds: b19
  3322. 32 %847 = deref_var &attenuation#328 (function_temp float)
  3323. 32 %848 = deref_var &const_temp#353 (function_temp float)
  3324. @copy_deref (%847, %848) (dst_access=0, src_access=0)
  3325. // succs: b22
  3326. } else {
  3327. con block b21: // preds: b19, succs: b22
  3328. }
  3329. con block b22: // preds: b20 b21, succs: b27
  3330. } else {
  3331. con block b23: // preds: b18
  3332. 32 %849 = deref_var &color_type#330 (function_temp vec4)
  3333. 32x4 %850 = @load_deref (%849) (access=none)
  3334. 32 %851 = mov %850.w
  3335. 32 %852 = deref_var &const_temp#354 (function_temp float)
  3336. 32 %853 = @load_deref (%852) (access=none)
  3337. 1 %854 = feq %851, %853
  3338. // succs: b24 b25
  3339. if %854 {
  3340. con block b24: // preds: b23
  3341. 32 %855 = deref_var &L#329 (function_temp vec3)
  3342. 32 %856 = deref_cast (int *)%671 (function_temp int) (ptr_stride=0, align_mul=0, align_offset=0)
  3343. 32 %857 = @load_deref (%856) (access=none)
  3344. 32 %858 = deref_var &lights (ubo light[1024])
  3345. 32 %859 = deref_array &(*%858)[%857] (ubo light) // &lights[%857]
  3346. 32 %860 = deref_struct &%859->direction_angle (ubo vec4) // &lights[%857].direction_angle
  3347. 32x4 %861 = @load_deref (%860) (access=none)
  3348. 32x3 %862 = mov %861.xyz
  3349. @store_deref (%855, %862) (wrmask=xyz, access=none)
  3350. 32 %863 = deref_var &attenuation#328 (function_temp float)
  3351. 32 %864 = deref_var &const_temp#355 (function_temp float)
  3352. @copy_deref (%863, %864) (dst_access=0, src_access=0)
  3353. // succs: b26
  3354. } else {
  3355. con block b25: // preds: b23, succs: b26
  3356. }
  3357. con block b26: // preds: b24 b25, succs: b27
  3358. }
  3359. con block b27: // preds: b22 b26, succs: b28
  3360. }
  3361. con block b28: // preds: b17 b27
  3362. 32 %865 = deref_var &param#356 (function_temp vec3)
  3363. 32 %866 = deref_var &L#329 (function_temp vec3)
  3364. 32x3 %867 = @load_deref (%866) (access=none)
  3365. @store_deref (%865, %867) (wrmask=xyz, access=none)
  3366. 32 %868 = deref_var &param#357 (function_temp vec3)
  3367. 32 %869 = deref_cast (vec3 *)%677 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3368. 32x3 %870 = @load_deref (%869) (access=none)
  3369. @store_deref (%868, %870) (wrmask=xyz, access=none)
  3370. 32 %871 = deref_var &param#358 (function_temp vec3)
  3371. 32 %872 = deref_cast (vec3 *)%680 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3372. 32x3 %873 = @load_deref (%872) (access=none)
  3373. @store_deref (%871, %873) (wrmask=xyz, access=none)
  3374. 32 %874 = deref_var &param#359 (function_temp vec3)
  3375. 32 %875 = deref_var &attenuation#328 (function_temp float)
  3376. 32 %876 = @load_deref (%875) (access=none)
  3377. 32 %877 = deref_var &attenuation#328 (function_temp float)
  3378. 32 %878 = @load_deref (%877) (access=none)
  3379. 32 %879 = fmul %876, %878
  3380. 32 %880 = deref_var &color_type#330 (function_temp vec4)
  3381. 32x4 %881 = @load_deref (%880) (access=none)
  3382. 32x3 %882 = mov %881.xyz
  3383. 32x3 %883 = fmul %879.xxx, %882
  3384. @store_deref (%874, %883) (wrmask=xyz, access=none)
  3385. 32 %884 = deref_var &param#360 (function_temp vec4)
  3386. 32 %885 = deref_cast (vec4 *)%683 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3387. 32x4 %886 = @load_deref (%885) (access=none)
  3388. @store_deref (%884, %886) (wrmask=xyzw, access=none)
  3389. 32 %887 = deref_var &param#361 (function_temp vec4)
  3390. 32 %888 = deref_cast (vec4 *)%686 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3391. 32x4 %889 = @load_deref (%888) (access=none)
  3392. @store_deref (%887, %889) (wrmask=xyzw, access=none)
  3393. 32 %890 = deref_var &param#362 (function_temp vec4)
  3394. 32 %891 = deref_cast (vec4 *)%689 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3395. 32x4 %892 = @load_deref (%891) (access=none)
  3396. @store_deref (%890, %892) (wrmask=xyzw, access=none)
  3397. 32 %893 = deref_var &const_temp#373 (function_temp float)
  3398. 32 %894 = load_const (0x3f000000 = 0.500000)
  3399. @store_deref (%893, %894 (0.500000)) (wrmask=x, access=none)
  3400. 32 %895 = deref_var &const_temp#374 (function_temp float)
  3401. 32 %896 = load_const (0x3f000000 = 0.500000)
  3402. @store_deref (%895, %896 (0.500000)) (wrmask=x, access=none)
  3403. 32 %897 = deref_var &const_temp#377 (function_temp float)
  3404. 32 %898 = load_const (0x3f800000 = 1.000000)
  3405. @store_deref (%897, %898 (1.000000)) (wrmask=x, access=none)
  3406. 32 %899 = deref_var &NdotL#363 (function_temp float)
  3407. 32 %900 = deref_cast (vec3 *)%868 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3408. 32x3 %901 = @load_deref (%900) (access=none)
  3409. 32 %902 = deref_cast (vec3 *)%865 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3410. 32x3 %903 = @load_deref (%902) (access=none)
  3411. 32 %904 = fdot3 %901, %903
  3412. @store_deref (%899, %904) (wrmask=x, access=none)
  3413. 32 %905 = deref_var &NdotL#363 (function_temp float)
  3414. 32 %906 = deref_var &NdotL#363 (function_temp float)
  3415. 32 %907 = @load_deref (%906) (access=none)
  3416. 32 %908 = deref_var &const_temp#373 (function_temp float)
  3417. 32 %909 = @load_deref (%908) (access=none)
  3418. 32 %910 = fmul %907, %909
  3419. 32 %911 = deref_var &const_temp#374 (function_temp float)
  3420. 32 %912 = @load_deref (%911) (access=none)
  3421. 32 %913 = fadd %910, %912
  3422. @store_deref (%905, %913) (wrmask=x, access=none)
  3423. 32 %914 = deref_var &NdotL#363 (function_temp float)
  3424. 32 %915 = deref_var &NdotL#363 (function_temp float)
  3425. 32 %916 = @load_deref (%915) (access=none)
  3426. 32 %917 = deref_var &NdotL#363 (function_temp float)
  3427. 32 %918 = @load_deref (%917) (access=none)
  3428. 32 %919 = fmul %916, %918
  3429. @store_deref (%914, %919) (wrmask=x, access=none)
  3430. 32 %920 = deref_var &NdotL#363 (function_temp float)
  3431. 32 %921 = deref_var &NdotL#363 (function_temp float)
  3432. 32 %922 = @load_deref (%921) (access=none)
  3433. 32 %923 = fsat %922
  3434. @store_deref (%920, %923) (wrmask=x, access=none)
  3435. 32 %924 = deref_cast (vec4 *)%890 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3436. 32 %925 = deref_cast (vec4 *)%890 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3437. 32x4 %926 = @load_deref (%925) (access=none)
  3438. 32x3 %927 = mov %926.xyz
  3439. 32 %928 = deref_cast (vec3 *)%874 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3440. 32x3 %929 = @load_deref (%928) (access=none)
  3441. 32 %930 = deref_var &NdotL#363 (function_temp float)
  3442. 32 %931 = @load_deref (%930) (access=none)
  3443. 32x3 %932 = fmul %929, %931.xxx
  3444. 32 %933 = deref_cast (vec4 *)%884 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3445. 32x4 %934 = @load_deref (%933) (access=none)
  3446. 32x3 %935 = mov %934.xyz
  3447. 32x3 %936 = fmul %932, %935
  3448. 32x3 %937 = fadd %927, %936
  3449. 32x4 %938 = mov %937.xyzx
  3450. 32x3 %939 = mov %938.xyz
  3451. 32x4 %940 = mov %939.xyzx
  3452. @store_deref (%924, %940) (wrmask=xyz, access=none)
  3453. 32 %941 = deref_cast (vec4 *)%890 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3454. 32 %942 = deref_cast (vec4 *)%890 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3455. 32x4 %943 = @load_deref (%942) (access=none)
  3456. 32x3 %944 = mov %943.xyz
  3457. 32 %945 = deref_cast (vec3 *)%874 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3458. 32x3 %946 = @load_deref (%945) (access=none)
  3459. 32 %947 = deref_cast (vec4 *)%887 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3460. 32x4 %948 = @load_deref (%947) (access=none)
  3461. 32x3 %949 = mov %948.xyz
  3462. 32x3 %950 = fmul %946, %949
  3463. 32 %951 = deref_cast (vec3 *)%868 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3464. 32x3 %952 = @load_deref (%951) (access=none)
  3465. 32 %953 = deref_cast (vec3 *)%865 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3466. 32x3 %954 = @load_deref (%953) (access=none)
  3467. 32 %955 = deref_cast (vec3 *)%871 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3468. 32x3 %956 = @load_deref (%955) (access=none)
  3469. 32x3 %957 = fadd %954, %956
  3470. 32 %958 = deref_cast (vec3 *)%865 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3471. 32x3 %959 = @load_deref (%958) (access=none)
  3472. 32 %960 = deref_cast (vec3 *)%871 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3473. 32x3 %961 = @load_deref (%960) (access=none)
  3474. 32x3 %962 = fadd %959, %961
  3475. 32 %963 = deref_cast (vec3 *)%865 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3476. 32x3 %964 = @load_deref (%963) (access=none)
  3477. 32 %965 = deref_cast (vec3 *)%871 (function_temp vec3) (ptr_stride=0, align_mul=0, align_offset=0)
  3478. 32x3 %966 = @load_deref (%965) (access=none)
  3479. 32x3 %967 = fadd %964, %966
  3480. 32 %968 = fdot3 %962, %967
  3481. 32 %969 = frsq %968
  3482. 32x3 %970 = fmul %957, %969.xxx
  3483. 32 %971 = fdot3 %952, %970
  3484. 32 %972 = fsat %971
  3485. 32 %973 = deref_var &in_baseInstance (shader_in int)
  3486. 32 %974 = @load_deref (%973) (access=none)
  3487. 32 %975 = deref_var &materials (ssbo Material[])
  3488. 32 %976 = deref_array &(*%975)[%974] (ssbo Material) // &materials[%974]
  3489. 32 %977 = deref_struct &%976->u_SpecularExponent (ssbo vec2) // &materials[%974].u_SpecularExponent
  3490. 32x2 %978 = @load_deref (%977) (access=readonly)
  3491. 32 %979 = mov %978.x
  3492. 32 %980 = deref_cast (vec4 *)%887 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3493. 32x4 %981 = @load_deref (%980) (access=none)
  3494. 32 %982 = mov %981.w
  3495. 32 %983 = fmul %979, %982
  3496. 32 %984 = deref_var &in_baseInstance (shader_in int)
  3497. 32 %985 = @load_deref (%984) (access=none)
  3498. 32 %986 = deref_var &materials (ssbo Material[])
  3499. 32 %987 = deref_array &(*%986)[%985] (ssbo Material) // &materials[%985]
  3500. 32 %988 = deref_struct &%987->u_SpecularExponent (ssbo vec2) // &materials[%985].u_SpecularExponent
  3501. 32x2 %989 = @load_deref (%988) (access=readonly)
  3502. 32 %990 = mov %989.y
  3503. 32 %991 = fadd %983, %990
  3504. 32 %992 = fpow %972, %991
  3505. 32x3 %993 = fmul %950, %992.xxx
  3506. 32 %994 = deref_var &const_temp#377 (function_temp float)
  3507. 32 %995 = @load_deref (%994) (access=none)
  3508. 32x3 %996 = fmul %993, %995.xxx
  3509. 32x3 %997 = fadd %944, %996
  3510. 32x4 %998 = mov %997.xyzx
  3511. 32x3 %999 = mov %998.xyz
  3512. 32x4 %1000 = mov %999.xyzx
  3513. @store_deref (%941, %1000) (wrmask=xyz, access=none)
  3514. 32x4 %1001 = @load_deref (%890) (access=none)
  3515. 32 %1002 = deref_cast (vec4 *)%689 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3516. @store_deref (%1002, %1001) (wrmask=xyzw, access=none)
  3517. 32x4 %1003 = @load_deref (%689) (access=none)
  3518. 32 %1004 = deref_cast (vec4 *)%520 (function_temp vec4) (ptr_stride=0, align_mul=0, align_offset=0)
  3519. @store_deref (%1004, %1003) (wrmask=xyzw, access=none)
  3520. 32 %1005 = deref_var &i#298 (function_temp int)
  3521. 32 %1006 = deref_var &i#298 (function_temp int)
  3522. 32 %1007 = @load_deref (%1006) (access=none)
  3523. 32 %1008 = deref_var &const_temp#320 (function_temp int)
  3524. 32 %1009 = @load_deref (%1008) (access=none)
  3525. 32 %1010 = iadd %1007, %1009
  3526. @store_deref (%1005, %1010) (wrmask=x, access=none)
  3527. // succs: b10
  3528. }
  3529. con block b29: // preds: b11 b14
  3530. 32 %1011 = deref_var &layer#286 (function_temp int)
  3531. 32 %1012 = deref_var &layer#286 (function_temp int)
  3532. 32 %1013 = @load_deref (%1012) (access=none)
  3533. 32 %1014 = deref_var &const_temp#321 (function_temp int)
  3534. 32 %1015 = @load_deref (%1014) (access=none)
  3535. 32 %1016 = iadd %1013, %1015
  3536. @store_deref (%1011, %1016) (wrmask=x, access=none)
  3537. // succs: b6
  3538. }
  3539. con block b30: // preds: b7
  3540. 32x4 %1017 = @load_deref (%520) (access=none)
  3541. 32 %1018 = deref_var &color (function_temp vec4)
  3542. @store_deref (%1018, %1017) (wrmask=xyzw, access=none)
  3543. 32 %1019 = deref_var &const_temp#253 (function_temp int)
  3544. 32 %1020 = @load_deref (%1019) (access=none)
  3545. 32 %1021 = i2f32 %1020
  3546. 32 %1022 = deref_var &in_baseInstance (shader_in int)
  3547. 32 %1023 = @load_deref (%1022) (access=none)
  3548. 32 %1024 = deref_var &materials (ssbo Material[])
  3549. 32 %1025 = deref_array &(*%1024)[%1023] (ssbo Material) // &materials[%1023]
  3550. 32 %1026 = deref_struct &%1025->u_InverseLightFactor (ssbo float) // &materials[%1023].u_InverseLightFactor
  3551. 32 %1027 = @load_deref (%1026) (access=readonly)
  3552. 1 %1028 = flt %1021, %1027
  3553. // succs: b31 b32
  3554. if %1028 {
  3555. con block b31: // preds: b30
  3556. 32 %1029 = deref_var &color (function_temp vec4)
  3557. 32 %1030 = deref_var &color (function_temp vec4)
  3558. 32x4 %1031 = @load_deref (%1030) (access=none)
  3559. 32x3 %1032 = mov %1031.xyz
  3560. 32 %1033 = deref_var &in_baseInstance (shader_in int)
  3561. 32 %1034 = @load_deref (%1033) (access=none)
  3562. 32 %1035 = deref_var &materials (ssbo Material[])
  3563. 32 %1036 = deref_array &(*%1035)[%1034] (ssbo Material) // &materials[%1034]
  3564. 32 %1037 = deref_struct &%1036->u_InverseLightFactor (ssbo float) // &materials[%1034].u_InverseLightFactor
  3565. 32 %1038 = @load_deref (%1037) (access=readonly)
  3566. 32x3 %1039 = fmul %1032, %1038.xxx
  3567. 32x4 %1040 = mov %1039.xyzx
  3568. 32x3 %1041 = mov %1040.xyz
  3569. 32x4 %1042 = mov %1041.xyzx
  3570. @store_deref (%1029, %1042) (wrmask=xyz, access=none)
  3571. // succs: b33
  3572. } else {
  3573. con block b32: // preds: b30, succs: b33
  3574. }
  3575. con block b33: // preds: b31 b32
  3576. 32 %1043 = deref_var &glow (function_temp vec3)
  3577. 32 %1044 = deref_var &u_GlowMap (function_temp sampler2D)
  3578. 64 %1045 = @load_deref (%1044) (access=none)
  3579. 32 %1046 = deref_var &texCoords (function_temp vec2)
  3580. 32x2 %1047 = @load_deref (%1046) (access=none)
  3581. 32x4 %1048 = (float32)tex %1045 (texture_handle), %1045 (sampler_handle), %1047 (coord), 0 (texture), 0 (sampler)
  3582. 32x3 %1049 = mov %1048.xyz
  3583. @store_deref (%1043, %1049) (wrmask=xyz, access=none)
  3584. 32 %1050 = deref_var &in_baseInstance (shader_in int)
  3585. 32 %1051 = @load_deref (%1050) (access=none)
  3586. 32 %1052 = deref_var &materials (ssbo Material[])
  3587. 32 %1053 = deref_array &(*%1052)[%1051] (ssbo Material) // &materials[%1051]
  3588. 32 %1054 = deref_struct &%1053->u_InverseLightFactor (ssbo float) // &materials[%1051].u_InverseLightFactor
  3589. 32 %1055 = @load_deref (%1054) (access=readonly)
  3590. 32 %1056 = deref_var &const_temp#256 (function_temp int)
  3591. 32 %1057 = @load_deref (%1056) (access=none)
  3592. 32 %1058 = i2f32 %1057
  3593. 1 %1059 = flt %1055, %1058
  3594. // succs: b34 b35
  3595. if %1059 {
  3596. con block b34: // preds: b33
  3597. 32 %1060 = deref_var &glow (function_temp vec3)
  3598. 32 %1061 = deref_var &glow (function_temp vec3)
  3599. 32x3 %1062 = @load_deref (%1061) (access=none)
  3600. 32 %1063 = deref_var &in_baseInstance (shader_in int)
  3601. 32 %1064 = @load_deref (%1063) (access=none)
  3602. 32 %1065 = deref_var &materials (ssbo Material[])
  3603. 32 %1066 = deref_array &(*%1065)[%1064] (ssbo Material) // &materials[%1064]
  3604. 32 %1067 = deref_struct &%1066->u_InverseLightFactor (ssbo float) // &materials[%1064].u_InverseLightFactor
  3605. 32 %1068 = @load_deref (%1067) (access=readonly)
  3606. 32 %1069 = fneg %1068
  3607. 32x3 %1070 = fmul %1062, %1069.xxx
  3608. @store_deref (%1060, %1070) (wrmask=xyz, access=none)
  3609. // succs: b36
  3610. } else {
  3611. con block b35: // preds: b33, succs: b36
  3612. }
  3613. con block b36: // preds: b34 b35
  3614. 32 %1071 = deref_var &color (function_temp vec4)
  3615. 32 %1072 = deref_var &color (function_temp vec4)
  3616. 32x4 %1073 = @load_deref (%1072) (access=none)
  3617. 32x3 %1074 = mov %1073.xyz
  3618. 32 %1075 = deref_var &glow (function_temp vec3)
  3619. 32x3 %1076 = @load_deref (%1075) (access=none)
  3620. 32x3 %1077 = fadd %1074, %1076
  3621. 32x4 %1078 = mov %1077.xyzx
  3622. 32x3 %1079 = mov %1078.xyz
  3623. 32x4 %1080 = mov %1079.xyzx
  3624. @store_deref (%1071, %1080) (wrmask=xyz, access=none)
  3625. 32 %1081 = deref_var &outputColor (shader_out vec4)
  3626. 32 %1082 = deref_var &color (function_temp vec4)
  3627. @copy_deref (%1081, %1082) (dst_access=0, src_access=0)
  3628. // succs: b37
  3629. }
  3630. con block b37: // preds: b1 b36, succs: b38
  3631. block b38:
  3632. }
  3633.  
  3634.  
  3635. Thread 101 "daemon:gl0" received signal SIGABRT, Aborted.
  3636. [Switching to Thread 0x7970ee0006c0 (LWP 758631)]
  3637. Download failed: Argument invalide. Continuing without source file ./nptl/./nptl/pthread_kill.c.
  3638. __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
  3639. warning: 44 ./nptl/pthread_kill.c: Aucun fichier ou dossier de ce type
  3640.  
  3641. Thread 104 (Thread 0x7970ada006c0 (LWP 758953) "daemon:sh2"):
  3642. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:57
  3643. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:87
  3644. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669eef644e8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3645. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669eef64490, cond=0x5669eef644c0) at ./nptl/pthread_cond_wait.c:503
  3646. #4 ___pthread_cond_wait (cond=0x5669eef644c0, mutex=0x5669eef64490) at ./nptl/pthread_cond_wait.c:627
  3647. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3648. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3649. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3650. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3651. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3652.  
  3653. Thread 103 (Thread 0x7970be0006c0 (LWP 758952) "daemon:sh1"):
  3654. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:57
  3655. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:87
  3656. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669eef644e8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3657. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669eef64490, cond=0x5669eef644c0) at ./nptl/pthread_cond_wait.c:503
  3658. #4 ___pthread_cond_wait (cond=0x5669eef644c0, mutex=0x5669eef64490) at ./nptl/pthread_cond_wait.c:627
  3659. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3660. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3661. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3662. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3663. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3664.  
  3665. Thread 102 (Thread 0x7970d64006c0 (LWP 758632) "daemon"):
  3666. #0 0x0000797123f2be3b in __recvmsg_syscall (flags=0, msg=0x7970d63ff580, fd=42) at ../sysdeps/unix/sysv/linux/recvmsg.c:27
  3667. #1 __libc_recvmsg (fd=42, msg=0x7970d63ff580, flags=0) at ../sysdeps/unix/sysv/linux/recvmsg.c:41
  3668. #2 0x00007970ae9735d5 in NaClReceiveDatagram (handle=42, message=0x7970d63ff650, flags=0) at Unvanquished/daemon/libs/nacl/native_client/src/shared/imc/linux/nacl_imc.cc:168
  3669. #3 0x00007970ae7951b6 in IPC::InternalRecvMsg (handle=42, reader=...) at Unvanquished/daemon/src/common/IPC/Primitives.cpp:384
  3670. #4 0x00007970ae795bb3 in IPC::Socket::RecvMsg (this=this@entry=0x7970b39c2240 <VM::rootChannel>) at Unvanquished/daemon/src/common/IPC/Primitives.cpp:474
  3671. #5 0x00007970ae77f14b in IPC::Channel::RecvMsg (this=0x7970b39c2240 <VM::rootChannel>) at Unvanquished/daemon/src/common/IPC/Channel.h:111
  3672. #6 CommonInit (rootSocket=rootSocket@entry=42) at Unvanquished/daemon/src/shared/VMMain.cpp:65
  3673. #7 0x00007970ae77f8f2 in vmMain (rootSocket=42) at Unvanquished/daemon/src/shared/VMMain.cpp:124
  3674. #8 0x00005669eb19eda3 in operator() (__closure=0x5669f44dc2f8) at Unvanquished/daemon/src/engine/framework/VirtualMachine.cpp:362
  3675. #9 std::__invoke_impl<void, VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > (__f=...) at /usr/include/c++/13/bits/invoke.h:61
  3676. #10 std::__invoke<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
  3677. #11 std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > >::_M_invoke<0> (this=0x5669f44dc2f8) at /usr/include/c++/13/bits/std_thread.h:292
  3678. #12 std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > >::operator() (this=0x5669f44dc2f8) at /usr/include/c++/13/bits/std_thread.h:299
  3679. #13 std::thread::_State_impl<std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > > >::_M_run(void) (this=0x5669f44dc2f0) at /usr/include/c++/13/bits/std_thread.h:244
  3680. #14 0x00007971242eabb4 in std::execute_native_thread_routine (__p=0x5669f44dc2f0) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
  3681. #15 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3682. #16 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3683.  
  3684. Thread 101 (Thread 0x7970ee0006c0 (LWP 758631) "daemon:gl0"):
  3685. #0 __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:44
  3686. #1 __pthread_kill_internal (signo=6, threadid=<optimized out>) at ./nptl/pthread_kill.c:78
  3687. #2 __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
  3688. #3 0x0000797123e4526e in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
  3689. #4 0x0000797123e288ff in __GI_abort () at ./stdlib/abort.c:79
  3690. #5 0x00007970fd898bc8 in dump_errors[cold] () from user-mesa/install/lib/dri/radeonsi_dri.so
  3691. #6 0x00007970fe0187c4 in nir_validate_shader () from user-mesa/install/lib/dri/radeonsi_dri.so
  3692. #7 0x00007970fde4e5cf in gl_nir_inline_functions () from user-mesa/install/lib/dri/radeonsi_dri.so
  3693. #8 0x00007970fde545c4 in gl_nir_link_glsl () from user-mesa/install/lib/dri/radeonsi_dri.so
  3694. #9 0x00007970fddc4207 in st_link_shader () from user-mesa/install/lib/dri/radeonsi_dri.so
  3695. #10 0x00007970fdd58e3b in link_program_error.part () from user-mesa/install/lib/dri/radeonsi_dri.so
  3696. #11 0x00007970fdb8f51b in _mesa_unmarshal_LinkProgram () from user-mesa/install/lib/dri/radeonsi_dri.so
  3697. #12 0x00007970fda1971a in glthread_unmarshal_batch () from user-mesa/install/lib/dri/radeonsi_dri.so
  3698. #13 0x00007970fd9ad9b1 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3699. #14 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3700. #15 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3701. #16 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3702.  
  3703. Thread 100 (Thread 0x7970eea006c0 (LWP 758630) "daemon:gdrv0"):
  3704. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=-1, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669fcd20014) at ./nptl/futex-internal.c:57
  3705. #1 __futex_abstimed_wait_common (cancel=true, private=-1, abstime=0x0, clockid=0, expected=0, futex_word=0x5669fcd20014) at ./nptl/futex-internal.c:87
  3706. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669fcd20014, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3707. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669fcd1ffb8, cond=0x5669fcd1ffe8) at ./nptl/pthread_cond_wait.c:503
  3708. #4 ___pthread_cond_wait (cond=0x5669fcd1ffe8, mutex=0x5669fcd1ffb8) at ./nptl/pthread_cond_wait.c:627
  3709. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3710. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3711. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3712. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3713. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3714.  
  3715. Thread 99 (Thread 0x7970ef4006c0 (LWP 758629) "daemon:traceq0"):
  3716. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669f49ddf40) at ./nptl/futex-internal.c:57
  3717. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669f49ddf40) at ./nptl/futex-internal.c:87
  3718. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669f49ddf40, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3719. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669f49ddee8, cond=0x5669f49ddf18) at ./nptl/pthread_cond_wait.c:503
  3720. #4 ___pthread_cond_wait (cond=0x5669f49ddf18, mutex=0x5669f49ddee8) at ./nptl/pthread_cond_wait.c:627
  3721. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3722. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3723. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3724. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3725. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3726.  
  3727. Thread 95 (Thread 0x7970efe006c0 (LWP 758625) "daemon:traceq0"):
  3728. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669fc8ef720) at ./nptl/futex-internal.c:57
  3729. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669fc8ef720) at ./nptl/futex-internal.c:87
  3730. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669fc8ef720, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3731. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669fc8ef6c8, cond=0x5669fc8ef6f8) at ./nptl/pthread_cond_wait.c:503
  3732. #4 ___pthread_cond_wait (cond=0x5669fc8ef6f8, mutex=0x5669fc8ef6c8) at ./nptl/pthread_cond_wait.c:627
  3733. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3734. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3735. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3736. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3737. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3738.  
  3739. Thread 94 (Thread 0x7970f60006c0 (LWP 758624) "daemon:traceq0"):
  3740. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669fd037ac0) at ./nptl/futex-internal.c:57
  3741. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669fd037ac0) at ./nptl/futex-internal.c:87
  3742. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669fd037ac0, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3743. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669fd037a68, cond=0x5669fd037a98) at ./nptl/pthread_cond_wait.c:503
  3744. #4 ___pthread_cond_wait (cond=0x5669fd037a98, mutex=0x5669fd037a68) at ./nptl/pthread_cond_wait.c:627
  3745. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3746. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3747. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3748. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3749. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3750.  
  3751. Thread 93 (Thread 0x7970f6a006c0 (LWP 758623) "daemon:sh_opt0"):
  3752. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669eef6469c) at ./nptl/futex-internal.c:57
  3753. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669eef6469c) at ./nptl/futex-internal.c:87
  3754. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669eef6469c, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3755. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669eef64640, cond=0x5669eef64670) at ./nptl/pthread_cond_wait.c:503
  3756. #4 ___pthread_cond_wait (cond=0x5669eef64670, mutex=0x5669eef64640) at ./nptl/pthread_cond_wait.c:627
  3757. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3758. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3759. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3760. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3761. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3762.  
  3763. Thread 92 (Thread 0x7970f52006c0 (LWP 758622) "daemon:sh0"):
  3764. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:57
  3765. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669eef644e8) at ./nptl/futex-internal.c:87
  3766. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669eef644e8, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3767. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669eef64490, cond=0x5669eef644c0) at ./nptl/pthread_cond_wait.c:503
  3768. #4 ___pthread_cond_wait (cond=0x5669eef644c0, mutex=0x5669eef64490) at ./nptl/pthread_cond_wait.c:627
  3769. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3770. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3771. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3772. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3773. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3774.  
  3775. Thread 91 (Thread 0x7970ae4006c0 (LWP 758621) "daemon:disk$0"):
  3776. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=21052, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x79700c1860bc) at ./nptl/futex-internal.c:57
  3777. #1 __futex_abstimed_wait_common (cancel=true, private=21052, abstime=0x0, clockid=0, expected=0, futex_word=0x79700c1860bc) at ./nptl/futex-internal.c:87
  3778. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x79700c1860bc, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3779. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x79700c186060, cond=0x79700c186090) at ./nptl/pthread_cond_wait.c:503
  3780. #4 ___pthread_cond_wait (cond=0x79700c186090, mutex=0x79700c186060) at ./nptl/pthread_cond_wait.c:627
  3781. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3782. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3783. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3784. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3785. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3786.  
  3787. Thread 90 (Thread 0x7970f7e006c0 (LWP 758620) "daemon:cs0"):
  3788. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=0, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669f32f578c) at ./nptl/futex-internal.c:57
  3789. #1 __futex_abstimed_wait_common (cancel=true, private=0, abstime=0x0, clockid=0, expected=0, futex_word=0x5669f32f578c) at ./nptl/futex-internal.c:87
  3790. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669f32f578c, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=private@entry=0) at ./nptl/futex-internal.c:139
  3791. #3 0x0000797123e9b7dd in __pthread_cond_wait_common (abstime=0x0, clockid=0, mutex=0x5669f32f5730, cond=0x5669f32f5760) at ./nptl/pthread_cond_wait.c:503
  3792. #4 ___pthread_cond_wait (cond=0x5669f32f5760, mutex=0x5669f32f5730) at ./nptl/pthread_cond_wait.c:627
  3793. #5 0x00007970fda001a7 in cnd_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3794. #6 0x00007970fd9ad8f3 in util_queue_thread_func () from user-mesa/install/lib/dri/radeonsi_dri.so
  3795. #7 0x00007970fd9fffcb in impl_thrd_routine () from user-mesa/install/lib/dri/radeonsi_dri.so
  3796. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3797. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3798.  
  3799. Thread 25 (Thread 0x7970d7e006c0 (LWP 746643) "daemon"):
  3800. #0 0x0000797123f2be3b in __recvmsg_syscall (flags=0, msg=0x7970d7dff580, fd=51) at ../sysdeps/unix/sysv/linux/recvmsg.c:27
  3801. #1 __libc_recvmsg (fd=51, msg=0x7970d7dff580, flags=0) at ../sysdeps/unix/sysv/linux/recvmsg.c:41
  3802. #2 0x00007970e17c7305 in NaClReceiveDatagram (handle=51, message=0x7970d7dff650, flags=0) at Unvanquished/daemon/libs/nacl/native_client/src/shared/imc/linux/nacl_imc.cc:168
  3803. #3 0x00007970e1784e36 in IPC::InternalRecvMsg (handle=51, reader=...) at Unvanquished/daemon/src/common/IPC/Primitives.cpp:384
  3804. #4 0x00007970e1785833 in IPC::Socket::RecvMsg (this=0x7970e1952720 <VM::rootChannel>) at Unvanquished/daemon/src/common/IPC/Primitives.cpp:474
  3805. #5 0x00007970e176ea0b in IPC::Channel::RecvMsg (this=0x7970e1952720 <VM::rootChannel>) at Unvanquished/daemon/src/common/IPC/Channel.h:111
  3806. #6 CommonInit (rootSocket=rootSocket@entry=51) at Unvanquished/daemon/src/shared/VMMain.cpp:65
  3807. #7 0x00007970e176f1b2 in vmMain (rootSocket=51) at Unvanquished/daemon/src/shared/VMMain.cpp:124
  3808. #8 0x00005669eb19eda3 in operator() (__closure=0x5669efa937e8) at Unvanquished/daemon/src/engine/framework/VirtualMachine.cpp:362
  3809. #9 std::__invoke_impl<void, VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > (__f=...) at /usr/include/c++/13/bits/invoke.h:61
  3810. #10 std::__invoke<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > (__fn=...) at /usr/include/c++/13/bits/invoke.h:96
  3811. #11 std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > >::_M_invoke<0> (this=0x5669efa937e8) at /usr/include/c++/13/bits/std_thread.h:292
  3812. #12 std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > >::operator() (this=0x5669efa937e8) at /usr/include/c++/13/bits/std_thread.h:299
  3813. #13 std::thread::_State_impl<std::thread::_Invoker<std::tuple<VM::CreateInProcessNativeVM(std::pair<IPC::Socket, IPC::Socket>, Str::StringRef, VMBase::InProcessInfo&)::<lambda()> > > >::_M_run(void) (this=0x5669efa937e0) at /usr/include/c++/13/bits/std_thread.h:244
  3814. #14 0x00007971242eabb4 in std::execute_native_thread_routine (__p=0x5669efa937e0) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
  3815. #15 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3816. #16 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3817.  
  3818. Thread 23 (Thread 0x7970cb4006c0 (LWP 746494) "daemon"):
  3819. #0 0x0000797123e98d61 in __futex_abstimed_wait_common64 (private=<optimized out>, cancel=true, abstime=0x0, op=393, expected=0, futex_word=0x5669eeb63680) at ./nptl/futex-internal.c:57
  3820. #1 __futex_abstimed_wait_common (cancel=true, private=<optimized out>, abstime=0x0, clockid=0, expected=0, futex_word=0x5669eeb63680) at ./nptl/futex-internal.c:87
  3821. #2 __GI___futex_abstimed_wait_cancelable64 (futex_word=futex_word@entry=0x5669eeb63680, expected=expected@entry=0, clockid=clockid@entry=0, abstime=abstime@entry=0x0, private=<optimized out>) at ./nptl/futex-internal.c:139
  3822. #3 0x0000797123ea4f0f in do_futex_wait (sem=sem@entry=0x5669eeb63680, abstime=0x0, clockid=0) at ./nptl/sem_waitcommon.c:111
  3823. #4 0x0000797123ea4fa8 in __new_sem_wait_slow64 (sem=0x5669eeb63680, abstime=0x0, clockid=0) at ./nptl/sem_waitcommon.c:183
  3824. #5 0x00007971248a005d in al::semaphore::wait (this=<optimized out>) at /usr/src/openal-soft-1:1.23.1-4build1/common/threads.cpp:186
  3825. #6 EventThread (context=0x5669eeb63580) at /usr/src/openal-soft-1:1.23.1-4build1/al/event.cpp:43
  3826. #7 0x00007971242eabb4 in std::execute_native_thread_routine (__p=0x5669ef059c20) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
  3827. #8 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3828. #9 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3829.  
  3830. Thread 22 (Thread 0x7970cbe006c0 (LWP 746492) "pw-data-loop"):
  3831. #0 0x0000797123f2a042 in epoll_wait (epfd=30, events=events@entry=0x7970cbdff6c0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  3832. #1 0x000079712144c138 in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7970cbdff890, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:137
  3833. #2 0x000079712143dc59 in loop_iterate (object=object@entry=0x5669ef0115d8, timeout=timeout@entry=-1) at ../spa/plugins/support/loop.c:471
  3834. #3 0x00007970f75657b6 in do_loop (user_data=0x5669eefd90d0) at ../src/pipewire/data-loop.c:65
  3835. #4 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3836. #5 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3837.  
  3838. Thread 21 (Thread 0x7970d4e006c0 (LWP 746491) "ALSoftP0"):
  3839. #0 0x0000797123f2a042 in epoll_wait (epfd=26, events=events@entry=0x7970d4dff740, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  3840. #1 0x000079712144c138 in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7970d4dff910, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:137
  3841. #2 0x000079712143dc59 in loop_iterate (object=0x5669ef009468, timeout=-1) at ../spa/plugins/support/loop.c:471
  3842. #3 0x00007970f75b1c67 in do_loop (user_data=0x5669eefd6a90) at ../src/pipewire/thread-loop.c:295
  3843. #4 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3844. #5 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3845.  
  3846. Thread 20 (Thread 0x7970d6e006c0 (LWP 746490) "PWEventThread"):
  3847. #0 0x0000797123f2a042 in epoll_wait (epfd=17, events=events@entry=0x7970d6dff740, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  3848. #1 0x000079712144c138 in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7970d6dff910, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:137
  3849. #2 0x000079712143dc59 in loop_iterate (object=0x5669eef45b08, timeout=-1) at ../spa/plugins/support/loop.c:471
  3850. #3 0x00007970f75b1c67 in do_loop (user_data=0x5669eeea46f0) at ../src/pipewire/thread-loop.c:295
  3851. #4 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3852. #5 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3853.  
  3854. Thread 19 (Thread 0x7970e0e006c0 (LWP 746489) "pw-data-loop"):
  3855. #0 0x0000797123f2a042 in epoll_wait (epfd=21, events=events@entry=0x7970e0dff6c0, maxevents=32, timeout=-1) at ../sysdeps/unix/sysv/linux/epoll_wait.c:30
  3856. #1 0x000079712144c138 in impl_pollfd_wait (object=<optimized out>, pfd=<optimized out>, ev=0x7970e0dff890, n_ev=<optimized out>, timeout=<optimized out>) at ../spa/plugins/support/system.c:137
  3857. #2 0x000079712143dc59 in loop_iterate (object=object@entry=0x5669eef4e4d8, timeout=timeout@entry=-1) at ../spa/plugins/support/loop.c:471
  3858. #3 0x00007970f75657b6 in do_loop (user_data=0x5669eef4e370) at ../src/pipewire/data-loop.c:65
  3859. #4 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3860. #5 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3861.  
  3862. Thread 3 (Thread 0x7971214006c0 (LWP 746198) "daemon"):
  3863. #0 0x0000797123f2b83d in __libc_accept (fd=4, addr=..., len=0x0) at ../sysdeps/unix/sysv/linux/accept.c:26
  3864. #1 0x00005669eb19b98d in Sys::ReadSingletonSocket () at Unvanquished/daemon/src/engine/framework/System.cpp:246
  3865. #2 0x00007971242eabb4 in std::execute_native_thread_routine (__p=0x5669edea1870) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
  3866. #3 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3867. #4 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3868.  
  3869. Thread 2 (Thread 0x7971224006c0 (LWP 746197) "daemon"):
  3870. #0 0x0000797123eecadf in __GI___clock_nanosleep (clock_id=clock_id@entry=0, flags=flags@entry=0, req=req@entry=0x7971223ff9c0, rem=rem@entry=0x7971223ff9c0) at ../sysdeps/unix/sysv/linux/clock_nanosleep.c:78
  3871. #1 0x0000797123ef9a27 in __GI___nanosleep (req=req@entry=0x7971223ff9c0, rem=rem@entry=0x7971223ff9c0) at ../sysdeps/unix/sysv/linux/nanosleep.c:25
  3872. #2 0x0000797123f0ec63 in __sleep (seconds=0) at ../sysdeps/posix/sleep.c:55
  3873. #3 0x00005669eb19abfa in Sys::SignalThread () at Unvanquished/daemon/src/engine/framework/System.cpp:389
  3874. #4 0x00007971242eabb4 in std::execute_native_thread_routine (__p=0x5669eded0e60) at ../../../../../src/libstdc++-v3/src/c++11/thread.cc:104
  3875. #5 0x0000797123e9ca94 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:447
  3876. #6 0x0000797123f29c3c in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
  3877.  
  3878. Thread 1 (Thread 0x7971224e5a80 (LWP 746079) "daemon"):
  3879. #0 syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
  3880. #1 0x00007970fd9a2b96 in futex_wait () from user-mesa/install/lib/dri/radeonsi_dri.so
  3881. #2 0x00007970fd9ad76b in do_futex_fence_wait.constprop.1.isra () from user-mesa/install/lib/dri/radeonsi_dri.so
  3882. #3 0x00007970fda19d9d in _mesa_glthread_finish.part.0 () from user-mesa/install/lib/dri/radeonsi_dri.so
  3883. #4 0x00007970fdb86d0f in _mesa_marshal_GetProgramiv () from user-mesa/install/lib/dri/radeonsi_dri.so
  3884. #5 0x00005669eb053d14 in GLShaderManager::LinkProgram (this=0x5669ebaf1180 <gl_shaderManager>, program=119) at Unvanquished/daemon/src/engine/renderer/gl_shader.cpp:1555
  3885. #6 0x00005669eb054e9e in GLShaderManager::buildPermutation (this=this@entry=0x5669ebaf1180 <gl_shaderManager>, shader=shader@entry=0x5669f7552660, macroIndex=macroIndex@entry=0, deformIndex=deformIndex@entry=0) at /usr/include/c++/13/bits/basic_string.h:1071
  3886. #7 0x00005669eb054f6f in GLShaderManager::buildAll (this=0x5669ebaf1180 <gl_shaderManager>) at Unvanquished/daemon/src/engine/renderer/gl_shader.cpp:996
  3887. #8 0x00005669eaff278d in CL_InitCGame () at Unvanquished/daemon/src/engine/client/cl_cgame.cpp:640
  3888. #9 0x00005669eb179787 in Cmd::ExecuteCommand (command=..., parseCvars=<optimized out>, env=0x0) at Unvanquished/daemon/src/engine/framework/CommandSystem.cpp:215
  3889. #10 0x00005669eb179e8c in Cmd::ExecuteCommandBuffer () at /usr/include/c++/13/bits/basic_string.h:1071
  3890. #11 0x00005669eaf9c850 in Com_Frame () at Unvanquished/daemon/src/engine/qcommon/common.cpp:935
  3891. #12 0x00005669eaf95e7d in Application::ClientApplication::Frame (this=0x5669eb297e40 <Application::GetApp()::app>) at Unvanquished/daemon/src/engine/client/ClientApplication.cpp:96
  3892. #13 0x00005669eaf957a5 in main (argc=<optimized out>, argv=<optimized out>) at Unvanquished/daemon/src/engine/framework/System.cpp:784
  3893.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement