xref: /aosp_15_r20/external/deqp/modules/gles2/performance/es2pTextureFormatTests.cpp (revision 35238bce31c2a825756842865a792f8cf7f89930)
1 /*-------------------------------------------------------------------------
2  * drawElements Quality Program OpenGL ES 2.0 Module
3  * -------------------------------------------------
4  *
5  * Copyright 2014 The Android Open Source Project
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  *//*!
20  * \file
21  * \brief Texture format performance tests.
22  *//*--------------------------------------------------------------------*/
23 
24 #include "es2pTextureFormatTests.hpp"
25 #include "es2pTextureCases.hpp"
26 #include "gluStrUtil.hpp"
27 
28 #include "glwEnums.hpp"
29 
30 using std::string;
31 
32 namespace deqp
33 {
34 namespace gles2
35 {
36 namespace Performance
37 {
38 
TextureFormatTests(Context & context)39 TextureFormatTests::TextureFormatTests(Context &context)
40     : TestCaseGroup(context, "format", "Texture Format Performance Tests")
41 {
42 }
43 
~TextureFormatTests(void)44 TextureFormatTests::~TextureFormatTests(void)
45 {
46 }
47 
init(void)48 void TextureFormatTests::init(void)
49 {
50     static const struct
51     {
52         const char *name;
53         uint32_t format;
54         uint32_t dataType;
55     } texFormats[] = {{"a8", GL_ALPHA, GL_UNSIGNED_BYTE},
56                       {"l8", GL_LUMINANCE, GL_UNSIGNED_BYTE},
57                       {"la88", GL_LUMINANCE_ALPHA, GL_UNSIGNED_BYTE},
58                       {"rgb565", GL_RGB, GL_UNSIGNED_SHORT_5_6_5},
59                       {"rgba4444", GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4},
60                       {"rgba5551", GL_RGBA, GL_UNSIGNED_SHORT_5_5_5_1},
61                       {"rgb888", GL_RGB, GL_UNSIGNED_BYTE},
62                       {"rgba8888", GL_RGBA, GL_UNSIGNED_BYTE}};
63 
64     for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(texFormats); formatNdx++)
65     {
66         uint32_t format        = texFormats[formatNdx].format;
67         uint32_t dataType      = texFormats[formatNdx].dataType;
68         string nameBase        = texFormats[formatNdx].name;
69         uint32_t wrapS         = GL_CLAMP_TO_EDGE;
70         uint32_t wrapT         = GL_CLAMP_TO_EDGE;
71         uint32_t minFilter     = GL_NEAREST;
72         uint32_t magFilter     = GL_NEAREST;
73         int numTextures        = 1;
74         string descriptionBase = string(glu::getTextureFormatName(format)) + ", " + glu::getTypeName(dataType);
75 
76         addChild(new Texture2DRenderCase(m_context, nameBase.c_str(), descriptionBase.c_str(), format, dataType, wrapS,
77                                          wrapT, minFilter, magFilter, tcu::Mat3(), numTextures, false /* npot */));
78     }
79 }
80 
81 } // namespace Performance
82 } // namespace gles2
83 } // namespace deqp
84