1e5c31af7Sopenharmony_ci/*------------------------------------------------------------------------- 2e5c31af7Sopenharmony_ci * OpenGL Conformance Test Suite 3e5c31af7Sopenharmony_ci * ----------------------------- 4e5c31af7Sopenharmony_ci * 5e5c31af7Sopenharmony_ci * Copyright (c) 2014-2016 The Khronos Group Inc. 6e5c31af7Sopenharmony_ci * 7e5c31af7Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 8e5c31af7Sopenharmony_ci * you may not use this file except in compliance with the License. 9e5c31af7Sopenharmony_ci * You may obtain a copy of the License at 10e5c31af7Sopenharmony_ci * 11e5c31af7Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 12e5c31af7Sopenharmony_ci * 13e5c31af7Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 14e5c31af7Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 15e5c31af7Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16e5c31af7Sopenharmony_ci * See the License for the specific language governing permissions and 17e5c31af7Sopenharmony_ci * limitations under the License. 18e5c31af7Sopenharmony_ci * 19e5c31af7Sopenharmony_ci */ /*! 20e5c31af7Sopenharmony_ci * \file 21e5c31af7Sopenharmony_ci * \brief 22e5c31af7Sopenharmony_ci */ /*-------------------------------------------------------------------*/ 23e5c31af7Sopenharmony_ci 24e5c31af7Sopenharmony_ci/*! 25e5c31af7Sopenharmony_ci * \file glcTextureBufferTests.cpp 26e5c31af7Sopenharmony_ci * \brief Base test group for texture buffer tests 27e5c31af7Sopenharmony_ci */ /*-------------------------------------------------------------------*/ 28e5c31af7Sopenharmony_ci 29e5c31af7Sopenharmony_ci#include "esextcTextureBufferTests.hpp" 30e5c31af7Sopenharmony_ci#include "esextcTextureBufferActiveUniformValidation.hpp" 31e5c31af7Sopenharmony_ci#include "esextcTextureBufferAtomicFunctions.hpp" 32e5c31af7Sopenharmony_ci#include "esextcTextureBufferBufferParameters.hpp" 33e5c31af7Sopenharmony_ci#include "esextcTextureBufferErrors.hpp" 34e5c31af7Sopenharmony_ci#include "esextcTextureBufferMAXSizeValidation.hpp" 35e5c31af7Sopenharmony_ci#include "esextcTextureBufferOperations.hpp" 36e5c31af7Sopenharmony_ci#include "esextcTextureBufferParamValueIntToFloatConversion.hpp" 37e5c31af7Sopenharmony_ci#include "esextcTextureBufferParameters.hpp" 38e5c31af7Sopenharmony_ci#include "esextcTextureBufferPrecision.hpp" 39e5c31af7Sopenharmony_ci#include "esextcTextureBufferTextureBufferRange.hpp" 40e5c31af7Sopenharmony_ci 41e5c31af7Sopenharmony_cinamespace glcts 42e5c31af7Sopenharmony_ci{ 43e5c31af7Sopenharmony_ci 44e5c31af7Sopenharmony_ci/** Constructor 45e5c31af7Sopenharmony_ci * 46e5c31af7Sopenharmony_ci * @param context Test context 47e5c31af7Sopenharmony_ci * @param glslVersion GLSL version 48e5c31af7Sopenharmony_ci **/ 49e5c31af7Sopenharmony_ciTextureBufferTests::TextureBufferTests(glcts::Context& context, const ExtParameters& extParams) 50e5c31af7Sopenharmony_ci : TestCaseGroupBase(context, extParams, "texture_buffer", "Texture Buffer Tests") 51e5c31af7Sopenharmony_ci{ 52e5c31af7Sopenharmony_ci /* No implementation needed */ 53e5c31af7Sopenharmony_ci} 54e5c31af7Sopenharmony_ci 55e5c31af7Sopenharmony_ci/** Initializes test cases for texture buffer tests 56e5c31af7Sopenharmony_ci **/ 57e5c31af7Sopenharmony_civoid TextureBufferTests::init(void) 58e5c31af7Sopenharmony_ci{ 59e5c31af7Sopenharmony_ci /* Initialize base class */ 60e5c31af7Sopenharmony_ci TestCaseGroupBase::init(); 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci /* Texture Buffer Operations (Test 1) */ 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ci /* Case 1 - via buffer object loads*/ 65e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaBufferObjectLoad(m_context, m_extParams, 66e5c31af7Sopenharmony_ci "texture_buffer_operations_buffer_load", "Test 1.1")); 67e5c31af7Sopenharmony_ci /* Case 2 - via direct CPU writes*/ 68e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaCPUWrites(m_context, m_extParams, "texture_buffer_operations_cpu_writes", 69e5c31af7Sopenharmony_ci "Test 1.2")); 70e5c31af7Sopenharmony_ci /* Case 3 - via framebuffer readbacks to pixel buffer objects*/ 71e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaFrambufferReadBack( 72e5c31af7Sopenharmony_ci m_context, m_extParams, "texture_buffer_operations_framebuffer_readback", "Test 1.3")); 73e5c31af7Sopenharmony_ci /* Case 4 - via transform feedback*/ 74e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaTransformFeedback( 75e5c31af7Sopenharmony_ci m_context, m_extParams, "texture_buffer_operations_transform_feedback", "Test 1.4")); 76e5c31af7Sopenharmony_ci /* Case 5 - via image store*/ 77e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaImageStore(m_context, m_extParams, "texture_buffer_operations_image_store", 78e5c31af7Sopenharmony_ci "Test 1.5")); 79e5c31af7Sopenharmony_ci /* Case 6 - via ssbo writes*/ 80e5c31af7Sopenharmony_ci addChild(new TextureBufferOperationsViaSSBOWrites(m_context, m_extParams, "texture_buffer_operations_ssbo_writes", 81e5c31af7Sopenharmony_ci "Test 1.6")); 82e5c31af7Sopenharmony_ci 83e5c31af7Sopenharmony_ci /* Texture Buffer Max Size (Test 2)*/ 84e5c31af7Sopenharmony_ci addChild(new TextureBufferMAXSizeValidation(m_context, m_extParams, "texture_buffer_max_size", "Test 2")); 85e5c31af7Sopenharmony_ci 86e5c31af7Sopenharmony_ci /* Texture Buffer Range (Test 3)*/ 87e5c31af7Sopenharmony_ci addChild( 88e5c31af7Sopenharmony_ci new TextureBufferTextureBufferRange(m_context, m_extParams, "texture_buffer_texture_buffer_range", "Test 3")); 89e5c31af7Sopenharmony_ci 90e5c31af7Sopenharmony_ci /* Texture Buffer - Parameter Value from Integer To Float Conversion (Test 4)*/ 91e5c31af7Sopenharmony_ci addChild(new TextureBufferParamValueIntToFloatConversion(m_context, m_extParams, "texture_buffer_conv_int_to_float", 92e5c31af7Sopenharmony_ci "Test 4")); 93e5c31af7Sopenharmony_ci 94e5c31af7Sopenharmony_ci /* Texture Buffer Atomic Functions (Test 5) */ 95e5c31af7Sopenharmony_ci addChild(new TextureBufferAtomicFunctions(m_context, m_extParams, "texture_buffer_atomic_functions", "Test 5")); 96e5c31af7Sopenharmony_ci 97e5c31af7Sopenharmony_ci /* Texture Buffer Parameters (Test 6) */ 98e5c31af7Sopenharmony_ci addChild(new TextureBufferParameters(m_context, m_extParams, "texture_buffer_parameters", "Test 6")); 99e5c31af7Sopenharmony_ci 100e5c31af7Sopenharmony_ci /* Texture Buffer Errors (Test 7) */ 101e5c31af7Sopenharmony_ci addChild(new TextureBufferErrors(m_context, m_extParams, "texture_buffer_errors", "Test 7")); 102e5c31af7Sopenharmony_ci 103e5c31af7Sopenharmony_ci /* Texture Buffer - Active Uniform Information Validation (Test 8)*/ 104e5c31af7Sopenharmony_ci /* Vertex/Fragment Shader */ 105e5c31af7Sopenharmony_ci addChild(new TextureBufferActiveUniformValidationVSFS( 106e5c31af7Sopenharmony_ci m_context, m_extParams, "texture_buffer_active_uniform_validation_fragment_shader", "Test 8.1")); 107e5c31af7Sopenharmony_ci /* Compute Shader */ 108e5c31af7Sopenharmony_ci addChild(new TextureBufferActiveUniformValidationCS( 109e5c31af7Sopenharmony_ci m_context, m_extParams, "texture_buffer_active_uniform_validation_compute_shader", "Test 8.2")); 110e5c31af7Sopenharmony_ci 111e5c31af7Sopenharmony_ci /* Texture Buffer Buffer Parameters (Test 9) */ 112e5c31af7Sopenharmony_ci addChild(new TextureBufferBufferParameters(m_context, m_extParams, "texture_buffer_buffer_parameters", "Test 9")); 113e5c31af7Sopenharmony_ci 114e5c31af7Sopenharmony_ci /* Texture Buffer Precision (Test 10) */ 115e5c31af7Sopenharmony_ci addChild(new TextureBufferPrecision(m_context, m_extParams, "texture_buffer_precision", "Test 10")); 116e5c31af7Sopenharmony_ci} 117e5c31af7Sopenharmony_ci 118e5c31af7Sopenharmony_ci} // namespace glcts 119