Lines Matching refs:API
62 /* API specific shader parts */
314 template <class API>
370 if (API::USE_DOUBLE)
399 case TestCaseBase<API>::VERTEX_SHADER_TYPE: \
402 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: \
404 case TestCaseBase<API>::COMPUTE_SHADER_TYPE: \
406 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE: \
409 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: \
412 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE: \
439 case TestCaseBase<API>::COMPUTE_SHADER_TYPE: \
444 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: \
447 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE: \
451 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: \
455 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE: \
459 case TestCaseBase<API>::VERTEX_SHADER_TYPE: \
488 * @tparam API Tested API descriptor
494 template <class API>
495 TestCaseBase<API>::TestCaseBase(Context& context, const char* name, const char* description)
511 * @tparam API Tested API descriptor
513 template <class API>
514 void TestCaseBase<API>::delete_objects(void)
531 * @tparam API Tested API descriptor
533 template <class API>
534 void TestCaseBase<API>::deinit(void)
541 * @tparam API Tested API descriptor
546 template <class API>
547 tcu::TestNode::IterateResult TestCaseBase<API>::iterate(void)
549 test_shader_compilation(TestCaseBase<API>::VERTEX_SHADER_TYPE);
550 test_shader_compilation(TestCaseBase<API>::FRAGMENT_SHADER_TYPE);
552 if (API::USE_ALL_SHADER_STAGES)
554 test_shader_compilation(TestCaseBase<API>::COMPUTE_SHADER_TYPE);
555 test_shader_compilation(TestCaseBase<API>::GEOMETRY_SHADER_TYPE);
556 test_shader_compilation(TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE);
557 test_shader_compilation(TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE);
567 * @tparam API Tested API descriptor
574 template <class API>
575 glw::GLint TestCaseBase<API>::compile_shader_and_get_compilation_result(const std::string& tested_snippet,
610 shader_source = API::shader_version_gpu5;
615 shader_source = API::shader_version;
621 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
623 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
625 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
628 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
631 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
634 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
647 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
656 } /* case TestCaseBase<API>::VERTEX_SHADER_TYPE: */
657 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
666 } /* case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: */
667 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
676 } /* case TestCaseBase<API>::COMPUTE_SHADER_TYPE: */
677 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
686 } /* case TestCaseBase<API>::GEOMETRY_SHADER_TYPE: */
687 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
696 } /* case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: */
697 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
706 } /* case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE: */
769 * @tparam API Tested API descriptor
777 template <class API>
778 tcu::TestNode::IterateResult TestCaseBase<API>::execute_negative_test(
779 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& shader_source)
789 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
794 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
800 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
805 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
810 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
815 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
882 * @tparam API Tested API descriptor
891 template <class API>
892 tcu::TestNode::IterateResult TestCaseBase<API>::execute_positive_test(const std::string& vertex_shader_source,
904 fragment_shader_source, TestCaseBase<API>::FRAGMENT_SHADER_TYPE, require_gpu_shader5);
915 vertex_shader_source, TestCaseBase<API>::VERTEX_SHADER_TYPE, require_gpu_shader5);
1008 * @tparam API Tested API descriptor
1016 template <class API>
1017 tcu::TestNode::IterateResult TestCaseBase<API>::limit_active_shader_storage_block_number(
1018 typename TestCaseBase<API>::TestShaderType tested_shader_type, size_t num)
1025 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
1034 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
1042 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
1050 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
1068 * @tparam API Tested API descriptor
1081 template <class API>
1082 tcu::TestNode::IterateResult TestCaseBase<API>::execute_positive_test(
1098 fragment_shader_source, TestCaseBase<API>::FRAGMENT_SHADER_TYPE, require_gpu_shader5);
1109 geometry_shader_source, TestCaseBase<API>::GEOMETRY_SHADER_TYPE, require_gpu_shader5);
1120 tess_eval_shader_source, TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE, require_gpu_shader5);
1131 tess_ctrl_shader_source, TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE, require_gpu_shader5);
1142 vertex_shader_source, TestCaseBase<API>::VERTEX_SHADER_TYPE, require_gpu_shader5);
1155 compute_shader_source, TestCaseBase<API>::COMPUTE_SHADER_TYPE, require_gpu_shader5);
1305 * @tparam API Tested API descriptor
1313 template <class API>
1314 std::string TestCaseBase<API>::extend_string(std::string base_string, std::string sub_string, size_t number_of_elements)
1330 * @tparam API Tested API descriptor
1333 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1336 template <class API>
1337 void SizedDeclarationsPrimitive<API>::test_shader_compilation(
1338 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1340 for (size_t var_type_index = 0; var_type_index < API::n_var_types; var_type_index++)
1343 supported_variable_types_map.find(API::var_types[var_type_index]);
1349 for (size_t max_dimension_limit = 2; max_dimension_limit <= API::MAX_ARRAY_DIMENSIONS;
1396 * @tparam API Tested API descriptor
1399 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1401 template <class API>
1402 void SizedDeclarationsStructTypes1<API>::test_shader_compilation(
1403 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1411 for (size_t max_dimension_index = 1; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1437 * @tparam API Tested API descriptor
1440 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1442 template <class API>
1443 void SizedDeclarationsStructTypes2<API>::test_shader_compilation(
1444 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1471 * @tparam API Tested API descriptor
1474 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1476 template <class API>
1477 void SizedDeclarationsStructTypes3<API>::test_shader_compilation(
1478 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1486 for (size_t max_dimension_index = 1; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1505 * @tparam API Tested API descriptor
1508 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1510 template <class API>
1511 void SizedDeclarationsStructTypes4<API>::test_shader_compilation(
1512 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1520 for (size_t max_dimension_index = 1; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1543 * @tparam API Tested API descriptor
1546 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1548 template <class API>
1549 void SizedDeclarationsTypenameStyle1<API>::test_shader_compilation(
1550 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1552 for (size_t max_dimension_index = 1; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1557 shader_source += this->extend_string(" x", "[2]", API::MAX_ARRAY_DIMENSIONS - max_dimension_index);
1572 * @tparam API Tested API descriptor
1575 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1577 template <class API>
1578 void SizedDeclarationsTypenameStyle2<API>::test_shader_compilation(
1579 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1610 * @tparam API Tested API descriptor
1613 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1615 template <class API>
1616 void SizedDeclarationsTypenameStyle3<API>::test_shader_compilation(
1617 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1648 * @tparam API Tested API descriptor
1651 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1653 template <class API>
1654 void SizedDeclarationsTypenameStyle4<API>::test_shader_compilation(
1655 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1660 for (size_t max_dimension_index = 1; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1665 shader_source += this->extend_string(" x", "[2]", API::MAX_ARRAY_DIMENSIONS - max_dimension_index);
1682 * @tparam API Tested API descriptor
1685 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1687 template <class API>
1688 void SizedDeclarationsTypenameStyle5<API>::test_shader_compilation(
1689 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1723 * @tparam API Tested API descriptor
1726 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1728 template <class API>
1729 void SizedDeclarationsFunctionParams<API>::test_shader_compilation(
1730 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1738 std::string variable_basenames[API::MAX_ARRAY_DIMENSIONS] = { "v1", "v2", "v3", "v4", "v5", "v6", "v7", "v8" };
1739 std::string full_variable_names[API::MAX_ARRAY_DIMENSIONS];
1741 for (size_t max_dimension_index = 0; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1747 for (size_t max_dimension_index = 0; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
1777 for (dimension_index = 0; dimension_index < API::MAX_ARRAY_DIMENSIONS - 1; dimension_index++)
1799 for (size_t swap_item = 1; swap_item < API::MAX_ARRAY_DIMENSIONS; swap_item++)
1801 for (size_t max_dimension_index = swap_item + 1; max_dimension_index < API::MAX_ARRAY_DIMENSIONS;
1813 for (dimension_index = 0; dimension_index < API::MAX_ARRAY_DIMENSIONS - 1; dimension_index++)
1839 * @tparam API Tested API descriptor
1842 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1844 template <class API>
1845 void sized_declarations_invalid_sizes1<API>::test_shader_compilation(
1846 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1876 * @tparam API Tested API descriptor
1879 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1881 template <class API>
1882 void sized_declarations_invalid_sizes2<API>::test_shader_compilation(
1883 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1914 * @tparam API Tested API descriptor
1917 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1919 template <class API>
1920 void sized_declarations_invalid_sizes3<API>::test_shader_compilation(
1921 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1954 * @tparam API Tested API descriptor
1957 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
1959 template <class API>
1960 void sized_declarations_invalid_sizes4<API>::test_shader_compilation(
1961 typename TestCaseBase<API>::TestShaderType tested_shader_type)
1983 * @tparam API Tested API descriptor
1989 template <class API>
1990 std::string ConstructorsAndUnsizedDeclConstructors1<API>::recursively_initialise(std::string var_type,
2004 for (size_t indent_index = dimension_index; indent_index < (API::MAX_ARRAY_DIMENSIONS + 1); indent_index++)
2031 * @tparam API Tested API descriptor
2034 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2036 template <class API>
2037 void ConstructorsAndUnsizedDeclConstructors1<API>::test_shader_compilation(
2038 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2041 int num_var_types = API::n_var_types;
2046 supported_variable_types_map.find(API::var_types[var_type_index]);
2050 for (size_t max_dimension_index = 2; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
2078 supported_variable_types_map.find(API::var_types[var_type_index]);
2089 for (size_t max_dimension_index = 1; max_dimension_index < API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
2121 * @tparam API Tested API descriptor
2124 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2126 template <class API>
2127 void ConstructorsAndUnsizedDeclConstructors2<API>::test_shader_compilation(
2128 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2153 * @tparam API Tested API descriptor
2156 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2158 template <class API>
2159 void ConstructorsAndUnsizedDeclUnsizedConstructors<API>::test_shader_compilation(
2160 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2196 * @tparam API Tested API descriptor
2199 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2201 template <class API>
2202 void ConstructorsAndUnsizedDeclConst<API>::test_shader_compilation(
2203 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2219 * @tparam API Tested API descriptor
2222 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2224 template <class API>
2225 void ConstructorsAndUnsizedDeclInvalidConstructors1<API>::test_shader_compilation(
2226 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2265 * @tparam API Tested API descriptor
2268 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2270 template <class API>
2271 void ConstructorsAndUnsizedDeclInvalidConstructors2<API>::test_shader_compilation(
2272 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2299 * @tparam API Tested API descriptor
2302 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2304 template <class API>
2305 void ConstructorsAndUnsizedDeclInvalidConstructors3<API>::test_shader_compilation(
2306 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2334 * @tparam API Tested API descriptor
2337 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2339 template <class API>
2340 void ConstructorsAndUnsizedDeclInvalidConstructors4<API>::test_shader_compilation(
2341 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2370 * @tparam API Tested API descriptor
2373 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2375 template <class API>
2376 void ConstructorsAndUnsizedDeclConstructorSizing1<API>::test_shader_compilation(
2377 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2383 for (size_t var_type_index = 0; var_type_index < API::n_var_types; var_type_index++)
2386 supported_variable_types_map.find(API::var_types[var_type_index]);
2422 * @tparam API Tested API descriptor
2425 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2427 template <class API>
2428 void ConstructorsAndUnsizedDeclConstructorSizing2<API>::test_shader_compilation(
2429 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2549 * @tparam API Tested API descriptor
2555 template <class API>
2556 std::string ConstructorsAndUnsizedDeclStructConstructors<API>::recursively_initialise(std::string var_type,
2570 for (size_t indent_index = dimension_index; indent_index < (API::MAX_ARRAY_DIMENSIONS + 1); indent_index++)
2599 * @tparam API Tested API descriptor
2602 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2604 template <class API>
2605 void ConstructorsAndUnsizedDeclStructConstructors<API>::test_shader_compilation(
2606 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2614 for (size_t max_dimension_index = 2; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
2635 * @tparam API Tested API descriptor
2638 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2640 template <class API>
2641 void ConstructorsAndUnsizedDeclUnsizedArrays1<API>::test_shader_compilation(
2642 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2646 for (size_t max_dimension_index = 2; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
2665 * @tparam API Tested API descriptor
2668 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2670 template <class API>
2671 void ConstructorsAndUnsizedDeclUnsizedArrays2<API>::test_shader_compilation(
2672 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2687 EXECUTE_SHADER_TEST(API::ALLOW_UNSIZED_DECLARATION, tested_shader_type, shader_source);
2695 * @tparam API Tested API descriptor
2698 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2700 template <class API>
2701 void ConstructorsAndUnsizedDeclUnsizedArrays3<API>::test_shader_compilation(
2702 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2719 * @tparam API Tested API descriptor
2722 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2724 template <class API>
2725 void ConstructorsAndUnsizedDeclUnsizedArrays4<API>::test_shader_compilation(
2726 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2744 * @tparam API Tested API descriptor
2749 template <class API>
2750 std::string ExpressionsAssignment1<API>::recursively_initialise(std::string var_type, size_t dimension_index,
2763 for (size_t indent_index = dimension_index; indent_index < (API::MAX_ARRAY_DIMENSIONS + 1); indent_index++)
2790 * @tparam API Tested API descriptor
2793 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2795 template <class API>
2796 void ExpressionsAssignment1<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
2798 for (size_t max_dimension_index = 2; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
2828 * @tparam API Tested API descriptor
2831 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2833 template <class API>
2834 void ExpressionsAssignment2<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
2878 * @tparam API Tested API descriptor
2881 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2883 template <class API>
2884 void ExpressionsAssignment3<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
2935 * @tparam API Tested API descriptor
2938 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2940 template <class API>
2941 void ExpressionsTypeRestrictions1<API>::test_shader_compilation(
2942 typename TestCaseBase<API>::TestShaderType tested_shader_type)
2978 * @tparam API Tested API descriptor
2981 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
2983 template <class API>
2984 void ExpressionsTypeRestrictions2<API>::test_shader_compilation(
2985 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3032 * @tparam API Tested API descriptor
3035 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3037 template <class API>
3038 void ExpressionsIndexingScalar1<API>::test_shader_compilation(
3039 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3041 for (size_t var_type_index = 0; var_type_index < API::n_var_types; var_type_index++)
3044 supported_variable_types_map.find(API::var_types[var_type_index]);
3075 * @tparam API Tested API descriptor
3078 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3080 template <class API>
3081 void ExpressionsIndexingScalar2<API>::test_shader_compilation(
3082 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3130 * @tparam API Tested API descriptor
3133 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3135 template <class API>
3136 void ExpressionsIndexingScalar3<API>::test_shader_compilation(
3137 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3180 * @tparam API Tested API descriptor
3183 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3185 template <class API>
3186 void ExpressionsIndexingScalar4<API>::test_shader_compilation(
3187 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3231 * @tparam API Tested API descriptor
3234 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3236 template <class API>
3237 void ExpressionsIndexingArray1<API>::test_shader_compilation(
3238 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3274 * @tparam API Tested API descriptor
3279 template <class API>
3280 std::string ExpressionsIndexingArray2<API>::recursively_initialise(std::string var_type, size_t dimension_index,
3293 for (size_t indent_index = dimension_index; indent_index < (API::MAX_ARRAY_DIMENSIONS + 1); indent_index++)
3320 * @tparam API Tested API descriptor
3323 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3325 template <class API>
3326 void ExpressionsIndexingArray2<API>::test_shader_compilation(
3327 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3332 " float x[2][2][2][2][2][2][2][1] = " + recursively_initialise("float", API::MAX_ARRAY_DIMENSIONS, "1.0") +
3335 " float y[2][2][2][2][2][2][2][1] = " + recursively_initialise("float", API::MAX_ARRAY_DIMENSIONS, "1.0") +
3340 for (size_t max_dimension_index = 1; max_dimension_index <= API::MAX_ARRAY_DIMENSIONS; max_dimension_index++)
3363 * @tparam API Tested API descriptor
3366 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3368 template <class API>
3369 void ExpressionsIndexingArray3<API>::test_shader_compilation(
3370 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3391 * @tparam API Tested API descriptor
3394 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3396 template <class API>
3397 void ExpressionsDynamicIndexing1<API>::test_shader_compilation(
3398 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3433 * @tparam API Tested API descriptor
3436 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3438 template <class API>
3439 void ExpressionsDynamicIndexing2<API>::test_shader_compilation(
3440 typename TestCaseBase<API>::TestShaderType tested_shader_type)
3502 * @tparam API Tested API descriptor
3505 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3507 template <class API>
3508 void ExpressionsEquality1<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
3510 int num_var_types = API::n_var_types;
3515 supported_variable_types_map.find(API::var_types[var_type_index]);
3582 * @tparam API Tested API descriptor
3585 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3587 template <class API>
3588 void ExpressionsEquality2<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
3590 int num_var_types = API::n_var_types;
3595 supported_variable_types_map.find(API::var_types[var_type_index]);
3629 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
3632 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
3635 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
3637 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
3640 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
3643 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
3667 * @tparam API Tested API descriptor
3670 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
3672 template <class API>
3673 void ExpressionsLength1<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
3684 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
3708 * @tparam API Tested API descriptor
3714 template <class API>
3715 void ExpressionsLength1<API>::execute_dispatch_test(typename TestCaseBase<API>::TestShaderType tested_shader_type,
3801 * @tparam API Tested API descriptor
3807 template <class API>
3808 void ExpressionsLength1<API>::execute_draw_test(typename TestCaseBase<API>::TestShaderType tested_shader_type,
3814 if (API::USE_ALL_SHADER_STAGES)
3830 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
3831 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
3835 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
3836 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
3837 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
3838 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
3897 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: /* Fall through */
3898 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
3903 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
3904 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
3913 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
3943 * @tparam API Tested API descriptor
3949 template <class API>
3950 std::string ExpressionsLength1<API>::prepare_compute_shader(
3951 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
3956 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type)
3977 * @tparam API Tested API descriptor
3983 template <class API>
3984 std::string ExpressionsLength1<API>::prepare_fragment_shader(
3985 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
3992 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
3995 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4007 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4008 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4009 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4010 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4030 * @tparam API Tested API descriptor
4036 template <class API>
4037 std::string ExpressionsLength1<API>::prepare_geometry_shader(
4038 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
4045 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4046 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4047 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4050 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4051 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4075 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4111 * @tparam API Tested API descriptor
4117 template <class API>
4118 std::string ExpressionsLength1<API>::prepare_tess_ctrl_shader(
4119 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
4126 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4127 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4128 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4129 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4132 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4153 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4167 * @tparam API Tested API descriptor
4173 template <class API>
4174 std::string ExpressionsLength1<API>::prepare_tess_eval_shader(
4175 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
4182 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4183 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4184 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4185 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4188 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4200 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4224 * @tparam API Tested API descriptor
4230 template <class API>
4231 std::string ExpressionsLength1<API>::prepare_vertex_shader(
4232 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& tested_declaration,
4239 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4242 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4255 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4256 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4257 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4261 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4292 * @tparam API Tested API descriptor
4295 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
4297 template <class API>
4298 void ExpressionsLength2<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
4309 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
4335 * @tparam API Tested API descriptor
4338 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
4340 template <class API>
4341 void ExpressionsLength3<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
4358 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4362 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4366 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4370 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4374 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4378 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4395 * @tparam API Tested API descriptor
4398 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
4400 template <class API>
4401 void ExpressionsInvalid1<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
4420 * @tparam API Tested API descriptor
4423 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
4425 template <class API>
4426 void ExpressionsInvalid2<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
4439 for (size_t var_type_index = 0; var_type_index < API::n_var_types; var_type_index++)
4442 supported_variable_types_map.find(API::var_types[var_type_index]);
4458 for (size_t sub_script_index = 0; sub_script_index < API::MAX_ARRAY_DIMENSIONS; sub_script_index++)
4461 API::MAX_ARRAY_DIMENSIONS - sub_script_index);
4467 for (size_t sub_script_index = 0; sub_script_index < API::MAX_ARRAY_DIMENSIONS; sub_script_index++)
4513 * @tparam API Tested API descriptor
4516 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
4518 template <class API>
4519 void InteractionFunctionCalls1<API>::test_shader_compilation(
4520 typename TestCaseBase<API>::TestShaderType tested_shader_type)
4549 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
4551 if (API::USE_DOUBLE)
4620 * @tparam API Tested API descriptor
4627 template <class API>
4628 void InteractionFunctionCalls1<API>::execute_dispatch_test(
4629 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
4714 * @tparam API Tested API descriptor
4721 template <class API>
4722 void InteractionFunctionCalls1<API>::execute_draw_test(typename TestCaseBase<API>::TestShaderType tested_shader_type,
4728 if (API::USE_ALL_SHADER_STAGES)
4744 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
4745 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4749 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4750 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4751 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
4752 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4811 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: /* Fall through */
4812 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4817 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
4818 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4827 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4860 * @tparam API Tested API descriptor
4867 template <class API>
4868 std::string InteractionFunctionCalls1<API>::prepare_compute_shader(
4869 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
4874 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type)
4900 * @tparam API Tested API descriptor
4907 template <class API>
4908 std::string InteractionFunctionCalls1<API>::prepare_fragment_shader(
4909 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
4916 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4919 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4936 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
4937 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4938 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
4939 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4959 * @tparam API Tested API descriptor
4966 template <class API>
4967 std::string InteractionFunctionCalls1<API>::prepare_geometry_shader(
4968 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
4975 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
4976 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
4977 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
4980 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
4981 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
5005 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
5047 * @tparam API Tested API descriptor
5054 template <class API>
5055 std::string InteractionFunctionCalls1<API>::prepare_tess_ctrl_shader(
5056 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
5063 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
5064 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
5065 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
5066 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
5069 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
5096 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
5110 * @tparam API Tested API descriptor
5117 template <class API>
5118 std::string InteractionFunctionCalls1<API>::prepare_tess_eval_shader(
5119 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
5126 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
5127 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
5128 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
5129 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
5132 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
5144 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
5174 * @tparam API Tested API descriptor
5181 template <class API>
5182 std::string InteractionFunctionCalls1<API>::prepare_vertex_shader(
5183 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
5190 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
5193 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
5206 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
5207 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
5208 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
5212 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
5248 * @tparam API Tested API descriptor
5251 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5253 template <class API>
5254 void InteractionFunctionCalls2<API>::test_shader_compilation(
5255 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5293 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5295 if (API::USE_DOUBLE)
5366 * @tparam API Tested API descriptor
5369 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5371 template <class API>
5372 void InteractionArgumentAliasing1<API>::test_shader_compilation(
5373 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5396 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5398 if (API::USE_DOUBLE)
5487 * @tparam API Tested API descriptor
5490 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5492 template <class API>
5493 void InteractionArgumentAliasing2<API>::test_shader_compilation(
5494 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5517 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5519 if (API::USE_DOUBLE)
5609 * @tparam API Tested API descriptor
5612 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5614 template <class API>
5615 void InteractionArgumentAliasing3<API>::test_shader_compilation(
5616 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5639 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5641 if (API::USE_DOUBLE)
5731 * @tparam API Tested API descriptor
5734 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5736 template <class API>
5737 void InteractionArgumentAliasing4<API>::test_shader_compilation(
5738 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5761 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5763 if (API::USE_DOUBLE)
5853 * @tparam API Tested API descriptor
5856 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5858 template <class API>
5859 void InteractionArgumentAliasing5<API>::test_shader_compilation(
5860 typename TestCaseBase<API>::TestShaderType tested_shader_type)
5883 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
5885 if (API::USE_DOUBLE)
5975 * @tparam API Tested API descriptor
5978 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
5980 template <class API>
5981 void InteractionArgumentAliasing6<API>::test_shader_compilation(
5982 typename TestCaseBase<API>::TestShaderType tested_shader_type)
6005 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
6007 if (API::USE_DOUBLE)
6097 * @tparam API Tested API descriptor
6100 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
6102 template <class API>
6103 void InteractionUniforms1<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
6116 if (API::USE_DOUBLE)
6140 if (API::USE_ALL_SHADER_STAGES)
6157 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
6158 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6162 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6163 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6164 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
6165 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6259 * @tparam API Tested API descriptor
6265 template <class API>
6266 std::string InteractionUniforms1<API>::prepare_compute_shader(
6267 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6272 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type)
6296 * @tparam API Tested API descriptor
6302 template <class API>
6303 std::string InteractionUniforms1<API>::prepare_fragment_shader(
6304 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6311 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6314 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6329 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6330 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
6331 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6341 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
6355 * @tparam API Tested API descriptor
6361 template <class API>
6362 std::string InteractionUniforms1<API>::prepare_geometry_shader(
6363 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6370 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6371 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6372 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
6375 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
6376 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6400 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6440 * @tparam API Tested API descriptor
6446 template <class API>
6447 std::string InteractionUniforms1<API>::prepare_tess_ctrl_shader(
6448 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6455 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6456 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6457 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6458 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
6461 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
6486 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6500 * @tparam API Tested API descriptor
6506 template <class API>
6507 std::string InteractionUniforms1<API>::prepare_tess_eval_shader(
6508 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6515 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6516 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6517 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6518 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
6521 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
6533 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6561 * @tparam API Tested API descriptor
6567 template <class API>
6568 std::string InteractionUniforms1<API>::prepare_vertex_shader(
6569 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& uniform_definition,
6576 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6579 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6580 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6581 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
6582 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
6586 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
6609 * @tparam API Tested API descriptor
6612 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
6614 template <class API>
6615 void InteractionUniforms2<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
6736 if (API::USE_DOUBLE)
6798 EXECUTE_SHADER_TEST(API::ALLOW_UNSIZED_DECLARATION &&
6815 * @tparam API Tested API descriptor
6818 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
6820 template <class API>
6821 void InteractionUniformBuffers1<API>::test_shader_compilation(
6822 typename TestCaseBase<API>::TestShaderType tested_shader_type)
6834 if (API::USE_DOUBLE)
6871 * @tparam API Tested API descriptor
6874 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
6876 template <class API>
6877 void InteractionUniformBuffers2<API>::test_shader_compilation(
6878 typename TestCaseBase<API>::TestShaderType tested_shader_type)
6891 if (API::USE_DOUBLE)
6917 if (API::USE_ALL_SHADER_STAGES)
6934 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
6935 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
6939 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
6940 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
6941 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
6942 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7038 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE != tested_shader_type)
7060 * @tparam API Tested API descriptor
7062 template <class API>
7063 void InteractionUniformBuffers2<API>::execute_dispatch_test()
7073 * @tparam API Tested API descriptor
7077 template <class API>
7078 void InteractionUniformBuffers2<API>::execute_draw_test(typename TestCaseBase<API>::TestShaderType tested_shader_type)
7092 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7093 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
7094 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7099 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
7100 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7122 * @tparam API Tested API descriptor
7125 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
7127 template <class API>
7128 void InteractionUniformBuffers3<API>::test_shader_compilation(
7129 typename TestCaseBase<API>::TestShaderType tested_shader_type)
7181 if (API::USE_DOUBLE)
7214 EXECUTE_SHADER_TEST(API::ALLOW_UNSIZED_DECLARATION && invalid_size_declarations_index == 3,
7266 * @tparam API Tested API descriptor
7269 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
7271 template <class API>
7272 void InteractionStorageBuffers1<API>::test_shader_compilation(
7273 typename TestCaseBase<API>::TestShaderType tested_shader_type)
7285 if (API::USE_DOUBLE)
7322 * @tparam API Tested API descriptor
7325 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
7327 template <class API>
7328 void InteractionStorageBuffers2<API>::test_shader_compilation(
7329 typename TestCaseBase<API>::TestShaderType tested_shader_type)
7342 if (API::USE_DOUBLE)
7368 if (API::USE_ALL_SHADER_STAGES)
7385 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
7386 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7390 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7391 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7392 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
7393 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7490 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE != tested_shader_type)
7512 * @tparam API Tested API descriptor
7514 template <class API>
7515 void InteractionStorageBuffers2<API>::execute_dispatch_test()
7525 * @tparam API Tested API descriptor
7529 template <class API>
7530 void InteractionStorageBuffers2<API>::execute_draw_test(typename TestCaseBase<API>::TestShaderType tested_shader_type)
7544 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7545 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
7546 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7551 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
7552 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7574 * @tparam API Tested API descriptor
7577 * (either TestCaseBase<API>::VERTEX_SHADER_TYPE or TestCaseBase<API>::FRAGMENT_SHADER_TYPE).
7579 template <class API>
7580 void InteractionStorageBuffers3<API>::test_shader_compilation(
7581 typename TestCaseBase<API>::TestShaderType tested_shader_type)
7632 if (API::USE_DOUBLE)
7665 EXECUTE_SHADER_TEST(API::ALLOW_UNSIZED_DECLARATION && invalid_size_declarations_index == 3,
7716 * @tparam API Tested API descriptor
7720 template <class API>
7721 void InteractionInterfaceArrays1<API>::test_shader_compilation(
7722 typename TestCaseBase<API>::TestShaderType tested_shader_type)
7740 EXECUTE_SHADER_TEST(API::ALLOW_A_OF_A_ON_INTERFACE_BLOCKS, tested_shader_type, source);
7747 * @tparam API Tested API descriptor
7751 template <class API>
7752 void InteractionInterfaceArrays2<API>::test_shader_compilation(
7753 typename TestCaseBase<API>::TestShaderType input_shader_type)
7777 const typename TestCaseBase<API>::TestShaderType& output_shader_type =
7786 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE != input_shader_type)
7788 if (API::ALLOW_A_OF_A_ON_INTERFACE_BLOCKS)
7791 if (API::USE_ALL_SHADER_STAGES)
7829 * @tparam API Tested API descriptor
7833 template <class API>
7834 const typename TestCaseBase<API>::TestShaderType InteractionInterfaceArrays2<API>::get_output_shader_type(
7835 const typename TestCaseBase<API>::TestShaderType& input_shader_type)
7839 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
7840 return TestCaseBase<API>::FRAGMENT_SHADER_TYPE;
7842 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7843 if (API::USE_ALL_SHADER_STAGES)
7845 return TestCaseBase<API>::GEOMETRY_SHADER_TYPE;
7849 return TestCaseBase<API>::VERTEX_SHADER_TYPE;
7852 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7855 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7856 return TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE;
7858 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
7859 return TestCaseBase<API>::VERTEX_SHADER_TYPE;
7861 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7862 return TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE;
7874 * @tparam API Tested API descriptor
7880 template <class API>
7881 const std::string InteractionInterfaceArrays2<API>::prepare_fragment_shader(
7882 const typename TestCaseBase<API>::TestShaderType& input_shader_type, const std::string& input_source,
7887 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
7890 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7893 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7894 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7895 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
7896 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7909 * @tparam API Tested API descriptor
7915 template <class API>
7916 const std::string InteractionInterfaceArrays2<API>::prepare_geometry_shader(
7917 const typename TestCaseBase<API>::TestShaderType& input_shader_type, const std::string& input_source,
7922 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7923 if (API::USE_ALL_SHADER_STAGES)
7929 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7932 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7933 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
7934 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
7935 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7948 * @tparam API Tested API descriptor
7954 template <class API>
7955 const std::string InteractionInterfaceArrays2<API>::prepare_tess_ctrl_shader_source(
7956 const typename TestCaseBase<API>::TestShaderType& input_shader_type, const std::string& input_source,
7961 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
7962 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7963 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7964 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
7967 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
7970 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
7983 * @tparam API Tested API descriptor
7989 template <class API>
7990 const std::string InteractionInterfaceArrays2<API>::prepare_tess_eval_shader_source(
7991 const typename TestCaseBase<API>::TestShaderType& input_shader_type, const std::string& input_source,
7996 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
7997 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
7998 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
7999 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8002 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8005 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8018 * @tparam API Tested API descriptor
8024 template <class API>
8025 const std::string InteractionInterfaceArrays2<API>::prepare_vertex_shader(
8026 const typename TestCaseBase<API>::TestShaderType& input_shader_type, const std::string& input_source,
8031 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
8034 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8035 if (!API::USE_ALL_SHADER_STAGES)
8041 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8044 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
8045 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8046 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8059 * @tparam API Tested API descriptor
8068 template <class API>
8069 void InteractionInterfaceArrays2<API>::prepare_sources(
8070 const typename TestCaseBase<API>::TestShaderType& input_shader_type,
8071 const typename TestCaseBase<API>::TestShaderType& output_shader_type, const std::string* input_shader_source,
8074 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE != input_shader_type)
8079 if ((TestCaseBase<API>::GEOMETRY_SHADER_TYPE == input_shader_type) ||
8080 (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == input_shader_type) ||
8081 (TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE == input_shader_type))
8086 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == output_shader_type)
8094 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == input_shader_type)
8099 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == output_shader_type)
8107 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == input_shader_type)
8112 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == output_shader_type)
8120 if ((TestCaseBase<API>::GEOMETRY_SHADER_TYPE == input_shader_type) ||
8121 (TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE == input_shader_type))
8126 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == input_shader_type)
8131 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == output_shader_type)
8139 if (TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE == output_shader_type)
8154 * @tparam API Tested API descriptor
8158 template <class API>
8159 void InteractionInterfaceArrays3<API>::test_shader_compilation(
8160 typename TestCaseBase<API>::TestShaderType tested_shader_type)
8178 EXECUTE_SHADER_TEST(API::ALLOW_A_OF_A_ON_INTERFACE_BLOCKS, tested_shader_type, source);
8185 * @tparam API Tested API descriptor
8189 template <class API>
8190 void InteractionInterfaceArrays4<API>::test_shader_compilation(
8191 typename TestCaseBase<API>::TestShaderType input_shader_type)
8221 const typename TestCaseBase<API>::TestShaderType& output_shader_type =
8230 if ((TestCaseBase<API>::VERTEX_SHADER_TYPE != input_shader_type) &&
8231 (TestCaseBase<API>::COMPUTE_SHADER_TYPE != input_shader_type))
8233 if (API::ALLOW_A_OF_A_ON_INTERFACE_BLOCKS && API::ALLOW_IN_OUT_INTERFACE_BLOCKS)
8236 if (API::USE_ALL_SHADER_STAGES)
8309 * @tparam API Tested API descriptor
8314 template <class API>
8341 * @tparam API Tested API descriptor
8345 template <class API>
8346 void AtomicDeclarationTest<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
8370 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
8373 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8376 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8379 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8382 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8385 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
8404 dimensions.resize(API::MAX_ARRAY_DIMENSIONS);
8405 prepareDimensions<API>(max_atomics, dimensions);
8409 for (size_t i = API::MAX_ARRAY_DIMENSIONS; i != 0; --i)
8419 sprintf(it, "i%u", (unsigned int)(API::MAX_ARRAY_DIMENSIONS - i));
8529 * @tparam API Tested API descriptor
8533 template <class API>
8534 void AtomicUsageTest<API>::test_shader_compilation(typename TestCaseBase<API>::TestShaderType tested_shader_type)
8546 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
8549 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8552 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8555 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8558 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8561 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
8590 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type)
8608 * @tparam API Tested API descriptor
8615 template <class API>
8616 void AtomicUsageTest<API>::execute(typename TestCaseBase<API>::TestShaderType tested_shader_type, glw::GLuint binding,
8637 dimensions.resize(API::MAX_ARRAY_DIMENSIONS);
8638 prepareDimensions<API>(n_entries, dimensions);
8653 for (size_t i = API::MAX_ARRAY_DIMENSIONS; i != 0; --i)
8663 sprintf(it, "i%u", (unsigned int)(API::MAX_ARRAY_DIMENSIONS - i));
8700 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
8706 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8712 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8729 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8742 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8748 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
8792 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
8798 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8802 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8806 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
8811 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8816 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
8825 if (API::USE_ALL_SHADER_STAGES)
8864 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE != tested_shader_type)
8899 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
8900 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
8901 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
8906 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
8907 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
8965 if (tested_shader_type == TestCaseBase<API>::VERTEX_SHADER_TYPE ||
8966 tested_shader_type == TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE ||
8967 tested_shader_type == TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE ||
8968 tested_shader_type == TestCaseBase<API>::GEOMETRY_SHADER_TYPE)
9011 * @tparam API Tested API descriptor
9015 template <class API>
9016 void SubroutineFunctionCalls1<API>::test_shader_compilation(
9017 typename TestCaseBase<API>::TestShaderType tested_shader_type)
9046 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
9048 if (API::USE_DOUBLE)
9137 * @tparam API Tested API descriptor
9146 template <class API>
9147 void SubroutineFunctionCalls1<API>::execute_dispatch_test(typename TestCaseBase<API>::TestShaderType tested_shader_type,
9261 * @tparam API Tested API descriptor
9270 template <class API>
9271 void SubroutineFunctionCalls1<API>::execute_draw_test(typename TestCaseBase<API>::TestShaderType tested_shader_type,
9278 if (API::USE_ALL_SHADER_STAGES)
9294 case TestCaseBase<API>::VERTEX_SHADER_TYPE: /* Fall through */
9295 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9299 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9300 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9301 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
9302 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9335 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9338 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9341 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9344 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9347 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
9350 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9416 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: /* Fall through */
9417 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9422 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
9423 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9432 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9479 * @tparam API Tested API descriptor
9486 template <class API>
9487 std::string SubroutineFunctionCalls1<API>::prepare_compute_shader(
9488 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9493 if (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type)
9519 * @tparam API Tested API descriptor
9526 template <class API>
9527 std::string SubroutineFunctionCalls1<API>::prepare_fragment_shader(
9528 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9535 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9538 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9555 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9556 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
9557 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE: /* Fall through */
9558 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9578 * @tparam API Tested API descriptor
9585 template <class API>
9586 std::string SubroutineFunctionCalls1<API>::prepare_geometry_shader(
9587 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9594 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9595 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE: /* Fall through */
9596 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9599 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE: /* Fall through */
9600 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9624 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9666 * @tparam API Tested API descriptor
9673 template <class API>
9674 std::string SubroutineFunctionCalls1<API>::prepare_tess_ctrl_shader(
9675 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9682 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9683 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9684 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9685 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9688 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
9715 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9729 * @tparam API Tested API descriptor
9736 template <class API>
9737 std::string SubroutineFunctionCalls1<API>::prepare_tess_eval_shader(
9738 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9745 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9746 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9747 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9748 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9751 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
9763 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9793 * @tparam API Tested API descriptor
9800 template <class API>
9801 std::string SubroutineFunctionCalls1<API>::prepare_vertex_shader(
9802 typename TestCaseBase<API>::TestShaderType tested_shader_type, const std::string& function_definition,
9809 case TestCaseBase<API>::COMPUTE_SHADER_TYPE:
9812 case TestCaseBase<API>::FRAGMENT_SHADER_TYPE:
9825 case TestCaseBase<API>::GEOMETRY_SHADER_TYPE:
9826 case TestCaseBase<API>::TESSELATION_CONTROL_SHADER_TYPE:
9827 case TestCaseBase<API>::TESSELATION_EVALUATION_SHADER_TYPE:
9831 case TestCaseBase<API>::VERTEX_SHADER_TYPE:
9866 * @tparam API Tested API descriptor
9870 template <class API>
9871 void SubroutineFunctionCalls2<API>::test_shader_compilation(
9872 typename TestCaseBase<API>::TestShaderType tested_shader_type)
9910 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
9912 if (API::USE_DOUBLE)
10006 * @tparam API Tested API descriptor
10010 template <class API>
10011 void SubroutineArgumentAliasing1<API>::test_shader_compilation(
10012 typename TestCaseBase<API>::TestShaderType tested_shader_type)
10041 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
10043 if (API::USE_DOUBLE)
10177 * @tparam API Tested API descriptor
10181 template <class API>
10182 void SubroutineArgumentAliasing2<API>::test_shader_compilation(
10183 typename TestCaseBase<API>::TestShaderType tested_shader_type)
10212 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
10214 if (API::USE_DOUBLE)
10348 * @tparam API Tested API descriptor
10352 template <class API>
10353 void SubroutineArgumentAliasing3<API>::test_shader_compilation(
10354 typename TestCaseBase<API>::TestShaderType tested_shader_type)
10383 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
10385 if (API::USE_DOUBLE)
10519 * @tparam API Tested API descriptor
10523 template <class API>
10524 void SubroutineArgumentAliasing4<API>::test_shader_compilation(
10525 typename TestCaseBase<API>::TestShaderType tested_shader_type)
10554 const bool test_compute = (TestCaseBase<API>::COMPUTE_SHADER_TYPE == tested_shader_type);
10556 if (API::USE_DOUBLE)
10689 * @tparam API Tested API descriptor
10693 template <class API>
10697 ArraysOfArrays::initializeMap<API>();
10699 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsPrimitive<API>(context));
10700 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsStructTypes1<API>(context));
10701 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsStructTypes2<API>(context));
10702 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsStructTypes3<API>(context));
10703 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsStructTypes4<API>(context));
10704 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsTypenameStyle1<API>(context));
10705 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsTypenameStyle2<API>(context));
10706 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsTypenameStyle3<API>(context));
10707 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsTypenameStyle4<API>(context));
10708 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsTypenameStyle5<API>(context));
10709 group.addChild(new glcts::ArraysOfArrays::SizedDeclarationsFunctionParams<API>(context));
10710 group.addChild(new glcts::ArraysOfArrays::sized_declarations_invalid_sizes1<API>(context));
10711 group.addChild(new glcts::ArraysOfArrays::sized_declarations_invalid_sizes2<API>(context));
10712 group.addChild(new glcts::ArraysOfArrays::sized_declarations_invalid_sizes3<API>(context));
10713 group.addChild(new glcts::ArraysOfArrays::sized_declarations_invalid_sizes4<API>(context));
10714 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclConstructors1<API>(context));
10715 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclConstructors2<API>(context));
10716 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclUnsizedConstructors<API>(context));
10717 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclConst<API>(context));
10719 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclInvalidConstructors1<API>(context));
10720 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclInvalidConstructors2<API>(context));
10721 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclInvalidConstructors3<API>(context));
10722 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclInvalidConstructors4<API>(context));
10723 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclConstructorSizing1<API>(context));
10724 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclConstructorSizing2<API>(context));
10725 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclStructConstructors<API>(context));
10726 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclUnsizedArrays1<API>(context));
10727 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclUnsizedArrays2<API>(context));
10728 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclUnsizedArrays3<API>(context));
10729 group.addChild(new glcts::ArraysOfArrays::ConstructorsAndUnsizedDeclUnsizedArrays4<API>(context));
10730 group.addChild(new glcts::ArraysOfArrays::ExpressionsAssignment1<API>(context));
10731 group.addChild(new glcts::ArraysOfArrays::ExpressionsAssignment2<API>(context));
10732 group.addChild(new glcts::ArraysOfArrays::ExpressionsAssignment3<API>(context));
10733 group.addChild(new glcts::ArraysOfArrays::ExpressionsTypeRestrictions1<API>(context));
10734 group.addChild(new glcts::ArraysOfArrays::ExpressionsTypeRestrictions2<API>(context));
10735 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingScalar1<API>(context));
10736 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingScalar2<API>(context));
10737 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingScalar3<API>(context));
10738 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingScalar4<API>(context));
10739 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingArray1<API>(context));
10740 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingArray2<API>(context));
10741 group.addChild(new glcts::ArraysOfArrays::ExpressionsIndexingArray3<API>(context));
10742 group.addChild(new glcts::ArraysOfArrays::ExpressionsDynamicIndexing1<API>(context));
10743 group.addChild(new glcts::ArraysOfArrays::ExpressionsDynamicIndexing2<API>(context));
10744 group.addChild(new glcts::ArraysOfArrays::ExpressionsEquality1<API>(context));
10745 group.addChild(new glcts::ArraysOfArrays::ExpressionsEquality2<API>(context));
10746 group.addChild(new glcts::ArraysOfArrays::ExpressionsLength1<API>(context));
10747 group.addChild(new glcts::ArraysOfArrays::ExpressionsLength2<API>(context));
10748 group.addChild(new glcts::ArraysOfArrays::ExpressionsLength3<API>(context));
10749 group.addChild(new glcts::ArraysOfArrays::ExpressionsInvalid1<API>(context));
10750 group.addChild(new glcts::ArraysOfArrays::ExpressionsInvalid2<API>(context));
10752 group.addChild(new glcts::ArraysOfArrays::InteractionFunctionCalls1<API>(context));
10753 group.addChild(new glcts::ArraysOfArrays::InteractionFunctionCalls2<API>(context));
10754 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing1<API>(context));
10755 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing2<API>(context));
10756 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing3<API>(context));
10757 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing4<API>(context));
10758 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing5<API>(context));
10759 group.addChild(new glcts::ArraysOfArrays::InteractionArgumentAliasing6<API>(context));
10761 group.addChild(new glcts::ArraysOfArrays::InteractionUniforms1<API>(context));
10762 group.addChild(new glcts::ArraysOfArrays::InteractionUniforms2<API>(context));
10763 group.addChild(new glcts::ArraysOfArrays::InteractionUniformBuffers1<API>(context));
10764 group.addChild(new glcts::ArraysOfArrays::InteractionUniformBuffers2<API>(context));
10765 group.addChild(new glcts::ArraysOfArrays::InteractionUniformBuffers3<API>(context));
10766 group.addChild(new glcts::ArraysOfArrays::InteractionInterfaceArrays1<API>(context));
10767 group.addChild(new glcts::ArraysOfArrays::InteractionInterfaceArrays2<API>(context));
10768 group.addChild(new glcts::ArraysOfArrays::InteractionInterfaceArrays3<API>(context));
10769 group.addChild(new glcts::ArraysOfArrays::InteractionInterfaceArrays4<API>(context));
10771 if (API::USE_STORAGE_BLOCK)
10773 group.addChild(new glcts::ArraysOfArrays::InteractionStorageBuffers1<API>(context));
10774 group.addChild(new glcts::ArraysOfArrays::InteractionStorageBuffers2<API>(context));
10775 group.addChild(new glcts::ArraysOfArrays::InteractionStorageBuffers3<API>(context));
10778 if (API::USE_ATOMIC)
10780 group.addChild(new glcts::ArraysOfArrays::AtomicDeclarationTest<API>(context));
10781 group.addChild(new glcts::ArraysOfArrays::AtomicUsageTest<API>(context));
10784 if (API::USE_SUBROUTINE)
10786 group.addChild(new glcts::ArraysOfArrays::SubroutineFunctionCalls1<API>(context));
10787 group.addChild(new glcts::ArraysOfArrays::SubroutineFunctionCalls2<API>(context));
10788 group.addChild(new glcts::ArraysOfArrays::SubroutineArgumentAliasing1<API>(context));
10789 group.addChild(new glcts::ArraysOfArrays::SubroutineArgumentAliasing2<API>(context));
10790 group.addChild(new glcts::ArraysOfArrays::SubroutineArgumentAliasing3<API>(context));
10791 group.addChild(new glcts::ArraysOfArrays::SubroutineArgumentAliasing4<API>(context));