13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry/*-------------------------------------------------------------------------
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * drawElements Quality Program OpenGL ES 2.0 Module
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * -------------------------------------------------
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Copyright 2014 The Android Open Source Project
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Licensed under the Apache License, Version 2.0 (the "License");
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * you may not use this file except in compliance with the License.
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * You may obtain a copy of the License at
103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *      http://www.apache.org/licenses/LICENSE-2.0
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * Unless required by applicable law or agreed to in writing, software
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * distributed under the License is distributed on an "AS IS" BASIS,
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * See the License for the specific language governing permissions and
173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * limitations under the License.
183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *
193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*!
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \file
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry * \brief State change call performance tests.
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry *//*--------------------------------------------------------------------*/
233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "es2pStateChangeCallTests.hpp"
253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glsStateChangePerfTestCases.hpp"
263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glwFunctions.hpp"
273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#include "glwEnums.hpp"
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace deqp
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace gles2
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
333c827367444ee418f129b2c238299f49d3264554Jarkko Poyrynamespace Performance
343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
363c827367444ee418f129b2c238299f49d3264554Jarkko Poyryusing namespace glw;
373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
383c827367444ee418f129b2c238299f49d3264554Jarkko PoyryStateChangeCallTests::StateChangeCallTests (Context& context)
393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	: TestCaseGroup(context, "state_change_only", "Test cost of state change calls without rendering anything")
403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
433c827367444ee418f129b2c238299f49d3264554Jarkko PoyryStateChangeCallTests::~StateChangeCallTests (void)
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ARG_LIST(...) __VA_ARGS__
483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ADD_ARG_CASE1(NAME, DESCRIPTION, FUNCNAME, TYPE0, ARGS0)\
503c827367444ee418f129b2c238299f49d3264554Jarkko Poyrydo {\
513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	class StateChangeCallTest_ ## NAME : public gls::StateChangeCallPerformanceCase\
523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{\
533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	public:\
543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		StateChangeCallTest_ ## NAME (Context& context, const char* name, const char* description)\
553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			: gls::StateChangeCallPerformanceCase(context.getTestContext(), context.getRenderContext(), name, description)\
563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		virtual void execCalls (const glw::Functions& gl, int iterNdx, int callCount)\
593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE0 args0[] = ARGS0;\
613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			for (int callNdx = 0; callNdx < callCount; callNdx++)\
623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{\
633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const int		baseNdx		= iterNdx*callCount + callNdx;\
643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE0		arg0		= args0[baseNdx%DE_LENGTH_OF_ARRAY(args0)];\
653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				gl.FUNCNAME(arg0);\
663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}\
673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};\
693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateChangeCallTest_ ## NAME (m_context, #NAME, DESCRIPTION));\
703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}while (0);
713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ADD_ARG_CASE2(NAME, DESCRIPTION, FUNCNAME, TYPE0, ARGS0, TYPE1, ARGS1)\
733c827367444ee418f129b2c238299f49d3264554Jarkko Poyrydo {\
743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	class StateChangeCallTest_ ## NAME : public gls::StateChangeCallPerformanceCase\
753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{\
763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	public:\
773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		StateChangeCallTest_ ## NAME (Context& context, const char* name, const char* description)\
783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			: gls::StateChangeCallPerformanceCase(context.getTestContext(), context.getRenderContext(), name, description)\
793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		virtual void execCalls (const glw::Functions& gl, int iterNdx, int callCount)\
823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE0 args0[] = ARGS0;\
843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE1 args1[] = ARGS1;\
853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			for (int callNdx = 0; callNdx < callCount; callNdx++)\
863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{\
873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const int		baseNdx		= iterNdx*callCount + callNdx;\
883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE0		arg0		= args0[baseNdx%DE_LENGTH_OF_ARRAY(args0)];\
893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE1		arg1		= args1[baseNdx%DE_LENGTH_OF_ARRAY(args1)];\
903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				gl.FUNCNAME(arg0, arg1);\
913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}\
923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};\
943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateChangeCallTest_ ## NAME (m_context, #NAME, DESCRIPTION));\
953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}while (0);
963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ADD_ARG_CASE3(NAME, DESCRIPTION, FUNCNAME, TYPE0, ARGS0, TYPE1, ARGS1, TYPE2, ARGS2)\
983c827367444ee418f129b2c238299f49d3264554Jarkko Poyrydo {\
993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	class StateChangeCallTest_ ## NAME : public gls::StateChangeCallPerformanceCase\
1003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{\
1013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	public:\
1023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		StateChangeCallTest_ ## NAME (Context& context, const char* name, const char* description)\
1033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			: gls::StateChangeCallPerformanceCase(context.getTestContext(), context.getRenderContext(), name, description)\
1043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		virtual void execCalls (const glw::Functions& gl, int iterNdx, int callCount)\
1073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE0 args0[] = ARGS0;\
1093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE1 args1[] = ARGS1;\
1103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE2 args2[] = ARGS2;\
1113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			for (int callNdx = 0; callNdx < callCount; callNdx++)\
1123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{\
1133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const int		baseNdx		= iterNdx*callCount + callNdx;\
1143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE0		arg0		= args0[baseNdx%DE_LENGTH_OF_ARRAY(args0)];\
1153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE1		arg1		= args1[baseNdx%DE_LENGTH_OF_ARRAY(args1)];\
1163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE2		arg2		= args2[baseNdx%DE_LENGTH_OF_ARRAY(args2)];\
1173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				gl.FUNCNAME(arg0, arg1, arg2);\
1183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}\
1193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};\
1213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateChangeCallTest_ ## NAME (m_context, #NAME, DESCRIPTION));\
1223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}while (0);
1233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ADD_ARG_CASE4(NAME, DESCRIPTION, FUNCNAME, TYPE0, ARGS0, TYPE1, ARGS1, TYPE2, ARGS2, TYPE3, ARGS3)\
1253c827367444ee418f129b2c238299f49d3264554Jarkko Poyrydo {\
1263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	class StateChangeCallTest_ ## NAME : public gls::StateChangeCallPerformanceCase\
1273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{\
1283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	public:\
1293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		StateChangeCallTest_ ## NAME (Context& context, const char* name, const char* description)\
1303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			: gls::StateChangeCallPerformanceCase(context.getTestContext(), context.getRenderContext(), name, description)\
1313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		virtual void execCalls (const glw::Functions& gl, int iterNdx, int callCount)\
1343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE0 args0[] = ARGS0;\
1363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE1 args1[] = ARGS1;\
1373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE2 args2[] = ARGS2;\
1383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE3 args3[] = ARGS3;\
1393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			for (int callNdx = 0; callNdx < callCount; callNdx++)\
1403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{\
1413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const int		baseNdx		= iterNdx*callCount + callNdx;\
1423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE0		arg0		= args0[baseNdx%DE_LENGTH_OF_ARRAY(args0)];\
1433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE1		arg1		= args1[baseNdx%DE_LENGTH_OF_ARRAY(args1)];\
1443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE2		arg2		= args2[baseNdx%DE_LENGTH_OF_ARRAY(args2)];\
1453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE3		arg3		= args3[baseNdx%DE_LENGTH_OF_ARRAY(args3)];\
1463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				gl.FUNCNAME(arg0, arg1, arg2, arg3);\
1473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}\
1483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};\
1503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateChangeCallTest_ ## NAME (m_context, #NAME, DESCRIPTION));\
1513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}while (0);
1523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry#define ADD_ARG_CASE6(NAME, DESCRIPTION, FUNCNAME, TYPE0, ARGS0, TYPE1, ARGS1, TYPE2, ARGS2, TYPE3, ARGS3, TYPE4, ARGS4, TYPE5, ARGS5)\
1543c827367444ee418f129b2c238299f49d3264554Jarkko Poyrydo {\
1553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	class StateChangeCallTest_ ## NAME : public gls::StateChangeCallPerformanceCase\
1563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	{\
1573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	public:\
1583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		StateChangeCallTest_ ## NAME (Context& context, const char* name, const char* description)\
1593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			: gls::StateChangeCallPerformanceCase(context.getTestContext(), context.getRenderContext(), name, description)\
1603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		virtual void execCalls (const glw::Functions& gl, int iterNdx, int callCount)\
1633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		{\
1643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE0 args0[] = ARGS0;\
1653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE1 args1[] = ARGS1;\
1663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE2 args2[] = ARGS2;\
1673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE3 args3[] = ARGS3;\
1683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE4 args4[] = ARGS4;\
1693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			const TYPE5 args5[] = ARGS5;\
1703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			for (int callNdx = 0; callNdx < callCount; callNdx++)\
1713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			{\
1723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const int		baseNdx		= iterNdx*callCount + callNdx;\
1733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE0		arg0		= args0[baseNdx%DE_LENGTH_OF_ARRAY(args0)];\
1743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE1		arg1		= args1[baseNdx%DE_LENGTH_OF_ARRAY(args1)];\
1753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE2		arg2		= args2[baseNdx%DE_LENGTH_OF_ARRAY(args2)];\
1763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE3		arg3		= args3[baseNdx%DE_LENGTH_OF_ARRAY(args3)];\
1773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE4		arg4		= args4[baseNdx%DE_LENGTH_OF_ARRAY(args4)];\
1783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				const TYPE5		arg5		= args5[baseNdx%DE_LENGTH_OF_ARRAY(args5)];\
1793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry				gl.FUNCNAME(arg0, arg1, arg2, arg3, arg4, arg5);\
1803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			}\
1813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}\
1823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	};\
1833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	addChild(new StateChangeCallTest_ ## NAME (m_context, #NAME, DESCRIPTION));\
1843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}while (0);
1853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
1863c827367444ee418f129b2c238299f49d3264554Jarkko Poyryvoid StateChangeCallTests::init (void)
1873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry{
1883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(enable, "Test cost of glEnable() calls",
1893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		enable,
1903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
1913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
1923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CULL_FACE,
1933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_POLYGON_OFFSET_FILL,
1943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SAMPLE_ALPHA_TO_COVERAGE,
1953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SAMPLE_COVERAGE,
1963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SCISSOR_TEST,
1973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_STENCIL_TEST,
1983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DEPTH_TEST,
1993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BLEND,
2003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DITHER
2013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(disable, "Test cost of glDisable() calls",
2053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		disable,
2063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
2073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CULL_FACE,
2093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_POLYGON_OFFSET_FILL,
2103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SAMPLE_ALPHA_TO_COVERAGE,
2113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SAMPLE_COVERAGE,
2123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SCISSOR_TEST,
2133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_STENCIL_TEST,
2143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DEPTH_TEST,
2153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BLEND,
2163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DITHER
2173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(depth_func, "Test cost of glDepthFunc() calls",
2213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		depthFunc,
2223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
2233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NEVER,
2253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ALWAYS,
2263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LESS,
2273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LEQUAL,
2283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_EQUAL,
2293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GREATER,
2303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GEQUAL,
2313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NOTEQUAL
2323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(depth_mask, "Test cost of glDepthMask() calls",
2363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		depthMask,
2373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
2383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
2403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
2413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(stencil_mask, "Test cost of glStencilMask() calls",
2453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilMask,
2463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
2473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
2493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
2503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(clear_depth, "Test cost of glClearDepth() calls",
2543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		clearDepthf,
2553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
2563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
2583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
2593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f
2603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(clear_stencil, "Test cost of glClearStencil() calls",
2643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		clearStencil,
2653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
2663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
2683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			128,
2693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			28
2703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(line_width, "Test cost of glLineWidth() calls",
2743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		lineWidth,
2753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLfloat,
2763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
2783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
2793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			10.0f
2803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(cull_face, "Test cost of glCullFace() calls",
2843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		cullFace,
2853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
2863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT,
2883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BACK,
2893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT_AND_BACK
2903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
2913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
2923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
2933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(front_face, "Test cost of glFrontFace() calls",
2943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		frontFace,
2953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
2963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
2973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CCW,
2983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CW
2993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(blend_equation, "Test cost of glBlendEquation() calls",
3033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		blendEquation,
3043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
3053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_ADD,
3073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_SUBTRACT,
3083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_REVERSE_SUBTRACT
3093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(enable_vertex_attrib_array, "Test cost of glEnableVertexAttribArray() calls",
3133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		enableVertexAttribArray,
3143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
3153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
3173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
3183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			2,
3193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			3,
3203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			4,
3213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			5,
3223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			6,
3233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7,
3243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(disable_vertex_attrib_array, "Test cost of glDisableVertexAttribArray() calls",
3283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		disableVertexAttribArray,
3293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
3303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
3323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
3333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			2,
3343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			3,
3353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			4,
3363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			5,
3373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			6,
3383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7,
3393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(use_program, "Test cost of glUseProgram() calls. Note: Uses only program 0.",
3433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		useProgram,
3443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
3453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
3473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE1(active_texture, "Test cost of glActiveTexture() calls",
3513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		activeTexture,
3523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
3533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE0,
3553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE1,
3563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE2,
3573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE3,
3583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE4,
3593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE5,
3603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE6,
3613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE7
3623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(depth_range, "Test cost of glDepthRangef() calls",
3663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		depthRangef,
3673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
3683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
3703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
3713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f
3723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
3733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
3743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
3763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
3773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f
3783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(polygon_offset, "Test cost of glPolygonOffset() calls",
3823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		polygonOffset,
3833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLfloat,
3843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
3863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
3873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
3883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			10.0f
3893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
3903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLfloat,
3913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
3923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
3933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
3943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
3953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1000.0f
3963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
3973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
3983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
3993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(sample_coverage, "Test cost of glSampleCoverage() calls",
4003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		sampleCoverage,
4013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
4023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
4043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
4053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
4063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.67f
4073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
4083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
4093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
4113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
4123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
4133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
4143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(blend_func, "Test cost of glBlendFunc() calls",
4163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		blendFunc,
4173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
4203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
4213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
4223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
4233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
4243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
4253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
4263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
4273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
4283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
4293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
4303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
4313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
4323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
4333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
4343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
4373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
4383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
4393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
4403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
4413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
4423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
4433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
4443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
4453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
4463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
4473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
4483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
4493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
4503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
4513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
4523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(blend_equation_separate, "Test cost of glBlendEquationSeparate() calls",
4543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		blendEquationSeparate,
4553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_ADD,
4583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_SUBTRACT,
4593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_REVERSE_SUBTRACT
4603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
4613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_ADD,
4643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_SUBTRACT,
4653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FUNC_REVERSE_SUBTRACT
4663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
4673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
4683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(stencil_mask_separate, "Test cost of glStencilMaskSeparate() calls",
4703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilMaskSeparate,
4713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT,
4743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BACK,
4753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT_AND_BACK
4763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
4773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
4783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
4803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
4813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
4823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
4833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(bind_buffer, "Test cost of glBindBuffer() calls. Note: Uses only buffer 0",
4853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		bindBuffer,
4863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
4873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ELEMENT_ARRAY_BUFFER,
4893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ARRAY_BUFFER
4903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
4913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
4923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
4933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0
4943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
4953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
4963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
4973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(bind_texture, "Test cost of glBindTexture() calls. Note: Uses only texture 0",
4983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		bindTexture,
4993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE_2D,
5023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TEXTURE_CUBE_MAP
5033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
5053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0
5073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
5083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
5093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE2(hint, "Test cost of glHint() calls",
5113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		hint,
5123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GENERATE_MIPMAP_HINT
5153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FASTEST,
5193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NICEST,
5203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DONT_CARE
5213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
5223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
5233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE3(stencil_func, "Test cost of glStencilFunc() calls",
5253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilFunc,
5263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NEVER,
5293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ALWAYS,
5303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LESS,
5313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LEQUAL,
5323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_EQUAL,
5333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GEQUAL,
5343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GREATER,
5353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NOTEQUAL
5363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
5383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
5403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
5413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			255,
5423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			128,
5433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7
5443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
5463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
5483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
5493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			255,
5503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			128,
5513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7,
5523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0xFFFFFFFF
5533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
5543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
5553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE3(stencil_op, "Test cost of glStencilOp() calls",
5573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilOp,
5583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
5613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
5623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
5633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
5643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
5653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
5663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
5673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
5683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
5723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
5733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
5743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
5753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
5763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
5773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
5783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
5793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
5803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
5813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
5833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
5843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
5853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
5863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
5873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
5883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
5893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
5903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
5913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
5923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
5933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(viewport, "Test cost of glViewport() calls",
5943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		viewport,
5953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
5963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
5973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
5983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
5993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
6233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
6243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(scissor, "Test cost of glScissor() calls",
6263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		scissor,
6273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			100,
6533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1145235
6543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
6553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
6563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(stencil_func_separate, "Test cost of glStencilFuncSeparate() calls",
6583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilFuncSeparate,
6593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
6603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT,
6623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BACK,
6633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT_AND_BACK
6643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
6663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NEVER,
6683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ALWAYS,
6693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LESS,
6703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_LEQUAL,
6713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_EQUAL,
6723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GEQUAL,
6733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_GREATER,
6743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_NOTEQUAL
6753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
6773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			255,
6813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			128,
6823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7
6833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
6843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
6853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
6873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
6883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			255,
6893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			128,
6903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7,
6913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0xFFFFFFFF
6923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
6933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
6943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
6953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(stencil_op_separatae, "Test cost of glStencilOpSeparate() calls",
6963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		stencilOpSeparate,
6973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
6983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
6993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT,
7003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BACK,
7013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FRONT_AND_BACK
7023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
7063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
7083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
7093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
7103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
7113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
7123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
7133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
7173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
7193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
7203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
7213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
7223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
7233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
7243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_KEEP,
7283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_REPLACE,
7303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR,
7313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR,
7323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INVERT,
7333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_INCR_WRAP,
7343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DECR_WRAP
7353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
7363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
7373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
7383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(blend_func_separate, "Test cost of glBlendFuncSeparate() calls",
7393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		blendFuncSeparate,
7403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
7443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
7453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
7463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
7473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
7483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
7493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
7503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
7513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
7523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
7533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
7543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
7553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
7563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
7613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
7623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
7633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
7643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
7653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
7663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
7673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
7683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
7693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
7703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
7713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
7723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
7733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
7783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
7793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
7803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
7813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
7823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
7833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
7843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
7853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
7863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
7873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
7883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
7893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
7903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
7913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
7923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
7933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ZERO,
7943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE,
7953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_COLOR,
7963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_COLOR,
7973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_COLOR,
7983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_COLOR,
7993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SRC_ALPHA,
8003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_SRC_ALPHA,
8013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_DST_ALPHA,
8023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_DST_ALPHA,
8033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_COLOR,
8043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_COLOR,
8053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_CONSTANT_ALPHA,
8063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_ONE_MINUS_CONSTANT_ALPHA
8073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
8083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
8093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(color_mask, "Test cost of glColorMask() calls",
8113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		colorMask,
8123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
8133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
8153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
8163c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8173c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
8183c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8193c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
8203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
8213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
8233c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8243c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
8253c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
8263c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8273c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
8283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE,
8303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE
8313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
8323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
8333c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8343c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE4(clear_color, "Test cost of glClearColor() calls",
8353c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		clearColor,
8363c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
8373c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8383c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
8393c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
8403c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
8413c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.33f
8423c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8433c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
8443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8453c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
8463c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
8473c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
8483c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.33f
8493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8503c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
8513c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8523c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
8533c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
8543c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
8553c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.33f
8563c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8573c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLclampf,
8583c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8593c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.0f,
8603c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1.0f,
8613c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.5f,
8623c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0.33f
8633c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
8643c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
8653c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
8663c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	ADD_ARG_CASE6(vertex_attrib_pointer, "Test cost of glVertexAttribPointer() calls",
8673c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		vertexAttribPointer,
8683c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLuint,
8693c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8703c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
8713c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
8723c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			2,
8733c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			3,
8743c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			4,
8753c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			5,
8763c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			6,
8773c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			7
8783c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8793c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLint,
8803c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8813c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			1,
8823c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			2,
8833c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			3,
8843c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			4
8853c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8863c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLenum,
8873c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8883c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_UNSIGNED_BYTE,
8893c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_BYTE,
8903c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_UNSIGNED_SHORT,
8913c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_SHORT,
8923c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FLOAT
8933c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8943c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLboolean,
8953c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
8963c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_FALSE,
8973c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			GL_TRUE
8983c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
8993c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		GLsizei,
9003c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
9013c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			0,
9023c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			2,
9033c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			4
9043c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		}),
9053c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		void*,
9063c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		ARG_LIST({
9073c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			(void*)(deUintptr)(0x0FF),
9083c827367444ee418f129b2c238299f49d3264554Jarkko Poyry			(void*)(deUintptr)(0x0EF)
9093c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		})
9103c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	);
9113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry}
9123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
9133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // Performance
9143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // gles2
9153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry} // deqp
916