Lines Matching refs:op
317 std::ostringstream& op = isVertexCase ? vtx : frag;
355 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff"<< locationCounter <<" {\n";
356 op << " ${COUNTER_PRECISION} int " << getIntUniformName(numLoopIters) << ";\n";
357 op << "};\n";
365 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff" << locationCounter << " {\n";
366 op << " ${COUNTER_PRECISION} float " << getFloatFractionUniformName(numLoopIters) << ";\n";
367 op << "};\n";
373 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff" << locationCounter << " {\n";
374 op << " ${COUNTER_PRECISION} float uf_one;\n";
375 op << "};\n";
415 op << " ${PRECISION} vec4 res = coords;\n";
469 op << " for (" + loopCountDeclStr + "; " + loopCmpStr + "; " + incrementStr + ")\n";
470 op << " {\n";
471 op << loopBody;
472 op << " }\n";
476 op << "\t" << loopCountDeclStr + ";\n";
477 op << " while (" + loopCmpStr + ")\n";
478 op << " {\n";
479 op << loopBody;
480 op << "\t\t" + incrementStr + ";\n";
481 op << " }\n";
485 op << "\t" << loopCountDeclStr + ";\n";
486 op << " do\n";
487 op << " {\n";
488 op << loopBody;
489 op << "\t\t" + incrementStr + ";\n";
490 op << " } while (" + loopCmpStr + ");\n";
495 op << " res -= vec4(" + de::toString(numLoopIters) + ");\n";
540 std::ostringstream& op = isVertexCase ? vtx : frag;
573 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff" << locationCounter << " {\n";
574 op << " bool ub_true;\n";
575 op << "};\n";
597 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff" << locationCounter << " {\n";
598 op << " ${COUNTER_PRECISION} int " << uniforms[i].name << ";\n";
599 op << "};\n";
606 op << "layout(std140, set=0, binding=" << locationCounter << ") uniform buff" << locationCounter << " {\n";
607 op << " ${COUNTER_PRECISION} int ui_oneHundredOne;\n";
608 op << "};\n";
639 op << " ${PRECISION} vec4 res = coords;\n";
654 op << " ${FOR_LOOP} {}\n";
659 op << " for (;;) { break; res = res.yzwx + vec4(1.0); }\n";
664 op << " for (;;) { res = res.yzwx + vec4(1.0); break; }\n";
669 op << " ${COUNTER_PRECISION} int i = 0;\n";
670 op << " for (;;) { res = res.yzwx + vec4(1.0); if (i == ${ONE}) break; i++; }\n";
674 op << " ${FOR_LOOP} res = res.yzwx + vec4(1.0);\n";
680 op << " ${FOR_LOOP} { res = res.yzwx + vec4(1.0); res = res.yzwx + vec4(1.0); }\n";
686 op << " ${FOR_LOOP} res = res.yzwx + vec4(1.0), res = res.yzwx + vec4(1.0);\n";
692 op << " ${FOR_LOOP} res = res.yzwx + vec4(1.0);\n";
698 op << " ${FOR_LOOP} res = res.yzwx + vec4(1.0);\n";
702 op << " for (int i = 0; i < (ub_true ? ${ITER_COUNT} : 0); i++) res = res.yzwx + vec4(1.0);\n";
707 op << " ${FOR_LOOP} { if (i == ${TWO}) continue; res = res.yzwx + vec4(1.0); }\n";
711 op << " ${FOR_LOOP} { res = res.yzwx + vec4(1.0); continue; }\n";
716 op << " ${FOR_LOOP} { continue; }\n";
721 op << " ${FOR_LOOP} { if (i == ${TWO}) continue; res = res.yzwx + vec4(1.0); continue; }\n";
726 op << " ${FOR_LOOP} { if (i == ${TWO}) break; res = res.yzwx + vec4(1.0); }\n";
731 op << " ${FOR_LOOP} { res = res.yzwx + vec4(1.0); break; }\n";
735 op << " for (int i = 0; i < ${ITER_COUNT}; ++i) { res = res.yzwx + vec4(1.0); }\n";
739 op << " ${FOR_LOOP} { res = res.yzwx + vec4(1.0); }\n";
745 op << " ${FOR_LOOP} { if (i == 0) continue; else if (i == 3) break; res = res.yzwx + vec4(1.0); }\n";
749 op << " for (${COUNTER_PRECISION} ivec4 i = ivec4(0, 1, ${ITER_COUNT}, 0); i.x < i.z; i.x += i.y) { res = res.yzwx + vec4(1.0); }\n";
754 op << " ${FOR_LOOP} res = res.yzwx + vec4(1.0);\n";
760 op << " ${COUNTER_PRECISION} int i;\n";
761 op << " for (i = 0; i < ${TWO}; i++) { res = res.yzwx + vec4(1.0); }\n";
762 op << " for (; i < ${ITER_COUNT}; i++) { res = res.yzwx + vec4(1.0); }\n";
767 op << " for (${COUNTER_PRECISION} int i = 0; i < ${TWO}; i++)\n";
768 op << " {\n";
769 op << " for (${COUNTER_PRECISION} int j = 0; j < ${ITER_COUNT}; j++)\n";
770 op << " res = res.yzwx + vec4(1.0);\n";
771 op << " }\n";
776 op << " for (${COUNTER_PRECISION} int i = 0; i < ${ITER_COUNT}; i++)\n";
777 op << " {\n";
778 op << " for (${COUNTER_PRECISION} int j = 0; j < ${TWO}; j++)\n";
779 op << " res = res.yzwx + vec4(1.0);\n";
780 op << " for (${COUNTER_PRECISION} int j = 0; j < ${ONE}; j++)\n";
781 op << " res = res.yzwx + vec4(1.0);\n";
782 op << " }\n";
787 op << " ${FOR_LOOP}\n";
788 op << " {\n";
789 op << " res = coords; // ignore outer loop effect \n";
790 op << " for (${COUNTER_PRECISION} int j = 0; j < ${TWO}; j++)\n";
791 op << " res = res.yzwx + vec4(1.0);\n";
792 op << " }\n";
797 op << " ${FOR_LOOP}\n";
798 op << " {\n";
799 op << " res = coords.wxyz - vec4(1.0);\n";
800 op << " for (${COUNTER_PRECISION} int j = 0; j < ${TWO}; j++)\n";
801 op << " res = res.yzwx + vec4(1.0);\n";
802 op << " coords = res;\n";
803 op << " }\n";
808 op << " int j = 3;\n";
809 op << " switch (j)\n";
810 op << " {\n";
811 op << " case 3:\n";
812 op << " res = res.yzwx + vec4(1.0);\n";
813 op << " case 4:\n";
814 op << " ${FOR_LOOP}\n";
815 op << " res = res.yzwx + vec4(1.0);\n";
816 op << " break;\n";
817 op << " }\n";
822 op << " int j = 3;\n";
823 op << " switch (j)\n";
824 op << " {\n";
825 op << " case 3:\n";
826 op << " ${FOR_LOOP}\n";
827 op << " res = res.yzwx + vec4(1.0);\n";
828 op << " case 4:\n";
829 op << " res = res.yzwx + vec4(1.0);\n";
830 op << " break;\n";
831 op << " }\n";
836 op << " ${FOR_LOOP}\n";
837 op << " {\n";
838 op << " do\n";
839 op << " {\n";
840 op << " res = res.yzwx + vec4(1.0);\n";
841 op << " } while (i >= ${THREE});\n";
842 op << " }\n";
847 op << " int j = 3;\n";
848 op << " if (j == ${THREE})\n";
849 op << " {\n";
850 op << " ${FOR_LOOP}\n";
851 op << " res = res.yzwx + vec4(1.0);\n";
852 op << " }\n";
853 op << " else\n";
854 op << " {\n";
855 op << " res = res.yzwx + vec4(1.0);\n";
856 op << " }\n";
861 op << " int j = 2;\n";
862 op << " if (j == ${THREE})\n";
863 op << " {\n";
864 op << " res = res.yzwx + vec4(1.0);\n";
865 op << " }\n";
866 op << " else\n";
867 op << " {\n";
868 op << " ${FOR_LOOP}\n";
869 op << " res = res.yzwx + vec4(1.0);\n";
870 op << " }\n";
892 op << " ${WHILE_LOOP} {}\n";
897 op << " while (true) { break; res = res.yzwx + vec4(1.0); }\n";
902 op << " while (true) { res = res.yzwx + vec4(1.0); break; }\n";
907 op << " ${COUNTER_PRECISION} int i = 0;\n";
908 op << " while (true) { res = res.yzwx + vec4(1.0); if (i == ${ONE}) break; i++; }\n";
912 op << " ${WHILE_LOOP} res = res.yzwx + vec4(1.0);\n";
918 op << " ${WHILE_LOOP} { res = res.yzwx + vec4(1.0); res = res.yzwx + vec4(1.0); }\n";
924 op << " ${WHILE_LOOP} res = res.yzwx + vec4(1.0), res = res.yzwx + vec4(1.0);\n";
930 op << " ${WHILE_LOOP} res = res.yzwx + vec4(1.0);\n";
936 op << " ${WHILE_LOOP} res = res.yzwx + vec4(1.0);\n";
940 op << " ${COUNTER_PRECISION} int i = 0;\n";
941 op << " while (i < (ub_true ? ${ITER_COUNT} : 0)) { res = res.yzwx + vec4(1.0); i++; }\n";
946 op << " ${WHILE_LOOP} { if (i == ${TWO}) continue; res = res.yzwx + vec4(1.0); }\n";
950 op << " ${WHILE_LOOP} { res = res.yzwx + vec4(1.0); continue; }\n";
955 op << " ${WHILE_LOOP} { continue; }\n";
960 op << " ${WHILE_LOOP} { if (i == ${ONE}) continue; res = res.yzwx + vec4(1.0); continue; }\n";
965 op << " ${WHILE_LOOP} { if (i == ${THREE}) break; res = res.yzwx + vec4(1.0); }\n";
970 op << " ${WHILE_LOOP} { res = res.yzwx + vec4(1.0); break; }\n";
975 op << " ${COUNTER_PRECISION} int i = 0;\n";
976 op << " while (++i < ${ITER_COUNT}) { res = res.yzwx + vec4(1.0); }\n";
980 op << " ${COUNTER_PRECISION} int i = 0;\n";
981 op << " while (i++ < ${ITER_COUNT}) { res = res.yzwx + vec4(1.0); }\n";
987 op << " ${WHILE_LOOP} { if (i == 0) continue; else if (i == 3) break; res = res.yzwx + vec4(1.0); }\n";
991 op << " ${COUNTER_PRECISION} ivec4 i = ivec4(0, 1, ${ITER_COUNT}, 0);\n";
992 op << " while (i.x < i.z) { res = res.yzwx + vec4(1.0); i.x += i.y; }\n";
997 op << " ${WHILE_LOOP} res = res.yzwx + vec4(1.0);\n";
1003 op << " ${COUNTER_PRECISION} int i = 0;\n";
1004 op << " while (i++ < ${TWO}) { res = res.yzwx + vec4(1.0); }\n";
1005 op << " while (i++ < ${ITER_COUNT}) { res = res.yzwx + vec4(1.0); }\n"; // \note skips one iteration
1010 op << " ${COUNTER_PRECISION} int i = 0;\n";
1011 op << " while (i++ < ${TWO})\n";
1012 op << " {\n";
1013 op << " ${COUNTER_PRECISION} int j = 0;\n";
1014 op << " while (j++ < ${ITER_COUNT})\n";
1015 op << " res = res.yzwx + vec4(1.0);\n";
1016 op << " }\n";
1021 op << " ${COUNTER_PRECISION} int i = 0;\n";
1022 op << " while (i++ < ${ITER_COUNT})\n";
1023 op << " {\n";
1024 op << " ${COUNTER_PRECISION} int j = 0;\n";
1025 op << " while (j++ < ${ONE})\n";
1026 op << " res = res.yzwx + vec4(1.0);\n";
1027 op << " while (j++ < ${THREE})\n"; // \note skips one iteration
1028 op << " res = res.yzwx + vec4(1.0);\n";
1029 op << " }\n";
1034 op << " ${WHILE_LOOP}\n";
1035 op << " {\n";
1036 op << " res = coords; // ignore outer loop effect \n";
1037 op << " ${COUNTER_PRECISION} int j = 0;\n";
1038 op << " while (j++ < ${TWO})\n";
1039 op << " res = res.yzwx + vec4(1.0);\n";
1040 op << " }\n";
1045 op << " ${WHILE_LOOP}\n";
1046 op << " {\n";
1047 op << " res = coords.wxyz - vec4(1.0);\n";
1048 op << " ${COUNTER_PRECISION} int j = 0;\n";
1049 op << " while (j++ < ${TWO})\n";
1050 op << " res = res.yzwx + vec4(1.0);\n";
1051 op << " coords = res;\n";
1052 op << " }\n";
1057 op << " int j = 3;\n";
1058 op << " switch (j)\n";
1059 op << " {\n";
1060 op << " case 3:\n";
1061 op << " res = res.yzwx + vec4(1.0);\n";
1062 op << " case 4:\n";
1063 op << " ${WHILE_LOOP}\n";
1064 op << " res = res.yzwx + vec4(1.0);\n";
1065 op << " break;\n";
1066 op << " }\n";
1071 op << " int j = 3;\n";
1072 op << " switch (j)\n";
1073 op << " {\n";
1074 op << " case 3:\n";
1075 op << " ${WHILE_LOOP}\n";
1076 op << " res = res.yzwx + vec4(1.0);\n";
1077 op << " case 4:\n";
1078 op << " res = res.yzwx + vec4(1.0);\n";
1079 op << " break;\n";
1080 op << " }\n";
1085 op << " ${WHILE_LOOP}\n";
1086 op << " {\n";
1087 op << " do\n";
1088 op << " {\n";
1089 op << " res = res.yzwx + vec4(1.0);\n";
1090 op << " } while (i > ${THREE});\n";
1091 op << " }\n";
1096 op << " int j = 3;\n";
1097 op << " if (j == ${THREE})\n";
1098 op << " {\n";
1099 op << " ${WHILE_LOOP}\n";
1100 op << " res = res.yzwx + vec4(1.0);\n";
1101 op << " }\n";
1102 op << " else\n";
1103 op << " {\n";
1104 op << " res = res.yzwx + vec4(1.0);\n";
1105 op << " }\n";
1110 op << " int j = 2;\n";
1111 op << " if (j == ${THREE})\n";
1112 op << " {\n";
1113 op << " res = res.yzwx + vec4(1.0);\n";
1114 op << " }\n";
1115 op << " else\n";
1116 op << " {\n";
1117 op << " ${WHILE_LOOP}\n";
1118 op << " res = res.yzwx + vec4(1.0);\n";
1119 op << " }\n";
1143 op << " ${DO_WHILE_PRE} {} ${DO_WHILE_POST}\n";
1148 op << " do { break; res = res.yzwx + vec4(1.0); } while (true);\n";
1153 op << " do { res = res.yzwx + vec4(1.0); break; } while (true);\n";
1158 op << " ${COUNTER_PRECISION} int i = 0;\n";
1159 op << " do { res = res.yzwx + vec4(1.0); if (i == ${ONE}) break; i++; } while (true);\n";
1163 op << " ${DO_WHILE_PRE} res = res.yzwx + vec4(1.0); ${DO_WHILE_POST}\n";
1169 op << " ${DO_WHILE_PRE} { res = res.yzwx + vec4(1.0); res = res.yzwx + vec4(1.0); } ${DO_WHILE_POST}\n";
1175 op << " ${DO_WHILE_PRE} res = res.yzwx + vec4(1.0), res = res.yzwx + vec4(1.0); ${DO_WHILE_POST}\n";
1185 op << " ${DO_WHILE_PRE} res = res.yzwx + vec4(1.0); ${DO_WHILE_POST}\n";
1189 op << " ${COUNTER_PRECISION} int i = 0;\n";
1190 op << " do { res = res.yzwx + vec4(1.0); } while (++i < (ub_true ? ${ITER_COUNT} : 0));\n";
1195 op << " ${DO_WHILE_PRE} { if (i == ${TWO}) continue; res = res.yzwx + vec4(1.0); } ${DO_WHILE_POST}\n";
1199 op << " ${DO_WHILE_PRE} { res = res.yzwx + vec4(1.0); continue; } ${DO_WHILE_POST}\n";
1204 op << " ${DO_WHILE_PRE} { continue; } ${DO_WHILE_POST}\n";
1209 op << " ${DO_WHILE_PRE} { if (i == ${TWO}) continue; res = res.yzwx + vec4(1.0); continue; } ${DO_WHILE_POST}\n";
1214 op << " ${DO_WHILE_PRE} { res = res.yzwx + vec4(1.0); if (i == ${ONE}) break; } ${DO_WHILE_POST}\n";
1219 op << " ${DO_WHILE_PRE} { res = res.yzwx + vec4(1.0); break; } ${DO_WHILE_POST}\n";
1223 op << " ${COUNTER_PRECISION} int i = 0;\n";
1224 op << " do { res = res.yzwx + vec4(1.0); } while (++i < ${ITER_COUNT});\n";
1229 op << " ${COUNTER_PRECISION} int i = 0;\n";
1230 op << " do { res = res.yzwx + vec4(1.0); } while (i++ < ${ITER_COUNT});\n";
1236 op << " ${DO_WHILE_PRE} { if (i == 0) continue; else if (i == 3) break; res = res.yzwx + vec4(1.0); } ${DO_WHILE_POST}\n";
1240 op << " ${COUNTER_PRECISION} ivec4 i = ivec4(0, 1, ${ITER_COUNT}, 0);\n";
1241 op << " do { res = res.yzwx + vec4(1.0); } while ((i.x += i.y) < i.z);\n";
1246 op << " ${DO_WHILE_PRE} res = res.yzwx + vec4(1.0); ${DO_WHILE_POST}\n";
1252 op << " ${COUNTER_PRECISION} int i = 0;\n";
1253 op << " do { res = res.yzwx + vec4(1.0); } while (++i < ${TWO});\n";
1254 op << " do { res = res.yzwx + vec4(1.0); } while (++i < ${ITER_COUNT});\n";
1259 op << " ${COUNTER_PRECISION} int i = 0;\n";
1260 op << " do\n";
1261 op << " {\n";
1262 op << " ${COUNTER_PRECISION} int j = 0;\n";
1263 op << " do\n";
1264 op << " res = res.yzwx + vec4(1.0);\n";
1265 op << " while (++j < ${ITER_COUNT});\n";
1266 op << " } while (++i < ${TWO});\n";
1271 op << " ${COUNTER_PRECISION} int i = 0;\n";
1272 op << " do\n";
1273 op << " {\n";
1274 op << " ${COUNTER_PRECISION} int j = 0;\n";
1275 op << " do\n";
1276 op << " res = res.yzwx + vec4(1.0);\n";
1277 op << " while (++j < ${TWO});\n";
1278 op << " do\n";
1279 op << " res = res.yzwx + vec4(1.0);\n";
1280 op << " while (++j < ${THREE});\n";
1281 op << " } while (++i < ${ITER_COUNT});\n";
1286 op << " ${DO_WHILE_PRE}\n";
1287 op << " {\n";
1288 op << " res = coords; // ignore outer loop effect \n";
1289 op << " ${COUNTER_PRECISION} int j = 0;\n";
1290 op << " do\n";
1291 op << " res = res.yzwx + vec4(1.0);\n";
1292 op << " while (++j < ${TWO});\n";
1293 op << " } ${DO_WHILE_POST}\n";
1298 op << " ${DO_WHILE_PRE}\n";
1299 op << " {\n";
1300 op << " res = coords.wxyz - vec4(1.0);\n";
1301 op << " ${COUNTER_PRECISION} int j = 0;\n";
1302 op << " while (j++ < ${TWO})\n";
1303 op << " res = res.yzwx + vec4(1.0);\n";
1304 op << " coords = res;\n";
1305 op << " } ${DO_WHILE_POST}\n";
1310 op << " int j = 3;\n";
1311 op << " switch (j)\n";
1312 op << " {\n";
1313 op << " case 3:\n";
1314 op << " res = res.yzwx + vec4(1.0);\n";
1315 op << " case 4:\n";
1316 op << " ${DO_WHILE_PRE}\n";
1317 op << " {\n";
1318 op << " res = res.yzwx + vec4(1.0);\n";
1319 op << " } ${DO_WHILE_POST}\n";
1320 op << " break;\n";
1321 op << " }\n";
1326 op << " int j = 3;\n";
1327 op << " switch (j)\n";
1328 op << " {\n";
1329 op << " case 3:\n";
1330 op << " ${DO_WHILE_PRE}\n";
1331 op << " {\n";
1332 op << " res = res.yzwx + vec4(1.0);\n";
1333 op << " } ${DO_WHILE_POST}\n";
1334 op << " case 4:\n";
1335 op << " res = res.yzwx + vec4(1.0);\n";
1336 op << " break;\n";
1337 op << " }\n";
1342 op << " ${DO_WHILE_PRE}\n";
1343 op << " {\n";
1344 op << " do\n";
1345 op << " {\n";
1346 op << " res = res.yzwx + vec4(1.0);\n";
1347 op << " } while (i >= ${THREE});\n";
1348 op << " } ${DO_WHILE_POST}\n";
1353 op << " int j = 3;\n";
1354 op << " if (j == ${THREE})\n";
1355 op << " {\n";
1356 op << " ${DO_WHILE_PRE}\n";
1357 op << " {\n";
1358 op << " res = res.yzwx + vec4(1.0);\n";
1359 op << " } ${DO_WHILE_POST}\n";
1360 op << " }\n";
1361 op << " else\n";
1362 op << " {\n";
1363 op << " res = res.yzwx + vec4(1.0);\n";
1364 op << " }\n";
1369 op << " int j = 2;\n";
1370 op << " if (j == ${THREE})\n";
1371 op << " {\n";
1372 op << " res = res.yzwx + vec4(1.0);\n";
1373 op << " }\n";
1374 op << " else\n";
1375 op << " {\n";
1376 op << " ${DO_WHILE_PRE}\n";
1377 op << " {\n";
1378 op << " res = res.yzwx + vec4(1.0);\n";
1379 op << " } ${DO_WHILE_POST}\n";
1380 op << " }\n";
1399 op << " res -= vec4(${NUM_ITERS});\n";