Home | History | Annotate | Download | only in performance
      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 count performance tests.
     22  *//*--------------------------------------------------------------------*/
     23 
     24 #include "es2pTextureCountTests.hpp"
     25 #include "es2pTextureCases.hpp"
     26 #include "gluStrUtil.hpp"
     27 
     28 #include "deStringUtil.hpp"
     29 
     30 #include "glwEnums.hpp"
     31 
     32 using std::string;
     33 
     34 namespace deqp
     35 {
     36 namespace gles2
     37 {
     38 namespace Performance
     39 {
     40 
     41 TextureCountTests::TextureCountTests (Context& context)
     42 	: TestCaseGroup(context, "count", "Texture Count Performance Tests")
     43 {
     44 }
     45 
     46 TextureCountTests::~TextureCountTests (void)
     47 {
     48 }
     49 
     50 void TextureCountTests::init (void)
     51 {
     52 	static const struct
     53 	{
     54 		const char*	name;
     55 		deUint32	format;
     56 		deUint32	dataType;
     57 	} texFormats[] =
     58 	{
     59 		{ "a8",			GL_ALPHA,			GL_UNSIGNED_BYTE },
     60 		{ "rgb565",		GL_RGB,				GL_UNSIGNED_SHORT_5_6_5 },
     61 		{ "rgb888",		GL_RGB,				GL_UNSIGNED_BYTE },
     62 		{ "rgba8888",	GL_RGBA,			GL_UNSIGNED_BYTE }
     63 	};
     64 	static const int texCounts[] = { 1, 2, 4, 8 };
     65 
     66 	for (int formatNdx = 0; formatNdx < DE_LENGTH_OF_ARRAY(texFormats); formatNdx++)
     67 	{
     68 		for (int cntNdx = 0; cntNdx < DE_LENGTH_OF_ARRAY(texCounts); cntNdx++)
     69 		{
     70 			deUint32	format			= texFormats[formatNdx].format;
     71 			deUint32	dataType		= texFormats[formatNdx].dataType;
     72 			deUint32	wrapS			= GL_CLAMP_TO_EDGE;
     73 			deUint32	wrapT			= GL_CLAMP_TO_EDGE;
     74 			deUint32	minFilter		= GL_NEAREST;
     75 			deUint32	magFilter		= GL_NEAREST;
     76 			int			numTextures		= texCounts[cntNdx];
     77 			string		name			= string(texFormats[formatNdx].name) + "_" + de::toString(numTextures);
     78 			string		description		= string(glu::getTextureFormatName(format)) + ", " + glu::getTypeName(dataType);
     79 
     80 			addChild(new Texture2DRenderCase(m_context, name.c_str(), description.c_str(), format, dataType, wrapS, wrapT, minFilter, magFilter, tcu::Mat3(), numTextures, false /* npot */));
     81 		}
     82 	}
     83 }
     84 
     85 } // Performance
     86 } // gles2
     87 } // deqp
     88