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