1 #ifndef _GLCPARALLELSHADERCOMPILETESTS_HPP 2 #define _GLCPARALLELSHADERCOMPILETESTS_HPP 3 /*------------------------------------------------------------------------- 4 * OpenGL Conformance Test Suite 5 * ----------------------------- 6 * 7 * Copyright (c) 2016-2017 The Khronos Group Inc. 8 * 9 * Licensed under the Apache License, Version 2.0 (the "License"); 10 * you may not use this file except in compliance with the License. 11 * You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, software 16 * distributed under the License is distributed on an "AS IS" BASIS, 17 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18 * See the License for the specific language governing permissions and 19 * limitations under the License. 20 * 21 */ /*! 22 * \file 23 * \brief 24 */ /*-------------------------------------------------------------------*/ 25 26 /** 27 */ /*! 28 * \file glcParallelShaderCompileTests.hpp 29 * \brief Conformance tests for the GL_KHR_parallel_shader_compile functionality. 30 */ /*-------------------------------------------------------------------*/ 31 #include "glcTestCase.hpp" 32 #include "glwDefs.hpp" 33 #include "tcuDefs.hpp" 34 #include <vector> 35 36 namespace glcts 37 { 38 39 /** Test verifies if GetBooleanv, GetIntegerv, GetInteger64v, GetFloatv, and GetDoublev 40 * queries for MAX_SHADER_COMPILER_THREADS_KHR <pname> returns the same value. 41 **/ 42 class SimpleQueriesTest : public deqp::TestCase 43 { 44 public: 45 /* Public methods */ 46 SimpleQueriesTest(deqp::Context& context); 47 48 tcu::TestNode::IterateResult iterate(); 49 50 private: 51 /* Private methods */ 52 /* Private members */ 53 }; 54 55 /** Test verifies if MaxShaderCompilerThreadsKHR function works as expected 56 **/ 57 class MaxShaderCompileThreadsTest : public deqp::TestCase 58 { 59 public: 60 /* Public methods */ 61 MaxShaderCompileThreadsTest(deqp::Context& context); 62 63 tcu::TestNode::IterateResult iterate(); 64 65 private: 66 /* Private methods */ 67 /* Private members */ 68 }; 69 70 /** Test verifies if GetShaderiv and GetProgramiv queries returns value as expected 71 * for COMPLETION_STATUS <pname> and non parallel compilation. 72 **/ 73 class CompilationCompletionNonParallelTest : public deqp::TestCase 74 { 75 public: 76 /* Public methods */ 77 CompilationCompletionNonParallelTest(deqp::Context& context); 78 79 tcu::TestNode::IterateResult iterate(); 80 81 private: 82 /* Private methods */ 83 /* Private members */ 84 }; 85 86 /** Test verifies if GetShaderiv and GetProgramiv queries returns value as expected 87 * for COMPLETION_STATUS <pname> and parallel compilation. 88 **/ 89 class CompilationCompletionParallelTest : public deqp::TestCase 90 { 91 public: 92 /* Public methods */ 93 CompilationCompletionParallelTest(deqp::Context& context); 94 95 tcu::TestNode::IterateResult iterate(); 96 97 private: 98 /* Private methods */ 99 /* Private members */ 100 }; 101 102 /** Test group which encapsulates all sparse buffer conformance tests */ 103 class ParallelShaderCompileTests : public deqp::TestCaseGroup 104 { 105 public: 106 /* Public methods */ 107 ParallelShaderCompileTests(deqp::Context& context); 108 109 void init(); 110 111 private: 112 ParallelShaderCompileTests(const ParallelShaderCompileTests& other); 113 ParallelShaderCompileTests& operator=(const ParallelShaderCompileTests& other); 114 }; 115 116 } /* glcts namespace */ 117 118 #endif // _GLCPARALLELSHADERCOMPILETESTS_HPP 119