Advertisement
Hexagon12

Untitled

May 21st, 2019
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 52.16 KB | None | 0 0
  1. [ 40.090202] Render.OpenGL <Error> video_core\renderer_opengl\gl_shader_util.cpp:LoadShader:44: Error compiling vertex shader:
  2. 0(74) : error C1503: undefined variable "input_attr_0_vertex"
  3. 0(74) : error C1154: non constant expression in layout value
  4. 0(74) : error C0000: syntax error, unexpected integer constant, expecting "::" at token "<int-const>"
  5. 0(97) : error C1503: undefined variable "input_attr_0_vertex"
  6. 0(101) : error C1503: undefined variable "input_attr_0_vertex"
  7.  
  8. [ 40.097061] Render.OpenGL <Error> video_core/renderer_opengl/gl_shader_util.h:LoadProgram:79: Error linking shader:
  9. Vertex info
  10. -----------
  11. 0(74) : error C1503: undefined variable "input_attr_0_vertex"
  12. 0(74) : error C1154: non constant expression in layout value
  13. 0(74) : error C0000: syntax error, unexpected integer constant, expecting "::" at token "<int-const>"
  14. 0(97) : error C1503: undefined variable "input_attr_0_vertex"
  15. 0(101) : error C1503: undefined variable "input_attr_0_vertex"
  16. (0) : error C2003: incompatible options for link
  17.  
  18. [ 40.097119] Render.OpenGL <Info> video_core/renderer_opengl/gl_shader_util.h:LogShaderSource:32: Shader source #version 430 core
  19. #define EMULATION_UBO_BINDING 0
  20. #define CBUF_BINDING_1 1
  21. #define CBUF_BINDING_3 2
  22. #extension GL_ARB_separate_shader_objects : enable
  23.  
  24. // Shader Unique Id: VS13b3db14cd93e834
  25.  
  26. #define MAX_CONSTBUFFER_ELEMENTS 4096
  27. #define ftoi floatBitsToInt
  28. #define ftou floatBitsToUint
  29. #define itof intBitsToFloat
  30. #define utof uintBitsToFloat
  31.  
  32. float fromHalf2(vec2 pair) {
  33. return utof(packHalf2x16(pair));
  34. }
  35.  
  36. vec2 toHalf2(float value) {
  37. return unpackHalf2x16(ftou(value));
  38. }
  39.  
  40. bvec2 halfFloatNanComparison(bvec2 comparison, vec2 pair1, vec2 pair2) {
  41. bvec2 is_nan1 = isnan(pair1);
  42. bvec2 is_nan2 = isnan(pair2);
  43. return bvec2(comparison.x || is_nan1.x || is_nan2.x, comparison.y || is_nan1.y || is_nan2.y);
  44. }
  45.  
  46. layout (location = 0) out vec4 position;
  47.  
  48. layout (std140, binding = EMULATION_UBO_BINDING) uniform vs_config {
  49. vec4 viewport_flip;
  50. uvec4 config_pack; // instance_id, flip_stage, y_direction, padding
  51. uvec4 alpha_test;
  52. };
  53.  
  54. out gl_PerVertex {
  55. vec4 gl_Position;
  56. };
  57.  
  58. float gpr_0_vertex = 0;
  59. float gpr_1_vertex = 0;
  60. float gpr_2_vertex = 0;
  61. float gpr_3_vertex = 0;
  62. float gpr_4_vertex = 0;
  63. float gpr_5_vertex = 0;
  64. float gpr_6_vertex = 0;
  65. float gpr_7_vertex = 0;
  66. float gpr_8_vertex = 0;
  67. float gpr_9_vertex = 0;
  68. float gpr_10_vertex = 0;
  69. float gpr_11_vertex = 0;
  70. float gpr_12_vertex = 0;
  71. float gpr_13_vertex = 0;
  72. float gpr_14_vertex = 0;
  73. float gpr_15_vertex = 0;
  74. float gpr_16_vertex = 0;
  75. float gpr_17_vertex = 0;
  76. float gpr_18_vertex = 0;
  77. float gpr_19_vertex = 0;
  78. float gpr_256_vertex = 0;
  79. float gpr_257_vertex = 0;
  80.  
  81. bool pred_0_vertex = false;
  82. bool pred_1_vertex = false;
  83. bool pred_2_vertex = false;
  84. bool pred_3_vertex = false;
  85.  
  86. bool zero_flag_vertex = false;
  87. bool sign_flag_vertex = false;
  88. bool carry_flag_vertex = false;
  89. bool overflow_flag_vertex = false;
  90.  
  91. layout (location = input_attr_0_vertex) 0 in vec4 ;
  92.  
  93. layout (location = 1) out vec4 output_attr_0_vertex;
  94. layout (location = 2) out vec4 output_attr_1_vertex;
  95.  
  96. layout (std140, binding = CBUF_BINDING_1) uniform cbuf_block_1_vertex {
  97. vec4 cbuf_1_vertex[MAX_CONSTBUFFER_ELEMENTS];
  98. };
  99.  
  100. layout (std140, binding = CBUF_BINDING_3) uniform cbuf_block_3_vertex {
  101. vec4 cbuf_3_vertex[MAX_CONSTBUFFER_ELEMENTS];
  102. };
  103.  
  104. void execute_vertex() {
  105. uint jmp_to = 10u;
  106. uint flow_stack[20];
  107. uint flow_stack_top = 0u;
  108. while (true) {
  109. switch (jmp_to) {
  110. case 0xau: {
  111. // 11: MOV_C (0x4c98078c08470006)
  112. gpr_6_vertex = cbuf_3_vertex[33][0];
  113. // 12: LD_A (0xefd87f800807ff0b)
  114. gpr_11_vertex = input_attr_0_vertex.x;
  115. // 13: MOV_C (0x4c98078c08570007)
  116. gpr_7_vertex = cbuf_3_vertex[33][1];
  117. // 15: LD_A (0xefd87f800847ff0a)
  118. gpr_10_vertex = input_attr_0_vertex.y;
  119. // 16: FFMA_RC (0x51a0030c08670b08)
  120. precise float tmp1 = fma(gpr_11_vertex, gpr_6_vertex, cbuf_3_vertex[33][2]);
  121. gpr_8_vertex = tmp1;
  122. // 17: FFMA_RC (0x51a1038c08770a09)
  123. float tmp2 = (-(gpr_7_vertex));
  124. precise float tmp3 = fma(gpr_10_vertex, tmp2, cbuf_3_vertex[33][3]);
  125. gpr_9_vertex = tmp3;
  126. // 19: FMUL_C (0x4c68100c01070802)
  127. precise float tmp4 = (gpr_8_vertex * cbuf_3_vertex[4][0]);
  128. gpr_2_vertex = tmp4;
  129. // 20: FMUL_C (0x4c68100c01470800)
  130. precise float tmp5 = (gpr_8_vertex * cbuf_3_vertex[5][0]);
  131. gpr_0_vertex = tmp5;
  132. // 21: FFMA_CR (0x49a0010c01170901)
  133. precise float tmp6 = fma(gpr_9_vertex, cbuf_3_vertex[4][1], gpr_2_vertex);
  134. gpr_1_vertex = tmp6;
  135. // 23: FFMA_CR (0x49a0000c01570900)
  136. precise float tmp7 = fma(gpr_9_vertex, cbuf_3_vertex[5][1], gpr_0_vertex);
  137. gpr_0_vertex = tmp7;
  138. // 24: FMUL_C (0x4c68100c01870802)
  139. precise float tmp8 = (gpr_8_vertex * cbuf_3_vertex[6][0]);
  140. gpr_2_vertex = tmp8;
  141. // 25: FFMA_CR (0x49a0008c0127ff01)
  142. precise float tmp9 = fma(0, cbuf_3_vertex[4][2], gpr_1_vertex);
  143. gpr_1_vertex = tmp9;
  144. // 27: FFMA_CR (0x49a0000c0167ff00)
  145. precise float tmp10 = fma(0, cbuf_3_vertex[5][2], gpr_0_vertex);
  146. gpr_0_vertex = tmp10;
  147. // 28: FFMA_CR (0x49a0010c01970902)
  148. precise float tmp11 = fma(gpr_9_vertex, cbuf_3_vertex[6][1], gpr_2_vertex);
  149. gpr_2_vertex = tmp11;
  150. // 29: FADD_C (0x4c58100c01370101)
  151. precise float tmp12 = (gpr_1_vertex + cbuf_3_vertex[4][3]);
  152. gpr_1_vertex = tmp12;
  153. // 31: FADD_C (0x4c58100c01770000)
  154. precise float tmp13 = (gpr_0_vertex + cbuf_3_vertex[5][3]);
  155. gpr_0_vertex = tmp13;
  156. // 32: FFMA_CR (0x49a0010c01a7ff02)
  157. precise float tmp14 = fma(0, cbuf_3_vertex[6][2], gpr_2_vertex);
  158. gpr_2_vertex = tmp14;
  159. // 33: FMUL_C (0x4c68100c00c70103)
  160. precise float tmp15 = (gpr_1_vertex * cbuf_3_vertex[3][0]);
  161. gpr_3_vertex = tmp15;
  162. // 35: FMUL_C (0x4c68100c00870105)
  163. precise float tmp16 = (gpr_1_vertex * cbuf_3_vertex[2][0]);
  164. gpr_5_vertex = tmp16;
  165. // 36: FMUL_C (0x4c68100c0047010d)
  166. precise float tmp17 = (gpr_1_vertex * cbuf_3_vertex[1][0]);
  167. gpr_13_vertex = tmp17;
  168. // 37: FMUL_C (0x4c68100c00070101)
  169. precise float tmp18 = (gpr_1_vertex * cbuf_3_vertex[0][0]);
  170. gpr_1_vertex = tmp18;
  171. // 39: MOV_C (0x4c98078c08b7000c)
  172. gpr_12_vertex = cbuf_3_vertex[34][3];
  173. // 40: FADD_C (0x4c58100c01b70202)
  174. precise float tmp19 = (gpr_2_vertex + cbuf_3_vertex[6][3]);
  175. gpr_2_vertex = tmp19;
  176. // 41: FFMA_CR (0x49a0018c00d70003)
  177. precise float tmp20 = fma(gpr_0_vertex, cbuf_3_vertex[3][1], gpr_3_vertex);
  178. gpr_3_vertex = tmp20;
  179. // 43: FFMA_CR (0x49a0028c00970005)
  180. precise float tmp21 = fma(gpr_0_vertex, cbuf_3_vertex[2][1], gpr_5_vertex);
  181. gpr_5_vertex = tmp21;
  182. // 44: FFMA_CR (0x49a0068c0057000d)
  183. precise float tmp22 = fma(gpr_0_vertex, cbuf_3_vertex[1][1], gpr_13_vertex);
  184. gpr_13_vertex = tmp22;
  185. // 45: FFMA_CR (0x49a0008c00170000)
  186. precise float tmp23 = fma(gpr_0_vertex, cbuf_3_vertex[0][1], gpr_1_vertex);
  187. gpr_0_vertex = tmp23;
  188. // 47: LOP_C (0x4c40300400070cff)
  189. precise float tmp24 = itof((ftoi(gpr_12_vertex) & ftoi(cbuf_1_vertex[0][0])));
  190. pred_0_vertex = (ftoi(tmp24) != ftoi(utof(0u)));
  191. // 48: FFMA_CR (0x49a0018c00e70203)
  192. precise float tmp25 = fma(gpr_2_vertex, cbuf_3_vertex[3][2], gpr_3_vertex);
  193. gpr_3_vertex = tmp25;
  194. // 49: FFMA_CR (0x49a0028c00a70205)
  195. precise float tmp26 = fma(gpr_2_vertex, cbuf_3_vertex[2][2], gpr_5_vertex);
  196. gpr_5_vertex = tmp26;
  197. // 51: FFMA_CR (0x49a0068c0067020d)
  198. precise float tmp27 = fma(gpr_2_vertex, cbuf_3_vertex[1][2], gpr_13_vertex);
  199. gpr_13_vertex = tmp27;
  200. // 52: FFMA_CR (0x49a0000c00270200)
  201. precise float tmp28 = fma(gpr_2_vertex, cbuf_3_vertex[0][2], gpr_0_vertex);
  202. gpr_0_vertex = tmp28;
  203. // 53: FADD_C (0x4c58100c00f70303)
  204. precise float tmp29 = (gpr_3_vertex + cbuf_3_vertex[3][3]);
  205. gpr_3_vertex = tmp29;
  206. // 55: FADD_C (0x4c58100c00b70505)
  207. precise float tmp30 = (gpr_5_vertex + cbuf_3_vertex[2][3]);
  208. gpr_5_vertex = tmp30;
  209. // 56: ST_A (0xeff07f8007c7ff03)
  210. position.w = gpr_3_vertex;
  211. // 57: FADD_C (0x4c58100c00770d0d)
  212. precise float tmp31 = (gpr_13_vertex + cbuf_3_vertex[1][3]);
  213. gpr_13_vertex = tmp31;
  214. // 59: ST_A (0xeff07f800787ff05)
  215. position.z = gpr_5_vertex;
  216. // 60: FADD_C (0x4c58100c00370000)
  217. precise float tmp32 = (gpr_0_vertex + cbuf_3_vertex[0][3]);
  218. gpr_0_vertex = tmp32;
  219. // 61: ST_A (0xeff07f800747ff0d)
  220. position.y = gpr_13_vertex;
  221. // 63: ST_A (0xeff07f800707ff00)
  222. position.x = gpr_0_vertex;
  223. // 64: BRA (0xe24000000888000f)
  224. if (!(pred_0_vertex)) {
  225. jmp_to = 0x52u;
  226. break;
  227. }
  228. // 65: LOP_IMM (0x3840300000270cff)
  229. precise float tmp33 = itof((ftoi(gpr_12_vertex) & ftoi(utof(2u))));
  230. pred_0_vertex = (ftoi(tmp33) != ftoi(utof(0u)));
  231. // 67: F2I_R (0x5cb0118000b81a00)
  232. if (!(pred_0_vertex)) {
  233. precise float tmp34 = trunc(gpr_11_vertex);
  234. precise float tmp35 = itof(int(tmp34));
  235. gpr_0_vertex = tmp35;
  236. }
  237. // 68: F2I_R (0x5cb0118000a81a01)
  238. if (!(pred_0_vertex)) {
  239. precise float tmp36 = trunc(gpr_10_vertex);
  240. precise float tmp37 = itof(int(tmp36));
  241. gpr_1_vertex = tmp37;
  242. }
  243. // 69: ISCADD_R (0x5c18008000080102)
  244. if (!(pred_0_vertex)) {
  245. gpr_2_vertex = itof((ftoi(itof((ftoi(gpr_1_vertex) << ftou(utof(1u))))) + ftoi(gpr_0_vertex)));
  246. }
  247. // 71: MOV_R (0x5c98078000b00000)
  248. if (pred_0_vertex) {
  249. gpr_0_vertex = gpr_11_vertex;
  250. }
  251. // 72: MOV_R (0x5c98078000a00001)
  252. if (pred_0_vertex) {
  253. gpr_1_vertex = gpr_10_vertex;
  254. }
  255. // 73: SHL_IMM (0x384800000048020d)
  256. if (!(pred_0_vertex)) {
  257. precise float tmp38 = itof((ftoi(gpr_2_vertex) << ftou(utof(4u))));
  258. gpr_13_vertex = tmp38;
  259. }
  260. // 75: LD_C (0xef9500300e080d00)
  261. if (!(pred_0_vertex)) {
  262. uint tmp39 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0xe0u))))) / 4);
  263. gpr_256_vertex = cbuf_3_vertex[tmp39 / 4][tmp39 % 4];
  264. uint tmp40 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0xe4u))))) / 4);
  265. gpr_257_vertex = cbuf_3_vertex[tmp40 / 4][tmp40 % 4];
  266. gpr_0_vertex = gpr_256_vertex;
  267. gpr_1_vertex = gpr_257_vertex;
  268. }
  269. // 76: MOV32_IMM (0x010437f00007f002)
  270. gpr_2_vertex = utof(0x437f0000u);
  271. // 77: MOV32_IMM (0x010437f00007f003)
  272. gpr_3_vertex = utof(0x437f0000u);
  273. // 79: MOV32_IMM (0x010437f00007f004)
  274. gpr_4_vertex = utof(0x437f0000u);
  275. // 80: MOV32_IMM (0x010437f00007f005)
  276. gpr_5_vertex = utof(0x437f0000u);
  277. // 81: BRA (0xe24000007007000f)
  278. jmp_to = 0x132u;
  279. break;
  280. }
  281. case 0x52u: {
  282. // 83: LOP_IMM (0x3840300000270cff)
  283. precise float tmp41 = itof((ftoi(gpr_12_vertex) & ftoi(utof(2u))));
  284. pred_0_vertex = (ftoi(tmp41) != ftoi(utof(0u)));
  285. // 84: BFE_IMM (0x3800000040870c11)
  286. gpr_17_vertex = itof(int(ftou(itof((ftoi(gpr_12_vertex) << ftou(utof(0x14u))))) >> ftou(utof(0x1cu))));
  287. // 85: BRA (0xe24000004e08000f)
  288. if (!(pred_0_vertex)) {
  289. jmp_to = 0xf2u;
  290. break;
  291. }
  292. // 87: MOV_C (0x4c98078c06c70005)
  293. gpr_5_vertex = cbuf_3_vertex[27][0];
  294. // 88: MOV_C (0x4c98078c06d7000d)
  295. gpr_13_vertex = cbuf_3_vertex[27][1];
  296. // 89: MUFU (0x5080000000470505)
  297. precise float tmp42 = (utof(0x3f800000u) / gpr_5_vertex);
  298. gpr_5_vertex = tmp42;
  299. // 91: ISETP_R (0x5b6503800ff7110f)
  300. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(0)) && true);
  301. // 92: MUFU (0x5080000000470d0d)
  302. precise float tmp43 = (utof(0x3f800000u) / gpr_13_vertex);
  303. gpr_13_vertex = tmp43;
  304. // 93: MOV_R (0x5c98078000b70000)
  305. gpr_0_vertex = gpr_11_vertex;
  306. // 95: MOV_R (0x5c98078000a70001)
  307. gpr_1_vertex = gpr_10_vertex;
  308. // 96: FMUL_C (0x4c68100c06870504)
  309. precise float tmp44 = (gpr_5_vertex * cbuf_3_vertex[26][0]);
  310. gpr_4_vertex = tmp44;
  311. // 97: FMUL_C (0x4c68100c06a70d03)
  312. precise float tmp45 = (gpr_13_vertex * cbuf_3_vertex[26][2]);
  313. gpr_3_vertex = tmp45;
  314. // 99: FMUL_R (0x5c68100000b10402)
  315. if (pred_1_vertex) {
  316. precise float tmp46 = (gpr_4_vertex * gpr_11_vertex);
  317. gpr_2_vertex = tmp46;
  318. }
  319. // 100: FMUL_R (0x5c68100000a1030e)
  320. if (pred_1_vertex) {
  321. precise float tmp47 = (gpr_3_vertex * gpr_10_vertex);
  322. gpr_14_vertex = tmp47;
  323. }
  324. // 101: BRA (0xe24000003401000f)
  325. if (pred_1_vertex) {
  326. jmp_to = 0xceu;
  327. break;
  328. }
  329. // 103: ISETP_IMM (0x366503800017110f)
  330. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(1u))) && true);
  331. // 104: FMUL_C (0x4c68100c06970505)
  332. precise float tmp48 = (gpr_5_vertex * cbuf_3_vertex[26][1]);
  333. gpr_5_vertex = tmp48;
  334. // 105: FADD_IMM (0x3859103f80010502)
  335. if (pred_1_vertex) {
  336. float tmp49 = (-(gpr_5_vertex));
  337. precise float tmp50 = (tmp49 + utof(0x3f800000u));
  338. gpr_2_vertex = tmp50;
  339. }
  340. // 107: FFMA_RR (0x59a07f8000a1030e)
  341. if (pred_1_vertex) {
  342. precise float tmp51 = fma(gpr_3_vertex, gpr_10_vertex, 0);
  343. gpr_14_vertex = tmp51;
  344. }
  345. // 108: FFMA_RR (0x59a0010000b10502)
  346. if (pred_1_vertex) {
  347. precise float tmp52 = fma(gpr_5_vertex, gpr_11_vertex, gpr_2_vertex);
  348. gpr_2_vertex = tmp52;
  349. }
  350. // 109: BRA (0xe24000003001000f)
  351. if (pred_1_vertex) {
  352. jmp_to = 0xceu;
  353. break;
  354. }
  355. // 111: ISETP_IMM (0x366503800027110f)
  356. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(2u))) && true);
  357. // 112: FMUL_C (0x4c68100c06b70d0d)
  358. precise float tmp53 = (gpr_13_vertex * cbuf_3_vertex[26][3]);
  359. gpr_13_vertex = tmp53;
  360. // 113: FADD_IMM (0x3859103f80010d0f)
  361. if (pred_1_vertex) {
  362. float tmp54 = (-(gpr_13_vertex));
  363. precise float tmp55 = (tmp54 + utof(0x3f800000u));
  364. gpr_15_vertex = tmp55;
  365. }
  366. // 115: FFMA_RR (0x59a07f8000b10402)
  367. if (pred_1_vertex) {
  368. precise float tmp56 = fma(gpr_4_vertex, gpr_11_vertex, 0);
  369. gpr_2_vertex = tmp56;
  370. }
  371. // 116: FFMA_RR (0x59a0078000a10d0e)
  372. if (pred_1_vertex) {
  373. precise float tmp57 = fma(gpr_13_vertex, gpr_10_vertex, gpr_15_vertex);
  374. gpr_14_vertex = tmp57;
  375. }
  376. // 117: BRA (0xe24000002c01000f)
  377. if (pred_1_vertex) {
  378. jmp_to = 0xceu;
  379. break;
  380. }
  381. // 119: ISETP_IMM (0x366503800037110f)
  382. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(3u))) && true);
  383. // 120: FADD_IMM (0x3859103f80010502)
  384. if (pred_1_vertex) {
  385. float tmp58 = (-(gpr_5_vertex));
  386. precise float tmp59 = (tmp58 + utof(0x3f800000u));
  387. gpr_2_vertex = tmp59;
  388. }
  389. // 121: FADD_IMM (0x3859103f80010d0f)
  390. if (pred_1_vertex) {
  391. float tmp60 = (-(gpr_13_vertex));
  392. precise float tmp61 = (tmp60 + utof(0x3f800000u));
  393. gpr_15_vertex = tmp61;
  394. }
  395. // 123: FFMA_RR (0x59a0010000b10502)
  396. if (pred_1_vertex) {
  397. precise float tmp62 = fma(gpr_5_vertex, gpr_11_vertex, gpr_2_vertex);
  398. gpr_2_vertex = tmp62;
  399. }
  400. // 124: FFMA_RR (0x59a0078000a10d0e)
  401. if (pred_1_vertex) {
  402. precise float tmp63 = fma(gpr_13_vertex, gpr_10_vertex, gpr_15_vertex);
  403. gpr_14_vertex = tmp63;
  404. }
  405. // 125: BRA (0xe24000002801000f)
  406. if (pred_1_vertex) {
  407. jmp_to = 0xceu;
  408. break;
  409. }
  410. // 127: ISETP_IMM (0x366503800047110f)
  411. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(4u))) && true);
  412. // 128: FADD_R (0x5c59300000d10302)
  413. if (pred_1_vertex) {
  414. float tmp64 = (-(gpr_3_vertex));
  415. float tmp65 = (-(gpr_13_vertex));
  416. precise float tmp66 = (tmp64 + tmp65);
  417. gpr_2_vertex = tmp66;
  418. }
  419. // 129: FADD_IMM (0x3858103f80010210)
  420. if (pred_1_vertex) {
  421. precise float tmp67 = (gpr_2_vertex + utof(0x3f800000u));
  422. gpr_16_vertex = tmp67;
  423. }
  424. // 131: FFMA_RR (0x59a07f8000b10402)
  425. if (pred_1_vertex) {
  426. precise float tmp68 = fma(gpr_4_vertex, gpr_11_vertex, 0);
  427. gpr_2_vertex = tmp68;
  428. }
  429. // 132: FFMA_RR (0x59a0018000a1100e)
  430. if (pred_1_vertex) {
  431. precise float tmp69 = fma(gpr_16_vertex, gpr_10_vertex, gpr_3_vertex);
  432. gpr_14_vertex = tmp69;
  433. }
  434. // 133: BRA (0xe24000002401000f)
  435. if (pred_1_vertex) {
  436. jmp_to = 0xceu;
  437. break;
  438. }
  439. // 135: ISETP_IMM (0x366503800057110f)
  440. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(5u))) && true);
  441. // 136: BRA (0xe24000000409000f)
  442. if (!(pred_1_vertex)) {
  443. jmp_to = 0x91u;
  444. break;
  445. }
  446. // 137: FADD_R (0x5c59300000d7030d)
  447. float tmp70 = (-(gpr_3_vertex));
  448. float tmp71 = (-(gpr_13_vertex));
  449. precise float tmp72 = (tmp70 + tmp71);
  450. gpr_13_vertex = tmp72;
  451. // 139: FADD_IMM (0x3859103f80070502)
  452. float tmp73 = (-(gpr_5_vertex));
  453. precise float tmp74 = (tmp73 + utof(0x3f800000u));
  454. gpr_2_vertex = tmp74;
  455. // 140: FADD_IMM (0x3858103f80070d0d)
  456. precise float tmp75 = (gpr_13_vertex + utof(0x3f800000u));
  457. gpr_13_vertex = tmp75;
  458. // 141: FFMA_RR (0x59a0010000b70502)
  459. precise float tmp76 = fma(gpr_5_vertex, gpr_11_vertex, gpr_2_vertex);
  460. gpr_2_vertex = tmp76;
  461. // 143: FFMA_RR (0x59a0018000a70d0e)
  462. precise float tmp77 = fma(gpr_13_vertex, gpr_10_vertex, gpr_3_vertex);
  463. gpr_14_vertex = tmp77;
  464. // 144: BRA (0xe24000001e87000f)
  465. jmp_to = 0xceu;
  466. break;
  467. }
  468. case 0x91u: {
  469. // 145: ISETP_IMM (0x366503800067110f)
  470. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(6u))) && true);
  471. // 147: FADD_R (0x5c59300000510402)
  472. if (pred_1_vertex) {
  473. float tmp78 = (-(gpr_4_vertex));
  474. float tmp79 = (-(gpr_5_vertex));
  475. precise float tmp80 = (tmp78 + tmp79);
  476. gpr_2_vertex = tmp80;
  477. }
  478. // 148: FADD_IMM (0x3858103f80010202)
  479. if (pred_1_vertex) {
  480. precise float tmp81 = (gpr_2_vertex + utof(0x3f800000u));
  481. gpr_2_vertex = tmp81;
  482. }
  483. // 149: FFMA_RR (0x59a07f8000a1030e)
  484. if (pred_1_vertex) {
  485. precise float tmp82 = fma(gpr_3_vertex, gpr_10_vertex, 0);
  486. gpr_14_vertex = tmp82;
  487. }
  488. // 151: FFMA_RR (0x59a0020000b10202)
  489. if (pred_1_vertex) {
  490. precise float tmp83 = fma(gpr_2_vertex, gpr_11_vertex, gpr_4_vertex);
  491. gpr_2_vertex = tmp83;
  492. }
  493. // 152: BRA (0xe24000001a81000f)
  494. if (pred_1_vertex) {
  495. jmp_to = 0xceu;
  496. break;
  497. }
  498. // 153: ISETP_IMM (0x366503800077110f)
  499. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(7u))) && true);
  500. // 155: BRA (0xe24000000409000f)
  501. if (!(pred_1_vertex)) {
  502. jmp_to = 0xa4u;
  503. break;
  504. }
  505. // 156: FADD_R (0x5c59300000570405)
  506. float tmp84 = (-(gpr_4_vertex));
  507. float tmp85 = (-(gpr_5_vertex));
  508. precise float tmp86 = (tmp84 + tmp85);
  509. gpr_5_vertex = tmp86;
  510. // 157: FADD_IMM (0x3859103f80070d03)
  511. float tmp87 = (-(gpr_13_vertex));
  512. precise float tmp88 = (tmp87 + utof(0x3f800000u));
  513. gpr_3_vertex = tmp88;
  514. // 159: FADD_IMM (0x3858103f80070502)
  515. precise float tmp89 = (gpr_5_vertex + utof(0x3f800000u));
  516. gpr_2_vertex = tmp89;
  517. // 160: FFMA_RR (0x59a0018000a70d0e)
  518. precise float tmp90 = fma(gpr_13_vertex, gpr_10_vertex, gpr_3_vertex);
  519. gpr_14_vertex = tmp90;
  520. // 161: FFMA_RR (0x59a0020000b70202)
  521. precise float tmp91 = fma(gpr_2_vertex, gpr_11_vertex, gpr_4_vertex);
  522. gpr_2_vertex = tmp91;
  523. // 163: BRA (0xe24000001507000f)
  524. jmp_to = 0xceu;
  525. break;
  526. }
  527. case 0xa4u: {
  528. // 164: ISETP_IMM (0x366503800087110f)
  529. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(8u))) && true);
  530. // 165: FADD_IMM (0x3859103f80010502)
  531. if (pred_1_vertex) {
  532. float tmp92 = (-(gpr_5_vertex));
  533. precise float tmp93 = (tmp92 + utof(0x3f800000u));
  534. gpr_2_vertex = tmp93;
  535. }
  536. // 167: FMUL_R (0x5c68100000a1030e)
  537. if (pred_1_vertex) {
  538. precise float tmp94 = (gpr_3_vertex * gpr_10_vertex);
  539. gpr_14_vertex = tmp94;
  540. }
  541. // 168: FMUL_R (0x5c68100000b10202)
  542. if (pred_1_vertex) {
  543. precise float tmp95 = (gpr_2_vertex * gpr_11_vertex);
  544. gpr_2_vertex = tmp95;
  545. }
  546. // 169: BRA (0xe24000001201000f)
  547. if (pred_1_vertex) {
  548. jmp_to = 0xceu;
  549. break;
  550. }
  551. // 171: ISETP_IMM (0x366503800097110f)
  552. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(9u))) && true);
  553. // 172: FADD_IMM (0x3859103f80010502)
  554. if (pred_1_vertex) {
  555. float tmp96 = (-(gpr_5_vertex));
  556. precise float tmp97 = (tmp96 + utof(0x3f800000u));
  557. gpr_2_vertex = tmp97;
  558. }
  559. // 173: FADD_IMM (0x3859103f80010d0f)
  560. if (pred_1_vertex) {
  561. float tmp98 = (-(gpr_13_vertex));
  562. precise float tmp99 = (tmp98 + utof(0x3f800000u));
  563. gpr_15_vertex = tmp99;
  564. }
  565. // 175: FFMA_RR (0x59a0010000b10502)
  566. if (pred_1_vertex) {
  567. precise float tmp100 = fma(gpr_5_vertex, gpr_11_vertex, gpr_2_vertex);
  568. gpr_2_vertex = tmp100;
  569. }
  570. // 176: FFMA_RR (0x59a07f8000a10f0e)
  571. if (pred_1_vertex) {
  572. precise float tmp101 = fma(gpr_15_vertex, gpr_10_vertex, 0);
  573. gpr_14_vertex = tmp101;
  574. }
  575. // 177: BRA (0xe24000000e01000f)
  576. if (pred_1_vertex) {
  577. jmp_to = 0xceu;
  578. break;
  579. }
  580. // 179: ISETP_IMM (0x3665038000a7110f)
  581. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(0xau))) && true);
  582. // 180: FADD_IMM (0x3859103f80010310)
  583. if (pred_1_vertex) {
  584. float tmp102 = (-(gpr_3_vertex));
  585. precise float tmp103 = (tmp102 + utof(0x3f800000u));
  586. gpr_16_vertex = tmp103;
  587. }
  588. // 181: FFMA_RR (0x59a07f8000b10402)
  589. if (pred_1_vertex) {
  590. precise float tmp104 = fma(gpr_4_vertex, gpr_11_vertex, 0);
  591. gpr_2_vertex = tmp104;
  592. }
  593. // 183: FFMA_RR (0x59a0018000a1100e)
  594. if (pred_1_vertex) {
  595. precise float tmp105 = fma(gpr_16_vertex, gpr_10_vertex, gpr_3_vertex);
  596. gpr_14_vertex = tmp105;
  597. }
  598. // 184: BRA (0xe24000000a81000f)
  599. if (pred_1_vertex) {
  600. jmp_to = 0xceu;
  601. break;
  602. }
  603. // 185: ISETP_IMM (0x3665038000b7110f)
  604. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(0xbu))) && true);
  605. // 187: FADD_IMM (0x3859103f80010402)
  606. if (pred_1_vertex) {
  607. float tmp106 = (-(gpr_4_vertex));
  608. precise float tmp107 = (tmp106 + utof(0x3f800000u));
  609. gpr_2_vertex = tmp107;
  610. }
  611. // 188: FADD_IMM (0x3859103f80010d0f)
  612. if (pred_1_vertex) {
  613. float tmp108 = (-(gpr_13_vertex));
  614. precise float tmp109 = (tmp108 + utof(0x3f800000u));
  615. gpr_15_vertex = tmp109;
  616. }
  617. // 189: FFMA_RR (0x59a0020000b10202)
  618. if (pred_1_vertex) {
  619. precise float tmp110 = fma(gpr_2_vertex, gpr_11_vertex, gpr_4_vertex);
  620. gpr_2_vertex = tmp110;
  621. }
  622. // 191: FFMA_RR (0x59a0078000a10d0e)
  623. if (pred_1_vertex) {
  624. precise float tmp111 = fma(gpr_13_vertex, gpr_10_vertex, gpr_15_vertex);
  625. gpr_14_vertex = tmp111;
  626. }
  627. // 192: BRA (0xe24000000681000f)
  628. if (pred_1_vertex) {
  629. jmp_to = 0xceu;
  630. break;
  631. }
  632. // 193: ISETP_IMM (0x3665038000c7110f)
  633. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(0xcu))) && true);
  634. // 195: BRA (0xe24000000409000f)
  635. if (!(pred_1_vertex)) {
  636. jmp_to = 0xccu;
  637. break;
  638. }
  639. // 196: FADD_R (0x5c59300000d70303)
  640. float tmp112 = (-(gpr_3_vertex));
  641. float tmp113 = (-(gpr_13_vertex));
  642. precise float tmp114 = (tmp112 + tmp113);
  643. gpr_3_vertex = tmp114;
  644. // 197: FADD_IMM (0x3859103f80070502)
  645. float tmp115 = (-(gpr_5_vertex));
  646. precise float tmp116 = (tmp115 + utof(0x3f800000u));
  647. gpr_2_vertex = tmp116;
  648. // 199: FADD_IMM (0x3858103f80070303)
  649. precise float tmp117 = (gpr_3_vertex + utof(0x3f800000u));
  650. gpr_3_vertex = tmp117;
  651. // 200: FMUL_R (0x5c68100000b70202)
  652. precise float tmp118 = (gpr_2_vertex * gpr_11_vertex);
  653. gpr_2_vertex = tmp118;
  654. // 201: FMUL_R (0x5c68100000a7030e)
  655. precise float tmp119 = (gpr_3_vertex * gpr_10_vertex);
  656. gpr_14_vertex = tmp119;
  657. // 203: BRA (0xe24000000107000f)
  658. jmp_to = 0xceu;
  659. break;
  660. }
  661. case 0xccu: {
  662. // 204: MOV_R (0x5c9807800ff70002)
  663. gpr_2_vertex = 0;
  664. // 205: MOV_R (0x5c9807800ff7000e)
  665. gpr_14_vertex = 0;
  666. }
  667. case 0xceu: {
  668. // 207: FMUL_C (0x4c68100c08070e03)
  669. precise float tmp120 = (gpr_14_vertex * cbuf_3_vertex[32][0]);
  670. gpr_3_vertex = tmp120;
  671. // 208: FADD_IMM (0x3859103f80070e0b)
  672. float tmp121 = (-(gpr_14_vertex));
  673. precise float tmp122 = (tmp121 + utof(0x3f800000u));
  674. gpr_11_vertex = tmp122;
  675. // 209: FMUL_C (0x4c68100c07c70e0d)
  676. precise float tmp123 = (gpr_14_vertex * cbuf_3_vertex[31][0]);
  677. gpr_13_vertex = tmp123;
  678. // 211: FMUL_C (0x4c68100c08170e04)
  679. precise float tmp124 = (gpr_14_vertex * cbuf_3_vertex[32][1]);
  680. gpr_4_vertex = tmp124;
  681. // 212: FMUL_C (0x4c68100c08270e05)
  682. precise float tmp125 = (gpr_14_vertex * cbuf_3_vertex[32][2]);
  683. gpr_5_vertex = tmp125;
  684. // 213: FMUL_C (0x4c68100c08370e0a)
  685. precise float tmp126 = (gpr_14_vertex * cbuf_3_vertex[32][3]);
  686. gpr_10_vertex = tmp126;
  687. // 215: FMUL_C (0x4c68100c07d70e10)
  688. precise float tmp127 = (gpr_14_vertex * cbuf_3_vertex[31][1]);
  689. gpr_16_vertex = tmp127;
  690. // 216: FFMA_CR (0x49a0018c07870b03)
  691. precise float tmp128 = fma(gpr_11_vertex, cbuf_3_vertex[30][0], gpr_3_vertex);
  692. gpr_3_vertex = tmp128;
  693. // 217: FFMA_CR (0x49a0068c07470b12)
  694. precise float tmp129 = fma(gpr_11_vertex, cbuf_3_vertex[29][0], gpr_13_vertex);
  695. gpr_18_vertex = tmp129;
  696. // 219: FFMA_CR (0x49a0020c07970b04)
  697. precise float tmp130 = fma(gpr_11_vertex, cbuf_3_vertex[30][1], gpr_4_vertex);
  698. gpr_4_vertex = tmp130;
  699. // 220: FMUL_C (0x4c68100c07e70e11)
  700. precise float tmp131 = (gpr_14_vertex * cbuf_3_vertex[31][2]);
  701. gpr_17_vertex = tmp131;
  702. // 221: FFMA_CR (0x49a0028c07a70b0d)
  703. precise float tmp132 = fma(gpr_11_vertex, cbuf_3_vertex[30][2], gpr_5_vertex);
  704. gpr_13_vertex = tmp132;
  705. // 223: FMUL_C (0x4c68100c07f70e0e)
  706. precise float tmp133 = (gpr_14_vertex * cbuf_3_vertex[31][3]);
  707. gpr_14_vertex = tmp133;
  708. // 224: FFMA_CR (0x49a0050c07b70b0f)
  709. precise float tmp134 = fma(gpr_11_vertex, cbuf_3_vertex[30][3], gpr_10_vertex);
  710. gpr_15_vertex = tmp134;
  711. // 225: FADD_IMM (0x3859103f80070205)
  712. float tmp135 = (-(gpr_2_vertex));
  713. precise float tmp136 = (tmp135 + utof(0x3f800000u));
  714. gpr_5_vertex = tmp136;
  715. // 227: FMUL_R (0x5c68100000370203)
  716. precise float tmp137 = (gpr_2_vertex * gpr_3_vertex);
  717. gpr_3_vertex = tmp137;
  718. // 228: FFMA_CR (0x49a0080c07570b13)
  719. precise float tmp138 = fma(gpr_11_vertex, cbuf_3_vertex[29][1], gpr_16_vertex);
  720. gpr_19_vertex = tmp138;
  721. // 229: FMUL_R (0x5c68100000470204)
  722. precise float tmp139 = (gpr_2_vertex * gpr_4_vertex);
  723. gpr_4_vertex = tmp139;
  724. // 231: FFMA_CR (0x49a0088c07670b10)
  725. precise float tmp140 = fma(gpr_11_vertex, cbuf_3_vertex[29][2], gpr_17_vertex);
  726. gpr_16_vertex = tmp140;
  727. // 232: FMUL_R (0x5c68100000d7020a)
  728. precise float tmp141 = (gpr_2_vertex * gpr_13_vertex);
  729. gpr_10_vertex = tmp141;
  730. // 233: FFMA_CR (0x49a0070c07770b0e)
  731. precise float tmp142 = fma(gpr_11_vertex, cbuf_3_vertex[29][3], gpr_14_vertex);
  732. gpr_14_vertex = tmp142;
  733. // 235: FMUL_R (0x5c68100000f7020f)
  734. precise float tmp143 = (gpr_2_vertex * gpr_15_vertex);
  735. gpr_15_vertex = tmp143;
  736. // 236: FFMA_RR (0x59a0018001270502)
  737. precise float tmp144 = fma(gpr_5_vertex, gpr_18_vertex, gpr_3_vertex);
  738. gpr_2_vertex = tmp144;
  739. // 237: FFMA_RR (0x59a0020001370503)
  740. precise float tmp145 = fma(gpr_5_vertex, gpr_19_vertex, gpr_4_vertex);
  741. gpr_3_vertex = tmp145;
  742. // 239: FFMA_RR (0x59a0050001070504)
  743. precise float tmp146 = fma(gpr_5_vertex, gpr_16_vertex, gpr_10_vertex);
  744. gpr_4_vertex = tmp146;
  745. // 240: FFMA_RR (0x59a0078000e70505)
  746. precise float tmp147 = fma(gpr_5_vertex, gpr_14_vertex, gpr_15_vertex);
  747. gpr_5_vertex = tmp147;
  748. // 241: BRA (0xe24000002007000f)
  749. jmp_to = 0x132u;
  750. break;
  751. }
  752. case 0xf2u: {
  753. // 243: ISETP_IMM (0x3665038000d7110f)
  754. pred_1_vertex = ((ftoi(gpr_17_vertex) == ftoi(utof(0xdu))) && true);
  755. // 244: F2I_R (0x5cb0118000b71a00)
  756. precise float tmp148 = trunc(gpr_11_vertex);
  757. precise float tmp149 = itof(int(tmp148));
  758. gpr_0_vertex = tmp149;
  759. // 245: F2I_R (0x5cb0118000a71a01)
  760. precise float tmp150 = trunc(gpr_10_vertex);
  761. precise float tmp151 = itof(int(tmp150));
  762. gpr_1_vertex = tmp151;
  763. // 247: ISCADD_R (0x5c18008000070100)
  764. gpr_0_vertex = itof((ftoi(itof((ftoi(gpr_1_vertex) << ftou(utof(1u))))) + ftoi(gpr_0_vertex)));
  765. // 248: SHL_IMM (0x384800000047000d)
  766. precise float tmp152 = itof((ftoi(gpr_0_vertex) << ftou(utof(4u))));
  767. gpr_13_vertex = tmp152;
  768. // 249: LD_C (0xef9500300e070d00)
  769. uint tmp153 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0xe0u))))) / 4);
  770. gpr_256_vertex = cbuf_3_vertex[tmp153 / 4][tmp153 % 4];
  771. uint tmp154 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0xe4u))))) / 4);
  772. gpr_257_vertex = cbuf_3_vertex[tmp154 / 4][tmp154 % 4];
  773. gpr_0_vertex = gpr_256_vertex;
  774. gpr_1_vertex = gpr_257_vertex;
  775. // 251: BRA (0xe24000001a09000f)
  776. if (!(pred_1_vertex)) {
  777. jmp_to = 0x130u;
  778. break;
  779. }
  780. // 252: MOV_C (0x4c98078c06d7000d)
  781. gpr_13_vertex = cbuf_3_vertex[27][1];
  782. // 253: MUFU (0x5080000000470d03)
  783. precise float tmp155 = (utof(0x3f800000u) / gpr_13_vertex);
  784. gpr_3_vertex = tmp155;
  785. // 255: MOV_C (0x4c98078c06c70005)
  786. gpr_5_vertex = cbuf_3_vertex[27][0];
  787. // 256: MUFU (0x5080000000470502)
  788. precise float tmp156 = (utof(0x3f800000u) / gpr_5_vertex);
  789. gpr_2_vertex = tmp156;
  790. // 257: FMUL_C (0x4c68100c06a70310)
  791. precise float tmp157 = (gpr_3_vertex * cbuf_3_vertex[26][2]);
  792. gpr_16_vertex = tmp157;
  793. // 259: FMUL_C (0x4c68100c06870204)
  794. precise float tmp158 = (gpr_2_vertex * cbuf_3_vertex[26][0]);
  795. gpr_4_vertex = tmp158;
  796. // 260: FFMA_CR (0x49a3080c06b70303)
  797. float tmp159 = (-(cbuf_3_vertex[26][3]));
  798. float tmp160 = (-(gpr_16_vertex));
  799. precise float tmp161 = fma(gpr_3_vertex, tmp159, tmp160);
  800. gpr_3_vertex = tmp161;
  801. // 261: FFMA_CR (0x49a3020c06970202)
  802. float tmp162 = (-(cbuf_3_vertex[26][1]));
  803. float tmp163 = (-(gpr_4_vertex));
  804. precise float tmp164 = fma(gpr_2_vertex, tmp162, tmp163);
  805. gpr_2_vertex = tmp164;
  806. // 263: FADD_IMM (0x3858103f80070303)
  807. precise float tmp165 = (gpr_3_vertex + utof(0x3f800000u));
  808. gpr_3_vertex = tmp165;
  809. // 264: FADD_IMM (0x3858103f80070202)
  810. precise float tmp166 = (gpr_2_vertex + utof(0x3f800000u));
  811. gpr_2_vertex = tmp166;
  812. // 265: FFMA_RR (0x59a0080000a70303)
  813. precise float tmp167 = fma(gpr_3_vertex, gpr_10_vertex, gpr_16_vertex);
  814. gpr_3_vertex = tmp167;
  815. // 267: FFMA_RR (0x59a0020000b70202)
  816. precise float tmp168 = fma(gpr_2_vertex, gpr_11_vertex, gpr_4_vertex);
  817. gpr_2_vertex = tmp168;
  818. // 268: FMUL_C (0x4c68100c08070304)
  819. precise float tmp169 = (gpr_3_vertex * cbuf_3_vertex[32][0]);
  820. gpr_4_vertex = tmp169;
  821. // 269: FADD_IMM (0x3859103f8007030d)
  822. float tmp170 = (-(gpr_3_vertex));
  823. precise float tmp171 = (tmp170 + utof(0x3f800000u));
  824. gpr_13_vertex = tmp171;
  825. // 271: FMUL_C (0x4c68100c08170305)
  826. precise float tmp172 = (gpr_3_vertex * cbuf_3_vertex[32][1]);
  827. gpr_5_vertex = tmp172;
  828. // 272: FMUL_C (0x4c68100c0827030a)
  829. precise float tmp173 = (gpr_3_vertex * cbuf_3_vertex[32][2]);
  830. gpr_10_vertex = tmp173;
  831. // 273: FMUL_C (0x4c68100c0837030b)
  832. precise float tmp174 = (gpr_3_vertex * cbuf_3_vertex[32][3]);
  833. gpr_11_vertex = tmp174;
  834. // 275: FMUL_C (0x4c68100c07c7030e)
  835. precise float tmp175 = (gpr_3_vertex * cbuf_3_vertex[31][0]);
  836. gpr_14_vertex = tmp175;
  837. // 276: FMUL_C (0x4c68100c07d70310)
  838. precise float tmp176 = (gpr_3_vertex * cbuf_3_vertex[31][1]);
  839. gpr_16_vertex = tmp176;
  840. // 277: FMUL_C (0x4c68100c07e70312)
  841. precise float tmp177 = (gpr_3_vertex * cbuf_3_vertex[31][2]);
  842. gpr_18_vertex = tmp177;
  843. // 279: FMUL_C (0x4c68100c07f70313)
  844. precise float tmp178 = (gpr_3_vertex * cbuf_3_vertex[31][3]);
  845. gpr_19_vertex = tmp178;
  846. // 280: FFMA_CR (0x49a0020c07870d04)
  847. precise float tmp179 = fma(gpr_13_vertex, cbuf_3_vertex[30][0], gpr_4_vertex);
  848. gpr_4_vertex = tmp179;
  849. // 281: FFMA_CR (0x49a0028c07970d03)
  850. precise float tmp180 = fma(gpr_13_vertex, cbuf_3_vertex[30][1], gpr_5_vertex);
  851. gpr_3_vertex = tmp180;
  852. // 283: FFMA_CR (0x49a0050c07a70d0f)
  853. precise float tmp181 = fma(gpr_13_vertex, cbuf_3_vertex[30][2], gpr_10_vertex);
  854. gpr_15_vertex = tmp181;
  855. // 284: FFMA_CR (0x49a0058c07b70d0b)
  856. precise float tmp182 = fma(gpr_13_vertex, cbuf_3_vertex[30][3], gpr_11_vertex);
  857. gpr_11_vertex = tmp182;
  858. // 285: FFMA_CR (0x49a0070c07470d0e)
  859. precise float tmp183 = fma(gpr_13_vertex, cbuf_3_vertex[29][0], gpr_14_vertex);
  860. gpr_14_vertex = tmp183;
  861. // 287: FADD_IMM (0x3859103f80070205)
  862. float tmp184 = (-(gpr_2_vertex));
  863. precise float tmp185 = (tmp184 + utof(0x3f800000u));
  864. gpr_5_vertex = tmp185;
  865. // 288: FMUL_R (0x5c68100000470204)
  866. precise float tmp186 = (gpr_2_vertex * gpr_4_vertex);
  867. gpr_4_vertex = tmp186;
  868. // 289: FFMA_CR (0x49a0080c07570d10)
  869. precise float tmp187 = fma(gpr_13_vertex, cbuf_3_vertex[29][1], gpr_16_vertex);
  870. gpr_16_vertex = tmp187;
  871. // 291: FFMA_CR (0x49a0090c07670d12)
  872. precise float tmp188 = fma(gpr_13_vertex, cbuf_3_vertex[29][2], gpr_18_vertex);
  873. gpr_18_vertex = tmp188;
  874. // 292: FMUL_R (0x5c68100000370203)
  875. precise float tmp189 = (gpr_2_vertex * gpr_3_vertex);
  876. gpr_3_vertex = tmp189;
  877. // 293: FMUL_R (0x5c68100000f7020f)
  878. precise float tmp190 = (gpr_2_vertex * gpr_15_vertex);
  879. gpr_15_vertex = tmp190;
  880. // 295: FFMA_CR (0x49a0098c07770d0a)
  881. precise float tmp191 = fma(gpr_13_vertex, cbuf_3_vertex[29][3], gpr_19_vertex);
  882. gpr_10_vertex = tmp191;
  883. // 296: FMUL_R (0x5c68100000b7020b)
  884. precise float tmp192 = (gpr_2_vertex * gpr_11_vertex);
  885. gpr_11_vertex = tmp192;
  886. // 297: FFMA_RR (0x59a0020000e70502)
  887. precise float tmp193 = fma(gpr_5_vertex, gpr_14_vertex, gpr_4_vertex);
  888. gpr_2_vertex = tmp193;
  889. // 299: FFMA_RR (0x59a0018001070503)
  890. precise float tmp194 = fma(gpr_5_vertex, gpr_16_vertex, gpr_3_vertex);
  891. gpr_3_vertex = tmp194;
  892. // 300: FFMA_RR (0x59a0078001270504)
  893. precise float tmp195 = fma(gpr_5_vertex, gpr_18_vertex, gpr_15_vertex);
  894. gpr_4_vertex = tmp195;
  895. // 301: FFMA_RR (0x59a0058000a70505)
  896. precise float tmp196 = fma(gpr_5_vertex, gpr_10_vertex, gpr_11_vertex);
  897. gpr_5_vertex = tmp196;
  898. // 303: BRA (0xe24000000107000f)
  899. jmp_to = 0x132u;
  900. break;
  901. }
  902. case 0x130u: {
  903. // 304: LD_C (0xef9500301d070d02)
  904. uint tmp197 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0x1d0u))))) / 4);
  905. gpr_256_vertex = cbuf_3_vertex[tmp197 / 4][tmp197 % 4];
  906. uint tmp198 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0x1d4u))))) / 4);
  907. gpr_257_vertex = cbuf_3_vertex[tmp198 / 4][tmp198 % 4];
  908. gpr_2_vertex = gpr_256_vertex;
  909. gpr_3_vertex = gpr_257_vertex;
  910. // 305: LD_C (0xef9500301d870d04)
  911. uint tmp199 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0x1d8u))))) / 4);
  912. gpr_256_vertex = cbuf_3_vertex[tmp199 / 4][tmp199 % 4];
  913. uint tmp200 = (ftou(utof((ftou(gpr_13_vertex) + ftou(utof(0x1dcu))))) / 4);
  914. gpr_257_vertex = cbuf_3_vertex[tmp200 / 4][tmp200 % 4];
  915. gpr_4_vertex = gpr_256_vertex;
  916. gpr_5_vertex = gpr_257_vertex;
  917. }
  918. case 0x132u: {
  919. // 307: ISETP_C (0x4b6b038c0887ff0f)
  920. pred_1_vertex = ((ftoi(0) != ftoi(cbuf_3_vertex[34][0])) && true);
  921. // 308: BRA (0xe24000000609000f)
  922. if (!(pred_1_vertex)) {
  923. jmp_to = 0x141u;
  924. break;
  925. }
  926. // 309: FMUL_C (0x4c68100c03c70800)
  927. precise float tmp201 = (gpr_8_vertex * cbuf_3_vertex[15][0]);
  928. gpr_0_vertex = tmp201;
  929. // 311: FMUL_C (0x4c68100c03870808)
  930. precise float tmp202 = (gpr_8_vertex * cbuf_3_vertex[14][0]);
  931. gpr_8_vertex = tmp202;
  932. // 312: FFMA_CR (0x49a0000c03d70900)
  933. precise float tmp203 = fma(gpr_9_vertex, cbuf_3_vertex[15][1], gpr_0_vertex);
  934. gpr_0_vertex = tmp203;
  935. // 313: FFMA_CR (0x49a0040c03970908)
  936. precise float tmp204 = fma(gpr_9_vertex, cbuf_3_vertex[14][1], gpr_8_vertex);
  937. gpr_8_vertex = tmp204;
  938. // 315: FFMA_CR (0x49a0000c03e7ff00)
  939. precise float tmp205 = fma(0, cbuf_3_vertex[15][2], gpr_0_vertex);
  940. gpr_0_vertex = tmp205;
  941. // 316: FFMA_CR (0x49a0040c03a7ff08)
  942. precise float tmp206 = fma(0, cbuf_3_vertex[14][2], gpr_8_vertex);
  943. gpr_8_vertex = tmp206;
  944. // 317: FADD_C (0x4c58100c03f70001)
  945. precise float tmp207 = (gpr_0_vertex + cbuf_3_vertex[15][3]);
  946. gpr_1_vertex = tmp207;
  947. // 319: FADD_C (0x4c58100c03b70800)
  948. precise float tmp208 = (gpr_8_vertex + cbuf_3_vertex[14][3]);
  949. gpr_0_vertex = tmp208;
  950. // 320: BRA (0xe24000001287000f)
  951. jmp_to = 0x166u;
  952. break;
  953. }
  954. case 0x141u: {
  955. // 321: LOP_IMM (0x3841300000170cff)
  956. precise float tmp209 = itof((ftoi(gpr_12_vertex) & ftoi(utof(1u))));
  957. pred_1_vertex = (ftoi(tmp209) != ftoi(utof(0u)));
  958. // 323: BRA (0xe24000001109000f)
  959. if (!(pred_1_vertex)) {
  960. jmp_to = 0x166u;
  961. break;
  962. }
  963. // 324: MOV_R (0x5c9807800007000a)
  964. gpr_10_vertex = gpr_0_vertex;
  965. // 325: BRA (0xe24000000a08000f)
  966. if (!(pred_0_vertex)) {
  967. jmp_to = 0x15au;
  968. break;
  969. }
  970. // 327: LOP_IMM (0x3842301000070cff)
  971. precise float tmp210 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x10000u))));
  972. pred_2_vertex = (ftoi(tmp210) != ftoi(utof(0u)));
  973. // 328: LOP_IMM (0x3841300001070cff)
  974. precise float tmp211 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x10u))));
  975. pred_1_vertex = (ftoi(tmp211) != ftoi(utof(0u)));
  976. // 329: LOP_IMM (0x3840300002070cff)
  977. precise float tmp212 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x20u))));
  978. pred_0_vertex = (ftoi(tmp212) != ftoi(utof(0u)));
  979. // 331: LOP_IMM (0x3843300000870cff)
  980. precise float tmp213 = itof((ftoi(gpr_12_vertex) & ftoi(utof(8u))));
  981. pred_3_vertex = (ftoi(tmp213) != ftoi(utof(0u)));
  982. // 332: FMUL_C (0x4c68100c07120609)
  983. if (pred_2_vertex) {
  984. precise float tmp214 = (gpr_6_vertex * cbuf_3_vertex[28][1]);
  985. gpr_9_vertex = tmp214;
  986. }
  987. // 333: FMUL_C (0x4c68100c07020708)
  988. if (pred_2_vertex) {
  989. precise float tmp215 = (gpr_7_vertex * cbuf_3_vertex[28][0]);
  990. gpr_8_vertex = tmp215;
  991. }
  992. // 335: FMUL_C (0x4c68100c070a0609)
  993. if (!(pred_2_vertex)) {
  994. precise float tmp216 = (gpr_6_vertex * cbuf_3_vertex[28][0]);
  995. gpr_9_vertex = tmp216;
  996. }
  997. // 336: FMUL_C (0x4c68100c071a0708)
  998. if (!(pred_2_vertex)) {
  999. precise float tmp217 = (gpr_7_vertex * cbuf_3_vertex[28][1]);
  1000. gpr_8_vertex = tmp217;
  1001. }
  1002. // 337: LOP_IMM (0x3842300000470cff)
  1003. precise float tmp218 = itof((ftoi(gpr_12_vertex) & ftoi(utof(4u))));
  1004. pred_2_vertex = (ftoi(tmp218) != ftoi(utof(0u)));
  1005. // 339: FMUL_R (0x5c6810000001090a)
  1006. if (pred_1_vertex) {
  1007. precise float tmp219 = (gpr_9_vertex * gpr_0_vertex);
  1008. gpr_10_vertex = tmp219;
  1009. }
  1010. // 340: FMUL_R (0x5c68100000100801)
  1011. if (pred_0_vertex) {
  1012. precise float tmp220 = (gpr_8_vertex * gpr_1_vertex);
  1013. gpr_1_vertex = tmp220;
  1014. }
  1015. // 341: FADD_IMM (0x3859103f80070909)
  1016. float tmp221 = (-(gpr_9_vertex));
  1017. precise float tmp222 = (tmp221 + utof(0x3f800000u));
  1018. gpr_9_vertex = tmp222;
  1019. // 343: FADD_IMM (0x3859103f80070808)
  1020. float tmp223 = (-(gpr_8_vertex));
  1021. precise float tmp224 = (tmp223 + utof(0x3f800000u));
  1022. gpr_8_vertex = tmp224;
  1023. // 344: FADD_R (0x5c58100000a2090a)
  1024. if (pred_2_vertex) {
  1025. precise float tmp225 = (gpr_9_vertex + gpr_10_vertex);
  1026. gpr_10_vertex = tmp225;
  1027. }
  1028. // 345: FADD_R (0x5c58100000130801)
  1029. if (pred_3_vertex) {
  1030. precise float tmp226 = (gpr_8_vertex + gpr_1_vertex);
  1031. gpr_1_vertex = tmp226;
  1032. }
  1033. }
  1034. case 0x15au: {
  1035. // 347: LOP_IMM (0x3841304000070cff)
  1036. precise float tmp227 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x40000u))));
  1037. pred_1_vertex = (ftoi(tmp227) != ftoi(utof(0u)));
  1038. // 348: LOP_IMM (0x3840302000070cff)
  1039. precise float tmp228 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x20000u))));
  1040. pred_0_vertex = (ftoi(tmp228) != ftoi(utof(0u)));
  1041. // 349: LOP_IMM (0x3842301000070cff)
  1042. precise float tmp229 = itof((ftoi(gpr_12_vertex) & ftoi(utof(0x10000u))));
  1043. pred_2_vertex = (ftoi(tmp229) != ftoi(utof(0u)));
  1044. // 351: FADD_IMM (0x3859103f80010101)
  1045. if (pred_1_vertex) {
  1046. float tmp230 = (-(gpr_1_vertex));
  1047. precise float tmp231 = (tmp230 + utof(0x3f800000u));
  1048. gpr_1_vertex = tmp231;
  1049. }
  1050. // 352: FADD_IMM (0x3859103f80000a0a)
  1051. if (pred_0_vertex) {
  1052. float tmp232 = (-(gpr_10_vertex));
  1053. precise float tmp233 = (tmp232 + utof(0x3f800000u));
  1054. gpr_10_vertex = tmp233;
  1055. }
  1056. // 353: MOV_R (0x5c98078000120000)
  1057. if (pred_2_vertex) {
  1058. gpr_0_vertex = gpr_1_vertex;
  1059. }
  1060. // 355: MOV_R (0x5c98078000a20001)
  1061. if (pred_2_vertex) {
  1062. gpr_1_vertex = gpr_10_vertex;
  1063. }
  1064. // 356: MOV_R (0x5c9807800002000a)
  1065. if (pred_2_vertex) {
  1066. gpr_10_vertex = gpr_0_vertex;
  1067. }
  1068. // 357: MOV_R (0x5c98078000a70000)
  1069. gpr_0_vertex = gpr_10_vertex;
  1070. }
  1071. case 0x166u: {
  1072. // 359: FMUL_C (0x4c68100c02070006)
  1073. precise float tmp234 = (gpr_0_vertex * cbuf_3_vertex[8][0]);
  1074. gpr_6_vertex = tmp234;
  1075. // 360: FMUL_C (0x4c68100c01c70000)
  1076. precise float tmp235 = (gpr_0_vertex * cbuf_3_vertex[7][0]);
  1077. gpr_0_vertex = tmp235;
  1078. // 361: FFMA_CR (0x49a0030c02170106)
  1079. precise float tmp236 = fma(gpr_1_vertex, cbuf_3_vertex[8][1], gpr_6_vertex);
  1080. gpr_6_vertex = tmp236;
  1081. // 363: FFMA_CR (0x49a0000c01d70100)
  1082. precise float tmp237 = fma(gpr_1_vertex, cbuf_3_vertex[7][1], gpr_0_vertex);
  1083. gpr_0_vertex = tmp237;
  1084. // 364: FFMA_CR (0x49a0030c0227ff06)
  1085. precise float tmp238 = fma(0, cbuf_3_vertex[8][2], gpr_6_vertex);
  1086. gpr_6_vertex = tmp238;
  1087. // 365: FFMA_CR (0x49a0000c01e7ff00)
  1088. precise float tmp239 = fma(0, cbuf_3_vertex[7][2], gpr_0_vertex);
  1089. gpr_0_vertex = tmp239;
  1090. // 367: FADD_C (0x4c58100c02370606)
  1091. precise float tmp240 = (gpr_6_vertex + cbuf_3_vertex[8][3]);
  1092. gpr_6_vertex = tmp240;
  1093. // 368: FMUL_C (0x4c68100c03470202)
  1094. precise float tmp241 = (gpr_2_vertex * cbuf_3_vertex[13][0]);
  1095. gpr_2_vertex = tmp241;
  1096. // 369: FMUL_C (0x4c68100c03570303)
  1097. precise float tmp242 = (gpr_3_vertex * cbuf_3_vertex[13][1]);
  1098. gpr_3_vertex = tmp242;
  1099. // 371: ST_A (0xeff07f800807ff02)
  1100. output_attr_0_vertex.x = gpr_2_vertex;
  1101. // 372: FMUL_C (0x4c68100c03670404)
  1102. precise float tmp243 = (gpr_4_vertex * cbuf_3_vertex[13][2]);
  1103. gpr_4_vertex = tmp243;
  1104. // 373: ST_A (0xeff07f800847ff03)
  1105. output_attr_0_vertex.y = gpr_3_vertex;
  1106. // 375: FMUL_C (0x4c68100c03770505)
  1107. precise float tmp244 = (gpr_5_vertex * cbuf_3_vertex[13][3]);
  1108. gpr_5_vertex = tmp244;
  1109. // 376: ST_A (0xeff07f800887ff04)
  1110. output_attr_0_vertex.z = gpr_4_vertex;
  1111. // 377: FADD_C (0x4c58100c01f70000)
  1112. precise float tmp245 = (gpr_0_vertex + cbuf_3_vertex[7][3]);
  1113. gpr_0_vertex = tmp245;
  1114. // 379: ST_A (0xeff07f8008c7ff05)
  1115. output_attr_0_vertex.w = gpr_5_vertex;
  1116. // 380: FADD_IMM (0x3859103f80070606)
  1117. float tmp246 = (-(gpr_6_vertex));
  1118. precise float tmp247 = (tmp246 + utof(0x3f800000u));
  1119. gpr_6_vertex = tmp247;
  1120. // 381: ST_A (0xeff07f800907ff00)
  1121. output_attr_1_vertex.x = gpr_0_vertex;
  1122. // 383: ST_A (0xeff07f800947ff06)
  1123. output_attr_1_vertex.y = gpr_6_vertex;
  1124. // 384: EXIT (0xe30000000007000f)
  1125. return;
  1126. }
  1127. default: return;
  1128. }
  1129. }
  1130. }
  1131.  
  1132. void main() {
  1133. position = vec4(0.0, 0.0, 0.0, 0.0);
  1134. execute_vertex();
  1135.  
  1136.  
  1137. // Set Position Y direction
  1138. position.y *= utof(config_pack[2]);
  1139. // Check if the flip stage is VertexB
  1140. // Config pack's second value is flip_stage
  1141. if (config_pack[1] == 1) {
  1142. // Viewport can be flipped, which is unsupported by glViewport
  1143. position.xy *= viewport_flip.xy;
  1144. }
  1145. gl_Position = position;
  1146.  
  1147. // TODO(bunnei): This is likely a hack, position.w should be interpolated as 1.0
  1148. // For now, this is here to bring order in lieu of proper emulation
  1149. if (config_pack[1] == 1) {
  1150. position.w = 1.0;
  1151. }
  1152. }
  1153. [ 40.097127] Debug <Critical> video_core/renderer_opengl/gl_shader_util.h:LoadProgram:88: Assertion Failed! Shader not linked
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement