Home | History | Annotate | Download | only in functional

Lines Matching refs:m_context

1594 	checkTessellationSupport(m_context);
1597 checkGPUShader5Support(m_context);
1599 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
1705 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
1706 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
1707 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
1708 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
1709 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
1724 const RenderContext& renderCtx = m_context.getRenderContext();
1902 checkTessellationSupport(m_context);
1903 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
1957 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
1958 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
1959 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
1960 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
1961 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
2037 const RenderContext& renderCtx = m_context.getRenderContext();
2056 const TFHandler tfHandler (m_context.getRenderContext(), maxNumVertices);
2141 checkTessellationSupport(m_context);
2142 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
2182 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
2183 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2184 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
2185 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2186 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
2226 const RenderContext& renderCtx = m_context.getRenderContext();
2239 const TFHandler tfHandler (m_context.getRenderContext(), maxNumVertices);
2314 checkTessellationSupport(m_context);
2315 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
2350 sources << glu::TessellationControlSource(specializeShader(m_context, tessellationControlTemplate.c_str()));
2352 m_program = SharedPtr<const ShaderProgram>(new glu::ShaderProgram(m_context.getRenderContext(), sources));
2379 const RenderContext& renderCtx = m_context.getRenderContext();
2443 glu::draw(m_context.getRenderContext(), programGL, DE_LENGTH_OF_ARRAY(attrBindings), &attrBindings[0],
2478 checkGPUShader5Support(m_context);
2542 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2543 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2544 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()));
2628 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2629 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2630 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()));
2702 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2703 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2704 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()));
2735 checkTessellationSupport(m_context);
2736 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
2776 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
2777 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2778 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
2779 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2780 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
2795 const RenderContext& renderCtx = m_context.getRenderContext();
2922 checkTessellationSupport(m_context);
2923 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
2986 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
2987 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
2988 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
2989 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
2990 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
3005 const RenderContext& renderCtx = m_context.getRenderContext();
3034 glu::draw(m_context.getRenderContext(), programGL, DE_LENGTH_OF_ARRAY(attrBindings), &attrBindings[0],
3154 checkTessellationSupport(m_context);
3155 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
3242 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
3243 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
3244 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
3245 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
3246 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
3261 const RenderContext& renderCtx = m_context.getRenderContext();
3295 glu::draw(m_context.getRenderContext(), programGL, DE_LENGTH_OF_ARRAY(attrBindings), &attrBindings[0],
3363 checkTessellationSupport(m_context);
3364 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
3443 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
3444 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
3445 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
3446 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
3447 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
3462 const RenderContext& renderCtx = m_context.getRenderContext();
3485 glu::draw(m_context.getRenderContext(), programGL, DE_LENGTH_OF_ARRAY(attrBindings), &attrBindings[0],
3629 checkTessellationSupport(m_context);
3630 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
3697 SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
3698 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
3699 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
3700 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
3701 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
3731 const RenderContext& renderCtx = m_context.getRenderContext();
3751 const TFHandler transformFeedback (m_context.getRenderContext(), 2*maxNumPrimitives*numVerticesPerPrimitive(primitiveTypeGL));
3924 checkTessellationSupport(m_context);
3925 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
3989 SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
3990 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
3991 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
3992 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
3993 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
4023 const RenderContext& renderCtx = m_context.getRenderContext();
4043 const TFHandler tfHandler(m_context.getRenderContext(), maxNumVerticesInDrawCall);
4207 m_context);
4208 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
4284 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
4285 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
4286 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
4287 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
4288 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
4307 const RenderContext& renderCtx = m_context.getRenderContext();
4323 const TFHandler tfHandler(m_context.getRenderContext(), maxNumVerticesInDrawCall);
4492 checkTessellationSupport(m_context);
4493 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
4546 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
4547 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
4548 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
4549 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
4550 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
4569 const RenderContext& renderCtx = m_context.getRenderContext();
4590 const TFHandler tfHandler(m_context.getRenderContext(), maxNumVerticesInDrawCall);
4984 checkTessellationSupport(m_context);
4985 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
5043 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
5044 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
5045 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
5046 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
5047 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
5078 const RenderContext& renderCtx = m_context.getRenderContext();
5096 const TFHandler tfHandler(m_context.getRenderContext(), maxNumVerticesInDrawCall);
5236 checkTessellationSupport(m_context);
5237 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
5295 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
5296 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
5297 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
5298 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
5299 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
5376 const RenderContext& renderCtx = m_context.getRenderContext();
5412 const TFHandler tfHandler (m_context.getRenderContext(), numVerticesInDrawCall);
5958 checkTessellationSupport(m_context);
5959 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
5971 : m_vertexIOArraySize == VERTEX_IO_ARRAY_SIZE_EXPLICIT_QUERY ? de::toString(m_context.getContextInfo().getInt(GL_MAX_PATCH_VERTICES))
6065 : m_tessControlOutArraySize == TESS_CONTROL_OUT_ARRAY_SIZE_QUERY ? de::toString(m_context.getContextInfo().getInt(GL_MAX_PATCH_VERTICES))
6196 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
6197 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
6198 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
6199 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
6200 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))
6219 const RenderContext& renderCtx = m_context.getRenderContext();
6340 checkTessellationSupport(m_context);
6341 checkRenderTargetSize(m_context.getRenderTarget(), RENDER_SIZE);
6412 m_program = SharedPtr<const ShaderProgram>(new ShaderProgram(m_context.getRenderContext(), glu::ProgramSources()
6413 << glu::VertexSource (specializeShader(m_context, vertexShaderTemplate.c_str()))
6414 << glu::TessellationControlSource (specializeShader(m_context, tessellationControlTemplate.c_str()))
6415 << glu::TessellationEvaluationSource (specializeShader(m_context, tessellationEvaluationTemplate.c_str()))
6416 << glu::FragmentSource (specializeShader(m_context, fragmentShaderTemplate.c_str()))));
6431 const RenderContext& renderCtx = m_context.getRenderContext();
6493 checkTessellationSupport(m_context);
6495 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6534 checkTessellationSupport(m_context);
6536 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6592 checkTessellationSupport(m_context);
6594 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6641 checkTessellationSupport(m_context);
6643 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6744 checkTessellationSupport(m_context);
6746 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
6747 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
6748 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
6749 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource("layout(vertices=4) out").c_str()))
6750 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource("layout(triangles) in").c_str())));
6757 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6784 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6798 checkTessellationSupport(m_context);
6805 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
6806 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
6807 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
6808 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource("layout(vertices=6) out").c_str()))
6809 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource(s_modes[ndx].layout).c_str())));
6838 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6853 checkTessellationSupport(m_context);
6860 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
6861 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
6862 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
6863 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource("layout(vertices=6) out").c_str()))
6864 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource(s_modes[ndx].layout).c_str())));
6893 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6907 checkTessellationSupport(m_context);
6914 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
6915 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
6916 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
6917 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource("layout(vertices=6) out").c_str()))
6918 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource(s_modes[ndx].layout).c_str())));
6947 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
6960 checkTessellationSupport(m_context);
6967 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
6968 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
6969 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
6970 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource("layout(vertices=6) out").c_str()))
6971 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource(s_modes[ndx].layout).c_str())));
7008 checkTessellationSupport(m_context);
7014 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
7015 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
7016 << glu::VertexSource(specializeShader(m_context, getVertexSource().c_str()))
7017 << glu::FragmentSource(specializeShader(m_context, getFragmentSource().c_str()))
7018 << glu::TessellationControlSource(specializeShader(m_context, getTessCtrlSource().c_str()))
7019 << glu::TessellationEvaluationSource(specializeShader(m_context, getTessEvalSource().c_str())));
7164 checkTessellationSupport(m_context);
7187 glu::CallLogWrapper gl (m_context.getRenderContext().getFunctions(), m_testCtx.getLog());
7188 glu::ShaderProgram program (m_context.getRenderContext(), glu::ProgramSources()
7189 << glu::TessellationControlSource(specializeShader(m_context, s_controlSource))
7278 queryGroup->addChild(new LimitQueryCase(m_context, "max_patch_vertices", "Test MAX_PATCH_VERTICES", GL_MAX_PATCH_VERTICES, 32));
7279 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_gen_level", "Test MAX_TESS_GEN_LEVEL", GL_MAX_TESS_GEN_LEVEL, 64));
7280 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_uniform_components", "Test MAX_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS, 1024));
7281 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_uniform_components", "Test MAX_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS, 1024));
7282 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_texture_image_units", "Test MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS, 16));
7283 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_texture_image_units", "Test MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS", GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS, 16));
7284 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_output_components", "Test MAX_TESS_CONTROL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS, 64));
7285 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_patch_components", "Test MAX_TESS_PATCH_COMPONENTS", GL_MAX_TESS_PATCH_COMPONENTS, 120));
7286 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_total_output_components", "Test MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS", GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS, 2048));
7287 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_output_components", "Test MAX_TESS_EVALUATION_OUTPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS, 64));
7288 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_uniform_blocks", "Test MAX_TESS_CONTROL_UNIFORM_BLOCKS", GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS, 12));
7289 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_uniform_blocks", "Test MAX_TESS_EVALUATION_UNIFORM_BLOCKS", GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS, 12));
7290 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_input_components", "Test MAX_TESS_CONTROL_INPUT_COMPONENTS", GL_MAX_TESS_CONTROL_INPUT_COMPONENTS, 64));
7291 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_input_components", "Test MAX_TESS_EVALUATION_INPUT_COMPONENTS", GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS, 64));
7292 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_atomic_counter_buffers", "Test MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS", GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS, 0));
7293 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_atomic_counter_buffers", "Test MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS", GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS, 0));
7294 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_atomic_counters", "Test MAX_TESS_CONTROL_ATOMIC_COUNTERS", GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS, 0));
7295 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_atomic_counters", "Test MAX_TESS_EVALUATION_ATOMIC_COUNTERS", GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS, 0));
7296 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_image_uniforms", "Test MAX_TESS_CONTROL_IMAGE_UNIFORMS", GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS, 0));
7297 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_image_uniforms", "Test MAX_TESS_EVALUATION_IMAGE_UNIFORMS", GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS, 0));
7298 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_control_shader_storage_blocks", "Test MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS", GL_MAX_TESS_CONTROL_SHADER_STORAGE_BLOCKS, 0));
7299 queryGroup->addChild(new LimitQueryCase(m_context, "max_tess_evaluation_shader_storage_blocks", "Test MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS", GL_MAX_TESS_EVALUATION_SHADER_STORAGE_BLOCKS, 0));
7302 queryGroup->addChild(new LimitQueryCase(m_context, "max_uniform_buffer_bindings", "Test MAX_UNIFORM_BUFFER_BINDINGS", GL_MAX_UNIFORM_BUFFER_BINDINGS, 72));
7303 queryGroup->addChild(new LimitQueryCase(m_context, "max_combined_uniform_blocks", "Test MAX_COMBINED_UNIFORM_BLOCKS", GL_MAX_COMBINED_UNIFORM_BLOCKS, 60));
7304 queryGroup->addChild(new LimitQueryCase(m_context, "max_combined_texture_image_units", "Test MAX_COMBINED_TEXTURE_IMAGE_UNITS", GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, 96));
7307 queryGroup->addChild(new CombinedUniformLimitCase(m_context, "max_combined_tess_control_uniform_components", "Test MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS, GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS, GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS));
7308 queryGroup->addChild(new CombinedUniformLimitCase(m_context, "max_combined_tess_evaluation_uniform_components", "Test MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS", GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS, GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS, GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS));
7311 queryGroup->addChild(new PrimitiveRestartForPatchesSupportedCase(m_context, "primitive_restart_for_patches_supported", "Test PRIMITIVE_RESTART_FOR_PATCHES_SUPPORTED"));
7314 queryGroup->addChild(new PatchVerticesStateCase(m_context, "patch_vertices", "Test PATCH_VERTICES"));
7317 queryGroup->addChild(new TessControlOutputVerticesCase (m_context, "tess_control_output_vertices", "Test TESS_CONTROL_OUTPUT_VERTICES"));
7318 queryGroup->addChild(new TessGenModeQueryCase (m_context, "tess_gen_mode", "Test TESS_GEN_MODE"));
7319 queryGroup->addChild(new TessGenSpacingQueryCase (m_context, "tess_gen_spacing", "Test TESS_GEN_SPACING"));
7320 queryGroup->addChild(new TessGenVertexOrderQueryCase (m_context, "tess_gen_vertex_order", "Test TESS_GEN_VERTEX_ORDER"));
7321 queryGroup->addChild(new TessGenPointModeQueryCase (m_context, "tess_gen_point_mode", "Test TESS_GEN_POINT_MODE"));
7324 queryGroup->addChild(new ReferencedByTessellationQueryCase (m_context, "referenced_by_tess_control_shader", "Test REFERENCED_BY_TESS_CONTROL_SHADER", true));
7325 queryGroup->addChild(new ReferencedByTessellationQueryCase (m_context, "referenced_by_tess_evaluation_shader", "Test REFERENCED_BY_TESS_EVALUATION_SHADER", false));
7326 queryGroup->addChild(new IsPerPatchQueryCase (m_context, "is_per_patch", "Test IS_PER_PATCH"));
7330 TestCaseGroup* const tessCoordGroup = new TestCaseGroup(m_context, "tesscoord", "Get tessellation coordinates with transform feedback and validate them");
7338 tessCoordGroup->addChild(new TessCoordCase(m_context,
7345 TestCaseGroup* const windingGroup = new TestCaseGroup(m_context, "winding", "Test the cw and ccw input layout qualifiers");
7357 windingGroup->addChild(new WindingCase(m_context, (string() + getTessPrimitiveTypeShaderName(primitiveType) + "_" + getWindingShaderName(winding)).c_str(), "", primitiveType, winding));
7363 TestCaseGroup* const shaderInputOutputGroup = new TestCaseGroup(m_context, "shader_input_output", "Test tessellation control and evaluation shader inputs and outputs");
7384 shaderInputOutputGroup->addChild(new PatchVertexCountCase(m_context, caseName.c_str(), "Test input and output patch vertex counts", inSize, outSize,
7394 shaderInputOutputGroup->addChild(new PerPatchDataCase(m_context, caseName, PerPatchDataCase::getCaseTypeDescription(caseType), caseType,
7403 shaderInputOutputGroup->addChild(new GLPositionCase(m_context, caseName, "", caseType, "data/tessellation/gl_position_ref.png"));
7406 shaderInputOutputGroup->addChild(new BarrierCase(m_context, "barrier", "Basic barrier usage", "data/tessellation/barrier_ref.png"));
7410 TestCaseGroup* const miscDrawGroup = new TestCaseGroup(m_context, "misc_draw", "Miscellaneous draw-result-verifying cases");
7425 miscDrawGroup->addChild(new BasicTriangleFillCoverCase(m_context,
7444 miscDrawGroup->addChild(new BasicTriangleFillNonOverlapCase(m_context,
7455 miscDrawGroup->addChild(new IsolinesRenderCase(m_context,
7463 TestCaseGroup* const commonEdgeGroup = new TestCaseGroup(m_context, "common_edge", "Draw multiple adjacent shapes and check that no cracks appear between them");
7484 commonEdgeGroup->addChild(new CommonEdgeCase(m_context, caseName.c_str(), "", primitiveType, spacing, caseType));
7491 TestCaseGroup* const fractionalSpacingModeGroup = new TestCaseGroup(m_context, "fractional_spacing", "Test fractional spacing modes");
7494 fractionalSpacingModeGroup->addChild(new FractionalSpacingModeCase(m_context, "odd", "", SPACINGMODE_FRACTIONAL_ODD));
7495 fractionalSpacingModeGroup->addChild(new FractionalSpacingModeCase(m_context, "even", "", SPACINGMODE_FRACTIONAL_EVEN));
7499 TestCaseGroup* const primitiveDiscardGroup = new TestCaseGroup(m_context, "primitive_discard", "Test primitive discard with relevant outer tessellation level <= 0.0");
7515 primitiveDiscardGroup->addChild(new PrimitiveDiscardCase(m_context, (string() + getTessPrimitiveTypeShaderName(primitiveType)
7527 TestCaseGroup* const invarianceGroup = new TestCaseGroup(m_context, "invariance", "Test tessellation invariance rules");
7529 TestCaseGroup* const invariantPrimitiveSetGroup = new TestCaseGroup(m_context, "primitive_set", "Test invariance rule #1");
7530 TestCaseGroup* const invariantOuterEdgeGroup = new TestCaseGroup(m_context, "outer_edge_division", "Test invariance rule #2");
7531 TestCaseGroup* const symmetricOuterEdgeGroup = new TestCaseGroup(m_context, "outer_edge_symmetry", "Test invariance rule #3");
7532 TestCaseGroup* const outerEdgeVertexSetIndexIndependenceGroup = new TestCaseGroup(m_context, "outer_edge_index_independence", "Test invariance rule #4");
7533 TestCaseGroup* const invariantTriangleSetGroup = new TestCaseGroup(m_context, "triangle_set", "Test invariance rule #5");
7534 TestCaseGroup* const invariantInnerTriangleSetGroup = new TestCaseGroup(m_context, "inner_triangle_set", "Test invariance rule #6");
7535 TestCaseGroup* const invariantOuterTriangleSetGroup = new TestCaseGroup(m_context, "outer_triangle_set", "Test invariance rule #7");
7536 TestCaseGroup* const tessCoordComponentRangeGroup = new TestCaseGroup(m_context, "tess_coord_component_range", "Test invariance rule #8, first part");
7537 TestCaseGroup* const oneMinusTessCoordComponentGroup = new TestCaseGroup(m_context, "one_minus_tess_coord_component", "Test invariance rule #8, second part");
7563 invariantOuterEdgeGroup->addChild (new InvariantOuterEdgeCase (m_context, primSpacName.c_str(), "", primitiveType, spacing));
7564 invariantTriangleSetGroup->addChild (new InvariantTriangleSetCase (m_context, primSpacName.c_str(), "", primitiveType, spacing));
7565 invariantInnerTriangleSetGroup->addChild(new InvariantInnerTriangleSetCase (m_context, primSpacName.c_str(), "", primitiveType, spacing));
7566 invariantOuterTriangleSetGroup->addChild(new InvariantOuterTriangleSetCase (m_context, primSpacName.c_str(), "", primitiveType, spacing));
7579 invariantPrimitiveSetGroup->addChild (new InvariantPrimitiveSetCase (m_context, primSpacWindPointName.c_str(), "", primitiveType, spacing, winding, usePointMode));
7580 symmetricOuterEdgeGroup->addChild (new SymmetricOuterEdgeCase (m_context, primSpacWindPointName.c_str(), "", primitiveType, spacing, winding, usePointMode));
7581 tessCoordComponentRangeGroup->addChild (new TessCoordComponentRangeCase (m_context, primSpacWindPointName.c_str(), "", primitiveType, spacing, winding, usePointMode));
7582 oneMinusTessCoordComponentGroup->addChild (new OneMinusTessCoordComponentCase (m_context, primSpacWindPointName.c_str(), "", primitiveType, spacing, winding, usePointMode));
7585 outerEdgeVertexSetIndexIndependenceGroup->addChild(new OuterEdgeVertexSetIndexIndependenceCase(m_context, primSpacWindPointName.c_str(), "",
7609 TestCaseGroup* const userDefinedIOGroup = new TestCaseGroup(m_context, "user_defined_io", "Test non-built-in per-patch and per-vertex inputs and outputs");
7614 TestCaseGroup* const ioTypeGroup = new TestCaseGroup(m_context, ioCases[ndx].name, ioCases[ndx].description);
7620 TestCaseGroup* const vertexArraySizeGroup = new TestCaseGroup(m_context,
7634 vertexArraySizeGroup->addChild(new UserDefinedIOCase(m_context, getTessPrimitiveTypeShaderName(primitiveType), "", primitiveType, ioCases[ndx].ioType, vertexArraySize, UserDefinedIOCase::TESS_CONTROL_OUT_ARRAY_SIZE_IMPLICIT,
7644 vertexArraySizeGroup->addChild(new UserDefinedIOCase(m_context, (string(getTessPrimitiveTypeShaderName(primitiveType)) + "_explicit_tcs_out_size").c_str(), "", primitiveType, ioCases[ndx].ioType, vertexArraySize, UserDefinedIOCase::TESS_CONTROL_OUT_ARRAY_SIZE_LAYOUT,
7652 de::MovePtr<TestCaseGroup> negativeGroup (new TestCaseGroup(m_context, "negative", "Negative cases"));
7655 de::MovePtr<TestCaseGroup> es31Group (new TestCaseGroup(m_context, "es31", "GLSL ES 3.1 Negative cases"));
7656 gls::ShaderLibrary shaderLibrary (m_testCtx, m_context.getRenderContext(), m_context.getContextInfo());
7666 de::MovePtr<TestCaseGroup> es32Group (new TestCaseGroup(m_context, "es32", "GLSL ES 3.2 Negative cases"));
7667 gls::ShaderLibrary shaderLibrary (m_testCtx, m_context.getRenderContext(), m_context.getContextInfo());