Lines Matching defs:const
61 bool Utils::checkUniformBinding(Utils::program& program, const glw::GLchar* name, glw::GLint expected_binding)
63 const GLint uniform_location = program.getUniformLocation(name);
82 bool Utils::checkUniformArrayBinding(Utils::program& program, const glw::GLchar* name, glw::GLuint index,
88 const GLint uniform_location = program.getUniformLocation(buffer);
106 bool Utils::doesContainQualifier(Utils::QUALIFIERS qualifier, const Utils::qualifierSet& qualifiers)
204 const GLchar* Utils::getQualifierString(Utils::QUALIFIERS qualifier)
206 const GLchar* result = 0;
213 result = "const";
276 std::string Utils::getQualifiersListString(const qualifierSet& qualifiers)
278 static const GLchar* qualifier_list = "QUALIFIER QUALIFIER_LIST";
279 const GLuint qualifier_list_length = static_cast<GLuint>(strlen(qualifier_list));
282 static const GLchar* token_qualifier = "QUALIFIER";
283 static const GLchar* token_qual_list = "QUALIFIER_LIST";
295 const GLchar* qualifier_str = getQualifierString(qualifiers[i]);
314 Utils::qualifierSet Utils::prepareQualifiersSet(const qualifierSet& in_qualifiers, SHADER_STAGES stage,
354 const GLchar* Utils::getImageType(Utils::TEXTURE_TYPES type)
356 const GLchar* result = 0;
440 const GLchar* Utils::getSamplerType(Utils::TEXTURE_TYPES type)
442 const GLchar* result = 0;
526 const GLchar* Utils::getTextureTypeName(Utils::TEXTURE_TYPES type)
528 const GLchar* result = 0;
596 const glw::GLchar* Utils::getShaderStageName(Utils::SHADER_STAGES stage)
598 const GLchar* result = 0;
635 const glw::GLchar* Utils::getTypeName(TYPES type, glw::GLuint n_columns, glw::GLuint n_rows)
637 static const GLchar* float_lut[4][4] = {
644 static const GLchar* double_lut[4][4] = {
651 static const GLchar* int_lut[4] = { "int", "ivec2", "ivec3", "ivec4" };
653 static const GLchar* uint_lut[4] = { "uint", "uvec2", "uvec3", "uvec4" };
655 const GLchar* result = 0;
690 Utils::uniformNdv Utils::getUniformNdv(const glw::Functions& gl, glw::GLuint n_rows)
722 Utils::uniformNfv Utils::getUniformNfv(const glw::Functions& gl, glw::GLuint n_rows)
754 Utils::uniformNiv Utils::getUniformNiv(const glw::Functions& gl, glw::GLuint n_rows)
786 Utils::uniformNuiv Utils::getUniformNuiv(const glw::Functions& gl, glw::GLuint n_rows)
818 Utils::uniformMatrixNdv Utils::getUniformMatrixNdv(const glw::Functions& gl, glw::GLuint n_columns, glw::GLuint n_rows)
886 Utils::uniformMatrixNfv Utils::getUniformMatrixNfv(const glw::Functions& gl, glw::GLuint n_columns, glw::GLuint n_rows)
955 std::string Utils::getBlockVariableDefinition(const qualifierSet& qualifiers, const glw::GLchar* type_name,
956 const glw::GLchar* variable_name)
959 static const GLchar* def_template = "QUALIFIER_LISTTYPE VARIABLE_NAME";
962 static const GLchar* token_type = "TYPE";
963 static const GLchar* token_variable_name = "VARIABLE_NAME";
964 static const GLchar* token_qual_list = "QUALIFIER_LIST";
971 const std::string& list = getQualifiersListString(qualifiers);
990 std::string Utils::getBlockVariableReference(VARIABLE_FLAVOUR flavour, const glw::GLchar* variable_name,
991 const glw::GLchar* block_name)
994 static const GLchar* ref_template = "BLOCK_NAME.VARIABLE_NAME";
995 static const GLchar* array_ref_template = "BLOCK_NAME[0].VARIABLE_NAME";
996 static const GLchar* tcs_ref_template = "BLOCK_NAME[gl_InvocationID].VARIABLE_NAME";
999 static const GLchar* token_block_name = "BLOCK_NAME";
1000 static const GLchar* token_variable_name = "VARIABLE_NAME";
1040 std::string Utils::getVariableDefinition(VARIABLE_FLAVOUR flavour, const qualifierSet& qualifiers,
1041 const glw::GLchar* type_name, const glw::GLchar* variable_name)
1044 static const GLchar* def_template = "QUALIFIER_LISTTYPE VARIABLE_NAME";
1045 static const GLchar* def_array_template = "QUALIFIER_LISTTYPE VARIABLE_NAME[]";
1048 static const GLchar* token_type = "TYPE";
1049 static const GLchar* token_variable_name = "VARIABLE_NAME";
1050 static const GLchar* token_qual_list = "QUALIFIER_LIST";
1071 const std::string& list = getQualifiersListString(qualifiers);
1091 const qualifierSet& qualifiers)
1153 std::string Utils::getVariableName(SHADER_STAGES stage, VARIABLE_STORAGE storage, const glw::GLchar* variable_name)
1156 static const GLchar* variable_name_template = "PRECEEDING_PREFIX_VARIABLE_NAME";
1159 static const GLchar* token_preceeding = "PRECEEDING";
1160 static const GLchar* token_prefix = "PREFIX";
1161 static const GLchar* token_variable_name = "VARIABLE_NAME";
1163 static const GLchar* prefixes[Utils::STORAGE_MAX][Utils::SHADER_STAGES_MAX][2] = {
1186 const GLchar* preceeding = prefixes[storage][stage][0];
1187 const GLchar* prefix = prefixes[storage][stage][1];
1207 std::string Utils::getVariableReference(VARIABLE_FLAVOUR flavour, const glw::GLchar* variable_name)
1210 static const GLchar* ref_template = "VARIABLE_NAME";
1211 static const GLchar* array_ref_template = "VARIABLE_NAME[0]";
1212 static const GLchar* tcs_ref_template = "VARIABLE_NAME[gl_InvocationID]";
1215 static const GLchar* token_variable_name = "VARIABLE_NAME";
1257 const Utils::qualifierSet& in_qualifiers, const glw::GLchar* in_type_name,
1258 const glw::GLchar* in_variable_name, const glw::GLchar* in_block_name,
1262 const qualifierSet& qualifiers = prepareQualifiersSet(in_qualifiers, in_stage, in_storage);
1263 const std::string& name = getVariableName(in_stage, in_storage, in_variable_name);
1280 const Utils::qualifierSet& in_qualifiers, const glw::GLchar* in_type_name,
1281 const glw::GLchar* in_variable_name, std::string& out_definition,
1285 const qualifierSet& qualifiers = prepareQualifiersSet(in_qualifiers, in_stage, in_storage);
1286 const std::string& name = getVariableName(in_stage, in_storage, in_variable_name);
1296 const GLchar* Utils::getUtf8Character(Utils::UTF8_CHARACTERS character)
1298 static const unsigned char two_bytes[] = { 0xd7, 0x84, 0x00 };
1299 static const unsigned char three_bytes[] = { 0xe3, 0x82, 0x81, 0x00 };
1300 static const unsigned char four_bytes[] = { 0xf0, 0x93, 0x83, 0x93, 0x00 };
1301 static const unsigned char five_bytes[] = { 0xfa, 0x82, 0x82, 0x82, 0x82, 0x00 };
1302 static const unsigned char six_bytes[] = { 0xfd, 0x82, 0x82, 0x82, 0x82, 0x82, 0x00 };
1303 static const unsigned char redundant_bytes[] = { 0xf2, 0x80, 0x80, 0x5e, 0x00 };
1305 const GLchar* result = 0;
1310 result = (const GLchar*)two_bytes;
1313 result = (const GLchar*)three_bytes;
1316 result = (const GLchar*)four_bytes;
1319 result = (const GLchar*)five_bytes;
1322 result = (const GLchar*)six_bytes;
1325 result = (const GLchar*)redundant_bytes;
1343 bool Utils::isExtensionSupported(deqp::Context& context, const GLchar* extension_name)
1345 const std::vector<std::string>& extensions = context.getContextInfo().getExtensions();
1363 bool Utils::isGLVersionAtLeast(const glw::Functions& gl, glw::GLint required_major, glw::GLint required_minor)
1407 void Utils::replaceToken(const glw::GLchar* token, size_t& search_position, const glw::GLchar* text,
1410 const size_t text_length = strlen(text);
1411 const size_t token_length = strlen(token);
1412 const size_t token_position = string.find(token, search_position);
1425 void Utils::replaceAllTokens(const glw::GLchar* token, const glw::GLchar* text, std::string& string)
1427 const size_t text_length = strlen(text);
1428 const size_t token_length = strlen(token);
1434 const size_t token_position = string.find(token, search_position);
1453 TestBase::TestBase(deqp::Context& context, const glw::GLchar* test_name, const glw::GLchar* test_description)
1469 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1546 const GLchar* TestBase::getStageSpecificLayout(Utils::SHADER_STAGES stage) const
1548 static const GLchar* stage_layout_geometry = "layout(points) in;\n"
1550 static const GLchar* stage_layout_tess_ctrl = "layout(vertices = 1) out;\n";
1551 static const GLchar* stage_layout_tess_eval = "layout(isolines, point_mode) in;\n";
1553 const GLchar* result = "";
1582 const GLchar* TestBase::getVersionString(Utils::SHADER_STAGES stage, bool use_version_400) const
1584 static const GLchar* version_400 = "#version 400\n"
1587 static const GLchar* version_420 = "#version 420";
1588 static const GLchar* version_430 = "#version 430";
1590 const GLchar* result = "";
1660 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1710 int TestBase::maxImageUniforms(Utils::SHADER_STAGES stage) const
1712 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1747 APITestBase::APITestBase(deqp::Context& context, const glw::GLchar* test_name, const glw::GLchar* test_description)
1868 const glw::GLenum GLSLTestBase::m_color_texture_internal_format = GL_RGBA8;
1869 const glw::GLenum GLSLTestBase::m_color_texture_format = GL_RGBA;
1870 const glw::GLenum GLSLTestBase::m_color_texture_type = GL_UNSIGNED_BYTE;
1871 const glw::GLuint GLSLTestBase::m_color_texture_width = 16;
1872 const glw::GLuint GLSLTestBase::m_color_texture_height = 16;
1880 GLSLTestBase::GLSLTestBase(deqp::Context& context, const glw::GLchar* test_name, const glw::GLchar* test_description)
1892 const GLchar* GLSLTestBase::prepareSourceTexture(Utils::texture&)
1905 void GLSLTestBase::prepareVertexBuffer(const Utils::program&, Utils::buffer&, Utils::vertexArray& vao)
1915 bool GLSLTestBase::verifyAdditionalResults() const
1936 const glw::GLchar* uniform_name) const
1939 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1957 const glw::GLchar* uniform_name) const
1960 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
1978 bool GLSLTestBase::checkResults(Utils::texture& color_texture) const
1980 static const GLuint green_color = 0xff00ff00;
1981 const GLuint texture_data_size = m_color_texture_width * m_color_texture_height;
2008 void GLSLTestBase::prepareFramebuffer(Utils::framebuffer& framebuffer, Utils::texture& color_texture) const
2025 void GLSLTestBase::prepareImage(Utils::program& program, Utils::texture& color_texture) const
2103 const GLchar* sampler_name = prepareSourceTexture(source_tex);
2113 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2191 const Utils::shaderSource* data[] = { &vertex_data, &tess_ctrl_data, &tess_eval_data, &geometry_data,
2215 const GLchar* sampler_name = prepareSourceTexture(source_tex);
2225 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2246 NegativeTestBase::NegativeTestBase(deqp::Context& context, const glw::GLchar* test_name,
2247 const glw::GLchar* test_description)
2346 const GLuint BindingImageTest::m_width = 16;
2347 const GLuint BindingImageTest::m_green_color = 0xff00ff00;
2348 const GLuint BindingImageTest::m_height = 16;
2349 const GLuint BindingImageTest::m_depth = 6;
2355 BindingImageTest::BindingImageTest(deqp::Context& context, const glw::GLchar* test_name,
2356 const glw::GLchar* test_description)
2389 void BindingImageTest::prepareTexture(Utils::texture& texture, const Utils::buffer& buffer,
2427 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
2440 bool BindingImageTest::verifyBuffer(const Utils::buffer& buffer) const
2457 bool BindingImageTest::verifyTexture(const Utils::texture& texture) const
2459 static const GLuint texture_data_size = m_width * m_height * m_depth;
2472 const GLuint LineContinuationTest::m_n_repetitions = 20;
2473 const GLchar* LineContinuationTest::m_texture_coordinates_name = "texture_coordinates";
2503 static const testCase test_cases[] = { { ASSIGNMENT_BEFORE_OPERATOR, ONCE, UNIX },
2564 static const GLuint max_test_cases = sizeof(test_cases) / sizeof(testCase);
2614 static const GLchar* shader_template_part_0 =
2635 static const GLchar* shader_template_part_1 =
2683 static const GLchar* shader_template_part_0 =
2707 static const GLchar* shader_template_part_1 =
2727 static const GLchar* store_results_template = " SET_RESULT(result);\n"
2730 static const GLchar* store_results_tcs_template = " SET_RESULT(result);\n"
2739 static const GLchar* store_results_fs_template = " SET_RESULT(result);\n";
2741 static const GLchar* store_results_gs_template = " gl_Position = vec4(-1, -1, 0, 1);\n"
2758 static const GLchar* pass_condition_template = "(EXPECTED_VALUE == sampled_color) &&\n"
2761 static const GLchar* pass_condition_vs_template = "EXPECTED_VALUE == sampled_color";
2764 static const GLchar* token_version = "VERSION";
2765 static const GLchar* token_stage_specific = "STAGE_SPECIFIC";
2767 static const GLchar* token_in_color_definition = "IN_COLOR_DEFINITION";
2768 static const GLchar* token_in_tex_coord_definition = "IN_TEXTURE_COORDINATES_DEFINITION";
2769 static const GLchar* token_out_color_definition = "OUT_COLOR_DEFINITION";
2770 static const GLchar* token_out_tex_coord_definition = "OUT_TEXTURE_COORDINATES_DEFINITION";
2772 static const GLchar* token_expected_value = "EXPECTED_VALUE";
2773 static const GLchar* token_texture_coordinates = "TEXTURE_COORDINATES";
2774 static const GLchar* token_in_color = "IN_COLOR";
2775 static const GLchar* token_out_color = "OUT_COLOR";
2777 static const GLchar* token_store_results = "STORE_RESULTS";
2778 static const GLchar* token_pass_condition = "PASS_CONDITION";
2781 static const GLchar* color_name = "color";
2782 static const GLchar* empty = "";
2785 const GLchar* version = getVersionString(stage, use_version_400);
2786 const GLchar* stage_specific_layout = getStageSpecificLayout(stage);
2787 const GLchar* expected_value = getExpectedValueString();
2819 const GLchar* store_results = store_results_template;
2820 const GLchar* pass_condition = pass_condition_template;
2839 const GLuint store_results_length = static_cast<GLuint>(strlen(store_results));
2840 const GLuint pass_condition_length = static_cast<GLuint>(strlen(pass_condition));
2860 const bool is_multipart = isShaderMultipart();
2937 const GLchar* LineContinuationTest::prepareSourceTexture(Utils::texture& texture)
2940 static const GLuint width = 64;
2941 static const GLuint height = 64;
2942 static const GLuint data_size = width * height;
2943 static const GLuint blue_color = 0xffff0000;
2944 static const GLuint grey_color = 0xaaaaaaaa;
2955 const GLuint line_offset = y * 64;
2959 const GLuint pixel_offset = x + line_offset;
2978 void LineContinuationTest::prepareVertexBuffer(const Utils::program& program, Utils::buffer& buffer,
3000 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
3018 const GLchar* LineContinuationTest::casesToStr(CASES cases) const
3020 const GLchar* result = 0;
3081 const GLchar* LineContinuationTest::getExpectedValueString() const
3090 std::string LineContinuationTest::getLineContinuationString() const
3092 static const GLchar line_continuation_ending_dos[] = { '\\', 0x0d, 0x0a, 0x00 };
3093 static const GLchar line_continuation_ending_unix[] = { '\\', 0x0a, 0x00 };
3096 const GLchar* selected_string;
3121 bool LineContinuationTest::isShaderMultipart() const
3158 const GLchar* LineContinuationTest::lineEndingsToStr(LINE_ENDINGS line_ending) const
3160 const GLchar* result = 0;
3180 const GLchar* LineContinuationTest::repetitionsToStr(REPETITIONS repetitions) const
3182 const GLchar* result = 0;
3200 void LineContinuationTest::replaceAllCaseTokens(std::string& source) const
3204 static const GLchar* token_assignment_before_operator_case = "ASSIGNMENT_BEFORE_OPERATOR_CASE";
3205 static const GLchar* token_assignment_after_operator_case = "ASSIGNMENT_AFTER_OPERATOR_CASE";
3206 static const GLchar* token_vector_initializer = "VECTOR_VARIABLE_INITIALIZER_CASE";
3207 static const GLchar* token_function_case = "FUNCTION_CASE";
3208 static const GLchar* token_type_case = "TYPE_CASE";
3209 static const GLchar* token_variable_case = "VARIABLE_CASE";
3210 static const GLchar* token_preprocessor_inside_case = "PREPROCESSOR_INSIDE_CASE";
3211 static const GLchar* token_preprocessor_between_case = "PREPROCESSOR_BETWEEN_CASE";
3212 static const GLchar* token_comment = "COMMENT_CASE";
3213 static const GLchar* token_termination = "TERMINATION_CASE";
3214 static const GLchar* token_next_to_termination = "NEXT_TO_TERMINATION_CASE";
3217 static const GLchar* empty = "";
3218 const std::string& line_continuation = getLineContinuationString();
3221 const GLchar* assignment_before_operator_case = empty;
3222 const GLchar* assignment_after_operator_case = empty;
3223 const GLchar* vector_variable_initializer_case = empty;
3224 const GLchar* function_case = empty;
3225 const GLchar* type_case = empty;
3226 const GLchar* variable_case = empty;
3227 const GLchar* preprocessor_inside_case = empty;
3228 const GLchar* preprocessor_between_case = empty;
3229 const GLchar* comment_case = empty;
3230 const GLchar* source_termination_case = empty;
3231 const GLchar* part_termination_case = empty;
3232 const GLchar* next_to_part_termination_case = empty;
3300 bool LineContinuationTest::useSourceLengths() const
3350 static const GLchar* test_result_snippet_normal[6] = { /* Utils::COMPUTE_SHADER */
3364 static const GLchar* test_result_snippet_400[6] = { /* Utils::COMPUTE_SHADER */
3378 static const GLchar* line_numbering_snippet = "ivec4 glsl\\\n"
3385 static const GLchar* compute_shader_template =
3407 static const GLchar* fragment_shader_template =
3429 static const GLchar* geometry_shader_template =
3465 static const GLchar* tess_ctrl_shader_template =
3496 static const GLchar* tess_eval_shader_template =
3520 static const GLchar* vertex_shader_template = "VERSION\n"
3539 const GLchar* shader_template = 0;
3607 static const testCase test_cases[] = {
3634 static const GLuint max_test_cases = sizeof(test_cases) / sizeof(testCase);
3666 static const GLchar* compute_shader_template =
3698 static const GLchar* fragment_shader_template =
3730 static const GLchar* geometry_shader_template =
3780 static const GLchar* tess_ctrl_shader_template =
3820 static const GLchar* tess_eval_shader_template =
3853 static const GLchar* vertex_shader_template =
3882 const GLchar* shader_template = 0;
3883 const GLchar* comment_case = "";
3884 const GLchar* preprocessor_case = "";
3885 const GLchar* last_character_case = "";
3886 const GLchar* utf8_character = Utils::getUtf8Character(m_test_case.m_character);
3951 const GLchar* UTF8CharactersTest::prepareSourceTexture(Utils::texture& texture)
3954 static const GLuint width = 64;
3955 static const GLuint height = 64;
3956 static const GLuint data_size = width * height;
3957 static const GLuint blue_color = 0xffff0000;
3958 static const GLuint grey_color = 0xaaaaaaaa;
3969 const GLuint line_offset = y * 64;
3973 const GLuint pixel_offset = x + line_offset;
3990 const GLchar* UTF8CharactersTest::casesToStr() const
3992 const GLchar* result = 0;
4036 static const Utils::UTF8_CHARACTERS test_cases[] = {
4041 static const GLuint max_test_cases = sizeof(test_cases) / sizeof(Utils::UTF8_CHARACTERS);
4072 static const GLchar* compute_shader_template =
4096 static const GLchar* fragment_shader_template =
4120 static const GLchar* geometry_shader_template =
4162 static const GLchar* tess_ctrl_shader_template =
4194 static const GLchar* tess_eval_shader_template =
4219 static const GLchar* vertex_shader_template = "VERSION\n"
4239 const GLchar* shader_template = 0;
4240 const GLchar* utf8_character = Utils::getUtf8Character(m_character);
4304 const testCase& test_case = m_test_cases[test_case_index];
4325 static const GLchar* function_definition = "T1 function(in T2 left, in T2 right)\n"
4330 static const GLchar* verification_snippet = " const T2 const_left = T2(VALUE_LIST);\n"
4331 " const T2 const_right = T2(VALUE_LIST);\n"
4348 static const GLchar* compute_shader_template =
4369 static const GLchar* fragment_shader_template = "VERSION\n"
4392 static const GLchar* geometry_shader_template = "VERSION\n"
4429 static const GLchar* tess_ctrl_shader_template =
4462 static const GLchar* tess_eval_shader_template = "VERSION\n"
4487 static const GLchar* vertex_shader_template = "VERSION\n"
4505 const testCase& test_case = getCurrentTestCase();
4506 const GLchar* t1 = Utils::getTypeName(test_case.m_types.m_t1, test_case.m_n_cols, test_case.m_n_rows);
4507 const GLchar* t2 = Utils::getTypeName(test_case.m_types.m_t2, test_case.m_n_cols, test_case.m_n_rows);
4508 const std::string& value_list = getValueList(test_case.m_n_cols, test_case.m_n_rows);
4509 const GLchar* shader_template = 0;
4558 static const GLdouble double_data[16] = { 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
4560 static const GLfloat float_data[16] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f,
4562 static const GLint int_data[4] = { 1, 1, 1, 1 };
4563 static const GLuint uint_data[4] = { 1u, 1u, 1u, 1u };
4565 const testCase& test_case = getCurrentTestCase();
4596 static const typesPair allowed_conversions[] = {
4610 const typesPair& types = allowed_conversions[i];
4642 const ImplicitConversionsValidTest::testCase& ImplicitConversionsValidTest::getCurrentTestCase()
4728 static const GLchar* function_definition = "T1 function(in T2 left, in T2 right)\n"
4733 static const GLchar* verification_snippet = " const T2 const_left = T2(VALUE_LIST);\n"
4734 " const T2 const_right = T2(VALUE_LIST);\n"
4751 static const GLchar* compute_shader_template =
4772 static const GLchar* fragment_shader_template = "VERSION\n"
4795 static const GLchar* geometry_shader_template = "VERSION\n"
4832 static const GLchar* tess_ctrl_shader_template =
4865 static const GLchar* tess_eval_shader_template = "VERSION\n"
4890 static const GLchar* vertex_shader_template = "VERSION\n"
4909 const GLchar* t1 = Utils::getTypeName(Utils::INT, 1, n_rows);
4910 const GLchar* t2 = Utils::getTypeName(Utils::UINT, 1, n_rows);
4911 const std::string& value_list = getValueList(n_rows);
4912 const GLchar* shader_template = 0;
4997 static const GLchar* struct_definition = "struct S {\n"
5003 static const GLchar* verification_snippet = " const float c1 = uni_scalar;\n"
5004 " const vec4 c2 = uni_vector;\n"
5005 " const mat2 c3 = uni_matrix;\n"
5006 " const S c4 = { uni_scalar, uni_vector, uni_matrix };\n"
5007 " const vec4 c5[15] = { uni_vector,\n"
5047 static const GLchar* compute_shader_template =
5069 static const GLchar* fragment_shader_template = "VERSION\n"
5093 static const GLchar* geometry_shader_template = "VERSION\n"
5131 static const GLchar* tess_ctrl_shader_template =
5165 static const GLchar* tess_eval_shader_template = "VERSION\n"
5191 static const GLchar* vertex_shader_template = "VERSION\n"
5210 static const GLchar* scalar = "0.5";
5211 static const GLchar* vector = "vec4(0.5, 0.125, 0.375, 0)";
5212 static const GLchar* matrix = "mat2(0.5, 0.125, 0.375, 0)";
5214 const GLchar* shader_template = 0;
5263 static const GLfloat float_data[4] = { 0.5f, 0.125f, 0.375f, 0.0f };
5264 static const GLfloat scalar = 0.5f;
5313 static const GLchar* verification_snippet = " const float c1 = INIT;\n"
5328 static const GLchar* compute_shader_template =
5346 static const GLchar* fragment_shader_template = "VERSION\n"
5366 static const GLchar* geometry_shader_template = "VERSION\n"
5400 static const GLchar* tess_ctrl_shader_template =
5430 static const GLchar* tess_eval_shader_template = "VERSION\n"
5452 static const GLchar* vertex_shader_template = "VERSION\n"
5467 static const GLchar* dynamic_init = "uni_value";
5468 static const GLchar* const_init = "0.75";
5470 const GLchar* shader_template = 0;
5471 const GLchar* l_init = 0;
5537 static const GLchar* verification_snippet = " const uint c1 = INIT;\n"
5551 static const GLchar* compute_shader_template =
5569 static const GLchar* fragment_shader_template = "VERSION\n"
5589 static const GLchar* geometry_shader_template = "VERSION\n"
5623 static const GLchar* tess_ctrl_shader_template =
5653 static const GLchar* tess_eval_shader_template = "VERSION\n"
5675 static const GLchar* vertex_shader_template = "VERSION\n"
5690 static const GLchar* l_init = "uni_value";
5692 const GLchar* shader_template = 0;
5760 const Utils::qualifierSet& set = getCurrentTestCase();
5783 static const GLchar* verification_snippet =
5790 static const GLchar* fragment_shader_template = "VERSION\n"
5813 static const GLchar* geometry_shader_template = "VERSION\n"
5853 static const GLchar* tess_ctrl_shader_template =
5886 static const GLchar* tess_eval_shader_template = "VERSION\n"
5911 static const GLchar* vertex_shader_template = "VERSION\n"
5929 const GLchar* shader_template = 0;
5954 const Utils::qualifierSet& test_case = getCurrentTestCase();
6001 void QualifierOrderTest::prepareVertexBuffer(const Utils::program& program, Utils::buffer& buffer,
6023 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
6084 const Utils::qualifierSet& QualifierOrderTest::getCurrentTestCase()
6127 const Utils::qualifierSet& set = getCurrentTestCase();
6150 static const GLchar* verification_snippet =
6157 static const GLchar* fragment_shader_template = "VERSION\n"
6182 static const GLchar* geometry_shader_template = "VERSION\n"
6226 static const GLchar* tess_ctrl_shader_template =
6263 static const GLchar* tess_eval_shader_template = "VERSION\n"
6292 static const GLchar* vertex_shader_template = "VERSION\n"
6312 const GLchar* shader_template = 0;
6337 const Utils::qualifierSet& test_case = getCurrentTestCase();
6402 void QualifierOrderBlockTest::prepareVertexBuffer(const Utils::program& program, Utils::buffer& buffer,
6424 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
6469 const Utils::qualifierSet& QualifierOrderBlockTest::getCurrentTestCase()
6512 const Utils::qualifierSet& set = getCurrentTestCase();
6535 static const GLchar* verification_snippet =
6542 static const GLchar* variable_declaration = " QUALIFIERS VARIABLE_NAME";
6544 static const GLchar* fragment_shader_template = "VERSION\n"
6566 static const GLchar* geometry_shader_template = "VERSION\n"
6602 static const GLchar* tess_ctrl_shader_template =
6634 static const GLchar* tess_eval_shader_template = "VERSION\n"
6658 static const GLchar* vertex_shader_template = "VERSION\n"
6675 const GLchar* shader_template = 0;
6676 const GLchar* location_string = 0;
6706 const Utils::qualifierSet& test_case = getCurrentTestCase();
6736 static const GLfloat float_data[4] = { 0.0f, 0.0f, 1.0f, 1.0f };
6783 const Utils::qualifierSet& QualifierOrderUniformTest::getCurrentTestCase()
6825 const Utils::qualifierSet& set = getCurrentTestCase();
6848 static const GLchar* verification_snippet =
6859 static const GLchar* function_declaration = "void function(QUALIFIERS_LIST vec4 param)\n"
6864 static const GLchar* fragment_shader_template = "VERSION\n"
6887 static const GLchar* geometry_shader_template = "VERSION\n"
6924 static const GLchar* tess_ctrl_shader_template =
6957 static const GLchar* tess_eval_shader_template = "VERSION\n"
6982 static const GLchar* vertex_shader_template = "VERSION\n"
7000 const GLchar* shader_template = 0;
7025 const std::string& uni_reference = Utils::getVariableName(in_stage, Utils::UNIFORM, "test");
7026 const std::string& qualifier_list = Utils::getQualifiersListString(getCurrentTestCase());
7052 static const GLfloat float_data[4] = { 1.0f, 1.0f, 0.0f, 0.0f };
7100 const Utils::qualifierSet& QualifierOrderFunctionInoutTest::getCurrentTestCase()
7142 const Utils::qualifierSet& set = getCurrentTestCase();
7165 static const GLchar* verification_snippet =
7174 static const GLchar* function_declaration = "vec4 function(QUALIFIERS_LIST vec4 param)\n"
7179 static const GLchar* fragment_shader_template = "VERSION\n"
7202 static const GLchar* geometry_shader_template = "VERSION\n"
7239 static const GLchar* tess_ctrl_shader_template =
7272 static const GLchar* tess_eval_shader_template = "VERSION\n"
7297 static const GLchar* vertex_shader_template = "VERSION\n"
7315 const GLchar* shader_template = 0;
7340 const std::string& uni_reference = Utils::getVariableName(in_stage, Utils::UNIFORM, "test");
7341 const std::string& qualifier_list = Utils::getQualifiersListString(getCurrentTestCase());
7367 static const GLfloat float_data[4] = { 1.0f, 1.0f, 0.0f, 0.0f };
7421 const Utils::qualifierSet& QualifierOrderFunctionInputTest::getCurrentTestCase()
7464 const Utils::qualifierSet& set = getCurrentTestCase();
7487 static const GLchar* verification_snippet =
7498 static const GLchar* function_declaration = "void function(QUALIFIERS_LIST vec4 param)\n"
7503 static const GLchar* fragment_shader_template = "VERSION\n"
7526 static const GLchar* geometry_shader_template = "VERSION\n"
7563 static const GLchar* tess_ctrl_shader_template =
7596 static const GLchar* tess_eval_shader_template = "VERSION\n"
7621 static const GLchar* vertex_shader_template = "VERSION\n"
7639 const GLchar* shader_template = 0;
7664 const std::string& uni_reference = Utils::getVariableName(in_stage, Utils::UNIFORM, "test");
7665 const std::string& qualifier_list = Utils::getQualifiersListString(getCurrentTestCase());
7691 static const GLfloat float_data[4] = { 1.0f, 1.0f, 0.0f, 0.0f };
7739 const Utils::qualifierSet& QualifierOrderFunctionOutputTest::getCurrentTestCase()
7770 static const GLchar* fragment_shader_template = "VERSION\n"
7788 static const GLchar* geometry_shader_template =
7821 static const GLchar* tess_ctrl_shader_template =
7849 static const GLchar* tess_eval_shader_template =
7870 static const GLchar* vertex_shader_template = "VERSION\n"
7883 const GLchar* shader_template = 0;
7924 void QualifierOverrideLayoutTest::prepareVertexBuffer(const Utils::program& program, Utils::buffer& buffer,
7927 static const GLint expected_location = 2;
7948 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
7982 static const GLchar* uni_goku = "layout(std140, binding = 0) uniform GOKU {\n"
7986 static const GLchar* uni_vegeta = "layout(std140, binding = 1) uniform VEGETA {\n"
7990 static const GLchar* uni_children = "layout(std140, binding = 3) uniform CHILDREN {\n"
7995 static const GLchar* verification_snippet = " if ((vec4(1, 0, 0, 0) != goku.chichi) ||\n"
8003 static const GLchar* compute_shader_template =
8024 static const GLchar* fragment_shader_template = "VERSION\n"
8047 static const GLchar* geometry_shader_template = "VERSION\n"
8084 static const GLchar* tess_ctrl_shader_template =
8117 static const GLchar* tess_eval_shader_template = "VERSION\n"
8142 static const GLchar* vertex_shader_template = "VERSION\n"
8160 const GLchar* shader_template = 0;
8209 static const GLfloat goku_data[4] = { 1.0f, 0.0f, 0.0f, 0.0f };
8210 static const GLfloat vegeta_data[3] = { 0.0f, 1.0f, 0.0f };
8211 static const GLfloat children_data[8] = { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f };
8295 static const GLchar* uni_goku_with_binding = "layout(std140, binding = 0) uniform GOKU {\n"
8300 static const GLchar* uni_goku_no_binding = "layout(std140) uniform GOKU {\n"
8305 static const GLchar* verification_snippet = " if ((vec4(1, 0, 0, 0) != goku.gohan) ||\n"
8311 static const GLchar* compute_shader_template =
8330 static const GLchar* fragment_shader_template = "VERSION\n"
8351 static const GLchar* geometry_shader_template = "VERSION\n"
8386 static const GLchar* tess_ctrl_shader_template =
8417 static const GLchar* tess_eval_shader_template = "VERSION\n"
8440 static const GLchar* vertex_shader_template = "VERSION\n"
8456 const GLchar* shader_template = 0;
8457 const GLchar* uniform_definition = uni_goku_no_binding;
8508 static const GLfloat goku_data[8] = { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f };
8559 static const GLchar* uni_goku = "layout(std140, binding = 2) uniform GOKU {\n"
8564 static const GLchar* verification_snippet = " if ((vec4(0, 0, 0, 0) != goku[0].gohan) ||\n"
8596 static const GLchar* compute_shader_template =
8615 static const GLchar* fragment_shader_template = "VERSION\n"
8636 static const GLchar* geometry_shader_template = "VERSION\n"
8671 static const GLchar* tess_ctrl_shader_template =
8702 static const GLchar* tess_eval_shader_template = "VERSION\n"
8725 static const GLchar* vertex_shader_template = "VERSION\n"
8741 const GLchar* shader_template = 0;
8785 static const GLfloat goku_data[][8] = {
8835 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
8840 const GLuint uniform_index = gl.getUniformBlockIndex(program.m_program_object_id, buffer);
8874 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
8876 const GLuint index = gl.getUniformBlockIndex(program.m_program_object_id, "GOKU");
8906 static const GLchar* uni_goku = "layout(std140) uniform GOKU {\n"
8911 static const GLchar* verification_snippet = " if ((vec4(0, 0, 0, 0) != goku.gohan) ||\n"
8917 static const GLchar* compute_shader_template =
8936 static const GLchar* fragment_shader_template = "VERSION\n"
8957 static const GLchar* geometry_shader_template = "VERSION\n"
8992 static const GLchar* tess_ctrl_shader_template =
9023 static const GLchar* tess_eval_shader_template = "VERSION\n"
9046 static const GLchar* vertex_shader_template = "VERSION\n"
9062 const GLchar* shader_template = 0;
9120 static const GLchar* uni_goku = "layout(std140, binding = 2) uniform GOKU {\n"
9125 static const GLchar* verification_snippet = " if ((vec4(1, 0, 0, 0) != goku.gohan) ||\n"
9131 static const GLchar* compute_shader_template =
9150 static const GLchar* fragment_shader_template = "VERSION\n"
9171 static const GLchar* geometry_shader_template = "VERSION\n"
9206 static const GLchar* tess_ctrl_shader_template =
9237 static const GLchar* tess_eval_shader_template = "VERSION\n"
9260 static const GLchar* vertex_shader_template = "VERSION\n"
9276 const GLchar* shader_template = 0;
9320 static const GLfloat goku_data[8] = { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f };
9322 static const GLuint new_binding = 11;
9324 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
9326 const GLuint index = gl.getUniformBlockIndex(program.m_program_object_id, "GOKU");
9382 static const GLchar* verification_snippet = " if (vec4(0, 0, 1, 1) != uni_test)\n"
9387 static const GLchar* uniform_definition = "layout(binding = 0) uniform vec4 uni_test;\n";
9389 static const GLchar* compute_shader_template =
9408 static const GLchar* fragment_shader_template = "VERSION\n"
9429 static const GLchar* geometry_shader_template = "VERSION\n"
9464 static const GLchar* tess_ctrl_shader_template =
9495 static const GLchar* tess_eval_shader_template = "VERSION\n"
9518 static const GLchar* vertex_shader_template = "VERSION\n"
9534 const GLchar* shader_template = 0;
9617 static const GLchar* verification_snippet = " if (vec4(0, 0, 1, 1) != goku.gohan)\n"
9622 static const GLchar* uniform_definition = "layout(std140, binding BINDING) uniform GOKU {\n"
9627 static const GLchar* compute_shader_template =
9646 static const GLchar* fragment_shader_template = "VERSION\n"
9667 static const GLchar* geometry_shader_template = "VERSION\n"
9702 static const GLchar* tess_ctrl_shader_template =
9733 static const GLchar* tess_eval_shader_template = "VERSION\n"
9756 static const GLchar* vertex_shader_template = "VERSION\n"
9772 const GLchar* shader_template = 0;
9811 const GLchar* BindingUniformInvalidTest::getCaseString(TESTCASES test_case)
9814 const GLchar* binding = 0;
9910 static const GLchar* uni_goku = "layout(binding = 0) uniform TYPE goku;\n";
9912 static const GLchar* uni_vegeta = "layout(binding = 1) uniform TYPE vegeta;\n";
9914 static const GLchar* uni_trunks = "layout(binding = 3) uniform TYPE trunks;\n\n";
9916 static const GLchar* verification_snippet = " TEX_COORD_TYPE tex_coord = TEX_COORD_TYPE(COORDINATES);\n"
9928 static const GLchar* compute_shader_template =
9949 static const GLchar* fragment_shader_template = "VERSION\n"
9972 static const GLchar* geometry_shader_template = "VERSION\n"
10009 static const GLchar* tess_ctrl_shader_template =
10042 static const GLchar* tess_eval_shader_template = "VERSION\n"
10067 static const GLchar* vertex_shader_template = "VERSION\n"
10085 const Utils::TYPES base_tex_coord_type = (Utils::TEX_BUFFER == m_test_case) ? Utils::INT : Utils::FLOAT;
10086 const GLchar* coordinates = 0;
10088 const GLchar* shader_template = 0;
10089 const GLchar* sampler_type = Utils::getSamplerType(m_test_case);
10090 const GLchar* sampling_function = (Utils::TEX_BUFFER == m_test_case) ? "texelFetch" : "texture";
10091 const GLchar* tex_coord_type = Utils::getTypeName(base_tex_coord_type, 1 /* n_columns */, n_coordinates);
10166 static const GLuint goku_data = 0x000000ff;
10167 static const GLuint vegeta_data = 0x0000ff00;
10168 static const GLuint trunks_data = 0x00ff0000;
10174 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
10213 static const GLuint width = 16;
10214 static const GLuint height = 16;
10215 static const GLuint depth = 1;
10296 static const GLchar* uni_goku_with_binding = "layout(binding = 2) uniform sampler2D goku;\n";
10298 static const GLchar* uni_goku_no_binding = "uniform sampler2D goku;\n";
10300 static const GLchar* verification_snippet = " vec4 goku_color = texture(goku, vec2(0,0));\n"
10307 static const GLchar* compute_shader_template =
10326 static const GLchar* fragment_shader_template = "VERSION\n"
10347 static const GLchar* geometry_shader_template = "VERSION\n"
10382 static const GLchar* tess_ctrl_shader_template =
10413 static const GLchar* tess_eval_shader_template = "VERSION\n"
10436 static const GLchar* vertex_shader_template = "VERSION\n"
10452 const GLchar* shader_template = 0;
10453 const GLchar* uniform_definition = uni_goku_no_binding;
10504 static const GLuint goku_data = 0x000000ff;
10518 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
10561 static const GLchar* uni_goku = "layout(binding = 1) uniform sampler2D goku[7];\n";
10563 static const GLchar* verification_snippet = " vec4 color[7];\n"
10581 static const GLchar* compute_shader_template =
10600 static const GLchar* fragment_shader_template = "VERSION\n"
10621 static const GLchar* geometry_shader_template = "VERSION\n"
10656 static const GLchar* tess_ctrl_shader_template =
10687 static const GLchar* tess_eval_shader_template = "VERSION\n"
10710 static const GLchar* vertex_shader_template = "VERSION\n"
10726 const GLchar* shader_template = 0;
10770 static const GLuint goku_data[7] = {
10774 static const GLuint binding_offset = 1;
10784 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
10865 static const GLchar* uni_goku = "uniform sampler2D goku;\n";
10867 static const GLchar* verification_snippet = " vec4 color = texture(goku, vec2(0,0));\n"
10873 static const GLchar* compute_shader_template =
10892 static const GLchar* fragment_shader_template = "VERSION\n"
10913 static const GLchar* geometry_shader_template = "VERSION\n"
10948 static const GLchar* tess_ctrl_shader_template =
10979 static const GLchar* tess_eval_shader_template = "VERSION\n"
11002 static const GLchar* vertex_shader_template = "VERSION\n"
11018 const GLchar* shader_template = 0;
11076 static const GLchar* uni_goku = "layout(binding = 2) uniform sampler2D goku;\n";
11078 static const GLchar* verification_snippet = " vec4 color = texture(goku, vec2(0,0));\n"
11084 static const GLchar* compute_shader_template =
11103 static const GLchar* fragment_shader_template = "VERSION\n"
11124 static const GLchar* geometry_shader_template = "VERSION\n"
11159 static const GLchar* tess_ctrl_shader_template =
11190 static const GLchar* tess_eval_shader_template = "VERSION\n"
11213 static const GLchar* vertex_shader_template = "VERSION\n"
11229 const GLchar* shader_template = 0;
11273 static const GLuint goku_data = 0x000000ff;
11274 static const GLint new_binding = 11;
11276 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
11278 const GLint uniform_location = program.getUniformLocation("goku");
11369 static const GLchar* uni_goku = "layout(binding BINDING) uniform sampler2D goku;\n";
11371 static const GLchar* verification_snippet = " vec4 color = texture(goku, vec2(0,0));\n"
11377 static const GLchar* compute_shader_template =
11396 static const GLchar* fragment_shader_template = "VERSION\n"
11417 static const GLchar* geometry_shader_template = "VERSION\n"
11452 static const GLchar* tess_ctrl_shader_template =
11483 static const GLchar* tess_eval_shader_template = "VERSION\n"
11506 static const GLchar* vertex_shader_template = "VERSION\n"
11522 const GLchar* shader_template = 0;
11562 const GLchar* BindingSamplerInvalidTest::getCaseString(TESTCASES test_case)
11565 const GLchar* binding = 0;
11592 const GLuint BindingImagesTest::m_goku_data = 0x000000ff;
11593 const GLuint BindingImagesTest::m_vegeta_data = 0x0000ff00;
11594 const GLuint BindingImagesTest::m_trunks_data = 0x00ff0000;
11667 static const GLchar* uni_goku = "layout(binding = 1, rgba8) uniform TYPE goku;\n";
11669 static const GLchar* uni_vegeta = "layout(binding = 2, rgba8) uniform TYPE vegeta;\n";
11671 static const GLchar* uni_trunks = "layout(binding = 4, rgba8) uniform TYPE trunks;\n\n";
11673 static const GLchar* verification_snippet = " TEX_COORD_TYPE tex_coord_read = TEX_COORD_TYPE(COORDINATES);\n"
11691 static const GLchar* compute_shader_template =
11715 static const GLchar* fragment_shader_template = "VERSION\n"
11739 static const GLchar* geometry_shader_template = "VERSION\n"
11781 static const GLchar* tess_ctrl_shader_template =
11819 static const GLchar* tess_eval_shader_template = "VERSION\n"
11849 static const GLchar* vertex_shader_template = "VERSION\n"
11872 const GLchar* coordinates_read = 0;
11873 const GLchar* coordinates_write = 0;
11874 const GLchar* image_type = Utils::getImageType(m_test_case);
11876 const GLchar* shader_template = 0;
11877 const GLchar* tex_coord_type = Utils::getTypeName(Utils::INT, 1 /* n_columns */, n_coordinates);
11989 bool BindingImagesTest::verifyAdditionalResults() const
12058 static const GLchar* uni_goku_with_binding = "layout(binding = 2, rgba8) uniform image2D goku;\n";
12060 static const GLchar* uni_goku_no_binding = "layout(rgba8) uniform image2D goku;\n";
12062 static const GLchar* verification_snippet = " vec4 goku_color = imageLoad(goku, ivec2(0,1));\n"
12071 static const GLchar* compute_shader_template =
12091 static const GLchar* fragment_shader_template = "VERSION\n"
12113 static const GLchar* geometry_shader_template = "VERSION\n"
12153 static const GLchar* tess_ctrl_shader_template =
12189 static const GLchar* tess_eval_shader_template = "VERSION\n"
12217 static const GLchar* vertex_shader_template = "VERSION\n"
12238 const GLchar* shader_template = 0;
12239 const GLchar* uniform_definition = uni_goku_no_binding;
12298 static const GLuint goku_data = 0x000000ff;
12316 bool BindingImageSingleTest::verifyAdditionalResults() const
12347 static const GLchar* uni_goku = "layout(binding = 1, rgba8) uniform image2D goku[7];\n";
12349 static const GLchar* verification_snippet = " vec4 color[7];\n"
12367 static const GLchar* compute_shader_template =
12387 static const GLchar* fragment_shader_template = "VERSION\n"
12409 static const GLchar* geometry_shader_template = "VERSION\n"
12449 static const GLchar* tess_ctrl_shader_template =
12485 static const GLchar* tess_eval_shader_template = "VERSION\n"
12513 static const GLchar* vertex_shader_template = "VERSION\n"
12534 const GLchar* shader_template = 0;
12581 static const GLuint goku_data[7] = {
12659 static const GLchar* uni_goku = "layout(rgba8) uniform image2D goku;\n";
12661 static const GLchar* verification_snippet = " vec4 goku_color = imageLoad(goku, ivec2(0,0));\n"
12668 static const GLchar* compute_shader_template =
12688 static const GLchar* fragment_shader_template = "VERSION\n"
12710 static const GLchar* geometry_shader_template = "VERSION\n"
12750 static const GLchar* tess_ctrl_shader_template =
12786 static const GLchar* tess_eval_shader_template = "VERSION\n"
12814 static const GLchar* vertex_shader_template = "VERSION\n"
12835 const GLchar* shader_template = 0;
12896 static const GLchar* uni_goku = "layout(binding = 3, rgba8) uniform image2D goku;\n";
12898 static const GLchar* verification_snippet = " vec4 goku_color = imageLoad(goku, ivec2(0,0));\n"
12905 static const GLchar* compute_shader_template =
12925 static const GLchar* fragment_shader_template = "VERSION\n"
12947 static const GLchar* geometry_shader_template = "VERSION\n"
12987 static const GLchar* tess_ctrl_shader_template =
13023 static const GLchar* tess_eval_shader_template = "VERSION\n"
13051 static const GLchar* vertex_shader_template = "VERSION\n"
13072 const GLchar* shader_template = 0;
13119 static const GLuint goku_data = 0x000000ff;
13120 static const GLint new_binding = 7;
13122 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
13124 const GLint uniform_location = program.getUniformLocation("goku");
13200 static const GLchar* uni_goku = "layout(binding BINDING, rgba8) uniform image2D goku;\n";
13202 static const GLchar* verification_snippet = " vec4 goku_color = imageLoad(goku, ivec2(0,0));\n"
13209 static const GLchar* compute_shader_template =
13229 static const GLchar* fragment_shader_template = "VERSION\n"
13251 static const GLchar* geometry_shader_template = "VERSION\n"
13287 static const GLchar* tess_ctrl_shader_template =
13319 static const GLchar* tess_eval_shader_template = "VERSION\n"
13343 static const GLchar* vertex_shader_template = "VERSION\n"
13360 const GLchar* shader_template = 0;
13400 const GLchar* BindingImageInvalidTest::getCaseString(TESTCASES test_case)
13403 const GLchar* binding = 0;
13430 const GLfloat InitializerListTest::m_value = 0.0625f;
13474 static const GLfloat float_data[16] = { m_value, m_value, m_value, m_value, m_value, m_value, m_value, m_value,
13489 static const GLchar* verification_snippet = " TYPE_NAME variableARRAY_DEFINITION = INITIALIZATION;\n"
13498 static const GLchar* compute_shader_template =
13518 static const GLchar* fragment_shader_template = "VERSION\n"
13541 static const GLchar* geometry_shader_template = "VERSION\n"
13578 static const GLchar* tess_ctrl_shader_template =
13611 static const GLchar* tess_eval_shader_template = "VERSION\n"
13636 static const GLchar* vertex_shader_template = "VERSION\n"
13654 const std::string& array_definition = getArrayDefinition();
13655 const std::string& expected_value = getExpectedValue();
13656 const std::string& initialization = getInitialization();
13657 const GLchar* shader_template = 0;
13658 const std::string& sum = getSum();
13659 const std::string& type_definition = getTypeDefinition();
13660 const std::string& type_name = getTypeName();
13717 const TESTED_INITIALIZERS l_init = (TESTED_INITIALIZERS)i;
13790 const testCase& test_case = m_test_cases[m_current_test_case_index];
13837 const testCase& test_case = m_test_cases[m_current_test_case_index];
13903 const testCase& test_case = m_test_cases[m_current_test_case_index];
13983 const std::string& type_name = Utils::getTypeName(Utils::FLOAT, test_case.m_n_cols, test_case.m_n_rows);
14216 const testCase& test_case = m_test_cases[m_current_test_case_index];
14301 static const GLchar* var = "variable";
14303 const testCase& test_case = m_test_cases[m_current_test_case_index];
14414 const testCase& test_case = m_test_cases[m_current_test_case_index];
14416 static const GLchar* basic_struct = "struct BasicStructure {\n"
14421 static const GLchar* struct_with_array = "struct StructureWithArray {\n"
14426 static const GLchar* struct_with_struct = "struct StructureWithStructure {\n"
14431 static const GLchar* struct_with_struct_array = "struct StructureWithStructArray {\n"
14436 static const GLchar* struct_with_struct_with_array = "struct StructureWithStructureWithArray {\n"
14493 const testCase& test_case = m_test_cases[m_current_test_case_index];
14495 static const GLchar* basic_struct = "BasicStructure";
14497 static const GLchar* struct_with_struct = "StructureWithStructure";
14499 static const GLchar* struct_with_struct_array = "StructureWithStructArray";
14501 static const GLchar* struct_with_struct_with_array = "StructureWithStructureWithArray";
14605 const std::string& type_name = Utils::getTypeName(Utils::FLOAT, 1 /*n_cols*/, size);
14643 std::string InitializerListTest::getVectorArraySum(const GLchar* array_name, GLuint columns, GLuint size)
14645 static const GLchar* lut[] = { "0", "1", "2", "3" };
14674 std::string InitializerListTest::getVectorSum(const GLchar* vector_name, GLuint size)
14676 static const GLchar* lut[] = {
14705 const GLchar* init_template = 0;
14706 const GLchar* column_index = 0;
14789 static const GLchar* verification_snippet = " TYPE_NAME variable = INITIALIZATION;\n"
14798 static const GLchar* compute_shader_template =
14817 static const GLchar* fragment_shader_template = "VERSION\n"
14838 static const GLchar* geometry_shader_template = "VERSION\n"
14873 static const GLchar* tess_ctrl_shader_template =
14904 static const GLchar* tess_eval_shader_template = "VERSION\n"
14927 static const GLchar* vertex_shader_template = "VERSION\n"
14943 const std::string& initialization = getInitialization();
14944 const GLchar* shader_template = 0;
14945 const std::string& sum = getSum();
14946 const std::string& type_definition = getTypeDefinition();
14947 const std::string& type_name = getTypeName();
15000 const TESTED_ERRORS error = (TESTED_ERRORS)i;
15014 const TESTED_ERRORS& error = m_test_cases[m_current_test_case_index];
15103 const TESTED_ERRORS& error = m_test_cases[m_current_test_case_index];
15167 const TESTED_ERRORS& error = m_test_cases[m_current_test_case_index];
15219 const TESTED_ERRORS& error = m_test_cases[m_current_test_case_index];
15221 static const GLchar* struct_def = "struct BasicStructure {\n"
15267 const TESTED_ERRORS& error = m_test_cases[m_current_test_case_index];
15269 static const GLchar* struct_with_struct = "StructureWithStructure";
15341 const testCase& test_case = m_test_cases[m_current_test_case_index];
15377 static const GLfloat float_value = 0.125;
15378 static const GLint int_value = -1;
15379 static const GLuint uint_value = 1;
15381 static const GLfloat float_data[16] = { float_value, float_value, float_value, float_value,
15386 static const GLint int_data[4] = { int_value, int_value, int_value, int_value };
15388 static const GLuint uint_data[4] = { uint_value, uint_value, uint_value, uint_value };
15395 const testCase& test_case = m_test_cases[m_current_test_case_index];
15421 void LengthOfVectorAndMatrixTest::prepareVertexBuffer(const Utils::program& program, Utils::buffer& buffer,
15424 static const GLfloat float_value = 0.125f;
15425 static const GLint int_value = -1;
15426 static const GLuint uint_value = 1;
15428 static const GLfloat float_data[16] = { float_value, float_value, float_value, float_value,
15433 static const GLint int_data[4] = { int_value, int_value, int_value, int_value };
15435 static const GLuint uint_data[4] = { uint_value, uint_value, uint_value, uint_value };
15437 const testCase& test_case = m_test_cases[m_current_test_case_index];
15476 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
15484 const GLuint index = variable_loc + col;
15485 const GLint size = test_case.m_n_rows;
15486 const GLvoid* offset = (const GLvoid*)(test_case.m_n_rows * sizeof(GLfloat) * col);
15565 const testCase& test_case = m_test_cases[m_current_test_case_index];
15627 const testCase& test_case = m_test_cases[m_current_test_case_index];
15681 const GLchar* value = 0;
15724 static const GLchar* verification_snippet =
15728 " const uint variable_length = variable.length();\n"
15729 " const uint structure_member_b_length = structure.member_b.length();\n"
15730 " const uint input_member_length = INPUT_VARIABLE_NAME.length();\n"
15732 " const uint output_member_length = OUTPUT_VARIABLE_NAME.length();\n"
15793 static const GLchar* fragment_shader_template = "VERSION\n"
15823 static const GLchar* geometry_shader_template = "VERSION\n"
15872 static const GLchar* tess_ctrl_shader_template =
15914 static const GLchar* tess_eval_shader_template = "VERSION\n"
15948 static const GLchar* vertex_shader_template = "VERSION\n"
15973 const GLchar* array_index = "";
15974 const testCase& test_case = m_test_cases[m_current_test_case_index];
15975 const GLchar* shader_template = 0;
15976 const GLchar* input_block_name = "input_block";
15977 const GLchar* output_block_name = "output_block";
15979 const std::string& base_type_name = Utils::getTypeName(test_case.m_type, 1 /* cols */, 1 /* rows */);
15980 const std::string& expected_value = getExpectedValue(in_stage);
15981 const std::string& initialization = getInitialization();
15982 const std::string& type_name = Utils::getTypeName(test_case.m_type, test_case.m_n_cols, test_case.m_n_rows);
16104 static const GLchar* verification_snippet =
16108 " const uint variable_length = variable.length();\n"
16109 " const uint structure_member_b_length = structure.member_b.length();\n"
16141 static const GLchar* compute_shader_template =
16164 const testCase& test_case = m_test_cases[m_current_test_case_index];
16165 const GLchar* array_index = "";
16167 const std::string& base_type_name = Utils::getTypeName(test_case.m_type, 1 /* cols */, 1 /* rows */);
16168 const std::string& expected_value = getExpectedValue(Utils::COMPUTE_SHADER);
16169 const std::string& type_name = Utils::getTypeName(test_case.m_type, test_case.m_n_cols, test_case.m_n_rows);
16226 static const GLchar* uniforms = "uniform mat2x4 goten;\n"
16235 static const GLchar* verification_snippet =
16249 " const uint position_length = gl_out[gl_InvocationID].gl_Position.length();\n"
16254 " const uint position_length = gl_Position.length();\n"
16259 " const uint point_coord_length = gl_PointCoord.length();\n"
16260 " const uint sample_position_length = gl_SamplePosition.length();\n"
16262 " const uint outer_length = outerProduct(vegeta, trunks).length();\n"
16294 static const GLchar* compute_shader_template =
16315 static const GLchar* fragment_shader_template = "VERSION\n"
16338 static const GLchar* geometry_shader_template = "VERSION\n"
16373 static const GLchar* tess_ctrl_shader_template =
16405 static const GLchar* tess_eval_shader_template = "VERSION\n"
16428 static const GLchar* vertex_shader_template = "VERSION\n"
16444 const GLchar* shader_template = 0;
16487 static const GLfloat gohan_data[12] = { 0.125f, 0.125f, 0.125f, 0.125f, 0.125f, 0.125f,
16490 static const GLfloat goten_data[8] = { 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f, 1.0f };
16492 static const GLfloat vegeta_data[3] = { 0.5f, 0.5f, 0.0f };
16494 static const GLfloat trunks_data[3] = { 0.5f, 0.5f, 0.0f };
16496 static const GLuint indices_data[4] = { 2, 1, 0, 3 };
16498 static const GLuint variable_data[1] = { 1 };
16500 static const GLuint expected_lengths_data[4] = { 3, 2, 3, 3 };
16502 static const GLfloat expected_sum_data[1] = { 1.0f };
16533 static const GLchar* uniforms = "uniform float variable;\n"
16536 static const GLchar* literal = "#define LITERAL 0.375\n";
16538 static const GLchar* structure = "struct Structure {\n"
16547 static const GLchar* function = "bool check_values(in Structure structure, in float value)\n"
16549 " const vec2 xx = vec2(value, value);\n"
16550 " const vec3 xxx = vec3(value, value, value);\n"
16551 " const vec4 xxxx = vec4(value, value, value, value);\n"
16568 static const GLchar* verification_snippet =
16580 " const float constant = 0.125;\n"
16603 static const GLchar* compute_shader_template =
16628 static const GLchar* fragment_shader_template = "VERSION\n"
16657 static const GLchar* geometry_shader_template = "VERSION\n"
16698 static const GLchar* tess_ctrl_shader_template =
16735 static const GLchar* tess_eval_shader_template = "VERSION\n"
16764 static const GLchar* vertex_shader_template = "VERSION\n"
16786 const GLchar* shader_template = 0;
16835 static const GLfloat variable_data[4] = { 0.75f };
16836 static const GLfloat expected_values_data[3] = { 0.375f, 0.125f, 0.75f };
16889 static const GLchar* uniforms = "uniform float variable;\n";
16891 static const GLchar* verification_invalid_y = "\n"
16897 static const GLchar* verification_invalid_b = "\n"
16903 static const GLchar* verification_invalid_q = "\n"
16909 static const GLchar* verification_invalid_xy = "\n"
16915 static const GLchar* verification_invalid_xrs = "\n"
16921 static const GLchar* verification_wrong_u = "\n"
16927 static const GLchar* verification_missing_parenthesis = "\n"
16933 static const GLchar* compute_shader_template =
16952 static const GLchar* fragment_shader_template = "VERSION\n"
16975 static const GLchar* geometry_shader_template = "VERSION\n"
17010 static const GLchar* tess_ctrl_shader_template =
17041 static const GLchar* tess_eval_shader_template = "VERSION\n"
17064 static const GLchar* vertex_shader_template = "VERSION\n"
17080 const GLchar* shader_template = 0;
17081 const GLchar* verification_snippet = 0;
17146 const GLint BuiltInValuesTest::m_min_program_texel_offset_limit = -8;
17147 const GLint BuiltInValuesTest::m_max_program_texel_offset_limit = 7;
17168 static const GLchar* verification_snippet = " if ((expected_values.x != gl_MinProgramTexelOffset) ||\n"
17174 static const GLchar* compute_shader_template =
17192 static const GLchar* fragment_shader_template = "VERSION\n"
17213 static const GLchar* geometry_shader_template = "VERSION\n"
17248 static const GLchar* tess_ctrl_shader_template =
17279 static const GLchar* tess_eval_shader_template = "VERSION\n"
17302 static const GLchar* vertex_shader_template = "VERSION\n"
17318 const GLchar* shader_template = 0;
17359 const GLint expected_values_data[2] = { m_min_program_texel_offset, m_max_program_texel_offset };
17370 const Functions& gl = m_context.getRenderContext().getFunctions();
17412 const GLchar* description = 0;
17443 static const GLchar* min_verification_snippet = " gl_MinProgramTexelOffset += gl_MaxProgramTexelOffset\n"
17450 static const GLchar* max_verification_snippet = " gl_MaxProgramTexelOffset += gl_MinProgramTexelOffset\n"
17457 static const GLchar* compute_shader_template =
17475 static const GLchar* fragment_shader_template = "VERSION\n"
17496 static const GLchar* geometry_shader_template = "VERSION\n"
17531 static const GLchar* tess_ctrl_shader_template =
17562 static const GLchar* tess_eval_shader_template = "VERSION\n"
17585 static const GLchar* vertex_shader_template = "VERSION\n"
17601 const GLchar* shader_template = 0;
17602 const GLchar* verification_snippet = 0;
17667 void Utils::buffer::bind() const
17669 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17683 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17695 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17709 void* Utils::buffer::map(GLenum access) const
17711 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17725 void Utils::buffer::unmap() const
17727 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17744 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17760 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17783 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17800 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17819 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17831 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17846 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17857 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
17867 Utils::shaderSource::shaderSource(const shaderSource& source) : m_parts(source.m_parts), m_use_lengths(false)
17871 Utils::shaderSource::shaderSource(const glw::GLchar* source_code) : m_use_lengths(false)
17881 Utils::shaderCompilationException::shaderCompilationException(const shaderSource& source, const glw::GLchar* message)
17887 const char* Utils::shaderCompilationException::what() const throw()
17892 Utils::programLinkageException::programLinkageException(const glw::GLchar* message) : m_error_message(message)
17897 const char* Utils::programLinkageException::what() const throw()
17902 const glw::GLenum Utils::program::ARB_COMPUTE_SHADER = 0x91B9;
17941 void Utils::program::build(const glw::GLchar* compute_shader_code, const glw::GLchar* fragment_shader_code,
17942 const glw::GLchar* geometry_shader_code, const glw::GLchar* tesselation_control_shader_code,
17943 const glw::GLchar* tesselation_evaluation_shader_code, const glw::GLchar* vertex_shader_code,
17944 const glw::GLchar* const* varying_names, glw::GLuint n_varying_names, bool is_separable)
17946 const shaderSource compute_shader(compute_shader_code);
17947 const shaderSource fragment_shader(fragment_shader_code);
17948 const shaderSource geometry_shader(geometry_shader_code);
17949 const shaderSource tesselation_control_shader(tesselation_control_shader_code);
17950 const shaderSource tesselation_evaluation_shader(tesselation_evaluation_shader_code);
17951 const shaderSource vertex_shader(vertex_shader_code);
17969 void Utils::program::build(const shaderSource& compute_shader, const shaderSource& fragment_shader,
17970 const shaderSource& geometry_shader, const shaderSource& tesselation_control_shader,
17971 const shaderSource& tesselation_evaluation_shader, const shaderSource& vertex_shader,
17972 const glw::GLchar* const* varying_names, glw::GLuint n_varying_names, bool is_separable)
17975 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18048 void Utils::program::compile(glw::GLuint shader_id, const Utils::shaderSource& source) const
18051 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18057 std::vector<const GLchar*> parts;
18120 void Utils::program::createFromBinary(const std::vector<GLubyte>& binary, GLenum binary_format)
18123 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18133 glw::GLint Utils::program::getAttribLocation(const glw::GLchar* name) const
18136 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18149 void Utils::program::getBinary(std::vector<GLubyte>& binary, GLenum& binary_format) const
18152 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18173 GLuint Utils::program::getSubroutineIndex(const glw::GLchar* subroutine_name, glw::GLenum shader_stage) const
18175 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18198 GLint Utils::program::getSubroutineUniformLocation(const glw::GLchar* uniform_name, glw::GLenum shader_stage) const
18200 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18223 GLint Utils::program::getUniform1i(GLuint location) const
18225 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18241 GLint Utils::program::getUniformLocation(const glw::GLchar* uniform_name) const
18243 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18263 void Utils::program::link() const
18266 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18342 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18392 void Utils::program::uniform(const glw::GLchar* uniform_name, TYPES type, glw::GLuint n_columns, glw::GLuint n_rows,
18393 const void* data) const
18395 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18409 getUniformNdv(gl, n_rows)(location, 1 /* count */, (const GLdouble*)data);
18414 getUniformMatrixNdv(gl, n_columns, n_rows)(location, 1 /* count */, false, (const GLdouble*)data);
18421 getUniformNfv(gl, n_rows)(location, 1 /* count */, (const GLfloat*)data);
18426 getUniformMatrixNfv(gl, n_columns, n_rows)(location, 1 /* count */, false, (const GLfloat*)data);
18431 getUniformNiv(gl, n_rows)(location, 1 /* count */, (const GLint*)data);
18435 getUniformNuiv(gl, n_rows)(location, 1 /* count */, (const GLuint*)data);
18446 void Utils::program::use() const
18448 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18454 void Utils::program::printShaderSource(const shaderSource& source, tcu::MessageBuilder& log)
18471 const GLchar* part = source.m_parts[i].m_code.c_str();
18476 const GLchar* next_line = strchr(part, '\n');
18519 void Utils::texture::bind() const
18521 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18537 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18563 static const GLuint levels = 1;
18565 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18608 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18630 void Utils::texture::get(glw::GLenum format, glw::GLenum type, glw::GLvoid* out_data) const
18632 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18664 const GLuint image_size = width * height * texel_size;
18689 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18713 static const GLuint level = 0;
18715 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18773 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18786 const glw::Functions& gl = m_context.getRenderContext().getFunctions();
18797 const glw::Functions& gl = m_context.getRenderContext().getFunctions();