1*35238bceSAndroid Build Coastguard Worker #ifndef _RSGPARAMETERS_HPP 2*35238bceSAndroid Build Coastguard Worker #define _RSGPARAMETERS_HPP 3*35238bceSAndroid Build Coastguard Worker /*------------------------------------------------------------------------- 4*35238bceSAndroid Build Coastguard Worker * drawElements Quality Program Random Shader Generator 5*35238bceSAndroid Build Coastguard Worker * ---------------------------------------------------- 6*35238bceSAndroid Build Coastguard Worker * 7*35238bceSAndroid Build Coastguard Worker * Copyright 2014 The Android Open Source Project 8*35238bceSAndroid Build Coastguard Worker * 9*35238bceSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 10*35238bceSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 11*35238bceSAndroid Build Coastguard Worker * You may obtain a copy of the License at 12*35238bceSAndroid Build Coastguard Worker * 13*35238bceSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 14*35238bceSAndroid Build Coastguard Worker * 15*35238bceSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 16*35238bceSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 17*35238bceSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18*35238bceSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 19*35238bceSAndroid Build Coastguard Worker * limitations under the License. 20*35238bceSAndroid Build Coastguard Worker * 21*35238bceSAndroid Build Coastguard Worker *//*! 22*35238bceSAndroid Build Coastguard Worker * \file 23*35238bceSAndroid Build Coastguard Worker * \brief Shader generator parameters. 24*35238bceSAndroid Build Coastguard Worker *//*--------------------------------------------------------------------*/ 25*35238bceSAndroid Build Coastguard Worker 26*35238bceSAndroid Build Coastguard Worker #include "rsgDefs.hpp" 27*35238bceSAndroid Build Coastguard Worker 28*35238bceSAndroid Build Coastguard Worker #include <set> 29*35238bceSAndroid Build Coastguard Worker #include <string> 30*35238bceSAndroid Build Coastguard Worker #include <vector> 31*35238bceSAndroid Build Coastguard Worker 32*35238bceSAndroid Build Coastguard Worker namespace rsg 33*35238bceSAndroid Build Coastguard Worker { 34*35238bceSAndroid Build Coastguard Worker 35*35238bceSAndroid Build Coastguard Worker enum 36*35238bceSAndroid Build Coastguard Worker { 37*35238bceSAndroid Build Coastguard Worker NUM_RESERVED_SHADER_INPUTS = 1 // Taken by dEQP_Position 38*35238bceSAndroid Build Coastguard Worker }; 39*35238bceSAndroid Build Coastguard Worker 40*35238bceSAndroid Build Coastguard Worker enum Version 41*35238bceSAndroid Build Coastguard Worker { 42*35238bceSAndroid Build Coastguard Worker VERSION_100, //!< GLSL ES 1.0 43*35238bceSAndroid Build Coastguard Worker VERSION_300, //!< GLSL ES 3.0 44*35238bceSAndroid Build Coastguard Worker 45*35238bceSAndroid Build Coastguard Worker VERSION_LAST 46*35238bceSAndroid Build Coastguard Worker }; 47*35238bceSAndroid Build Coastguard Worker 48*35238bceSAndroid Build Coastguard Worker class ShaderParameters 49*35238bceSAndroid Build Coastguard Worker { 50*35238bceSAndroid Build Coastguard Worker public: ShaderParameters(void)51*35238bceSAndroid Build Coastguard Worker ShaderParameters(void) 52*35238bceSAndroid Build Coastguard Worker : randomize(false) 53*35238bceSAndroid Build Coastguard Worker , maxStatementDepth(2) 54*35238bceSAndroid Build Coastguard Worker , maxStatementsPerBlock(10) 55*35238bceSAndroid Build Coastguard Worker , maxExpressionDepth(5) 56*35238bceSAndroid Build Coastguard Worker , maxCombinedVariableScalars(32) 57*35238bceSAndroid Build Coastguard Worker , maxUniformScalars(512) 58*35238bceSAndroid Build Coastguard Worker , maxInputVariables(8) 59*35238bceSAndroid Build Coastguard Worker , texLookupBaseWeight(0.0f) 60*35238bceSAndroid Build Coastguard Worker , maxSamplers(8) 61*35238bceSAndroid Build Coastguard Worker , useTexture2D(false) 62*35238bceSAndroid Build Coastguard Worker , useTextureCube(false) 63*35238bceSAndroid Build Coastguard Worker { 64*35238bceSAndroid Build Coastguard Worker } 65*35238bceSAndroid Build Coastguard Worker 66*35238bceSAndroid Build Coastguard Worker bool randomize; //!< If not enabled, only simple passthrough will be generated 67*35238bceSAndroid Build Coastguard Worker int maxStatementDepth; 68*35238bceSAndroid Build Coastguard Worker int maxStatementsPerBlock; 69*35238bceSAndroid Build Coastguard Worker int maxExpressionDepth; 70*35238bceSAndroid Build Coastguard Worker int maxCombinedVariableScalars; 71*35238bceSAndroid Build Coastguard Worker int maxUniformScalars; 72*35238bceSAndroid Build Coastguard Worker int maxInputVariables; 73*35238bceSAndroid Build Coastguard Worker 74*35238bceSAndroid Build Coastguard Worker float texLookupBaseWeight; 75*35238bceSAndroid Build Coastguard Worker int maxSamplers; 76*35238bceSAndroid Build Coastguard Worker bool useTexture2D; 77*35238bceSAndroid Build Coastguard Worker bool useTextureCube; 78*35238bceSAndroid Build Coastguard Worker }; 79*35238bceSAndroid Build Coastguard Worker 80*35238bceSAndroid Build Coastguard Worker class ProgramParameters 81*35238bceSAndroid Build Coastguard Worker { 82*35238bceSAndroid Build Coastguard Worker public: ProgramParameters(void)83*35238bceSAndroid Build Coastguard Worker ProgramParameters(void) 84*35238bceSAndroid Build Coastguard Worker : seed(0) 85*35238bceSAndroid Build Coastguard Worker , version(VERSION_100) 86*35238bceSAndroid Build Coastguard Worker , declarationStatementBaseWeight(1.0f) 87*35238bceSAndroid Build Coastguard Worker , useScalarConversions(false) 88*35238bceSAndroid Build Coastguard Worker , useSwizzle(false) 89*35238bceSAndroid Build Coastguard Worker , useComparisonOps(false) 90*35238bceSAndroid Build Coastguard Worker , useConditionals(false) 91*35238bceSAndroid Build Coastguard Worker , trigonometricBaseWeight(0.0f) 92*35238bceSAndroid Build Coastguard Worker , exponentialBaseWeight(0.0f) 93*35238bceSAndroid Build Coastguard Worker { 94*35238bceSAndroid Build Coastguard Worker } 95*35238bceSAndroid Build Coastguard Worker 96*35238bceSAndroid Build Coastguard Worker uint32_t seed; 97*35238bceSAndroid Build Coastguard Worker Version version; 98*35238bceSAndroid Build Coastguard Worker ShaderParameters vertexParameters; 99*35238bceSAndroid Build Coastguard Worker ShaderParameters fragmentParameters; 100*35238bceSAndroid Build Coastguard Worker 101*35238bceSAndroid Build Coastguard Worker bool declarationStatementBaseWeight; 102*35238bceSAndroid Build Coastguard Worker bool useScalarConversions; 103*35238bceSAndroid Build Coastguard Worker bool useSwizzle; 104*35238bceSAndroid Build Coastguard Worker bool useComparisonOps; 105*35238bceSAndroid Build Coastguard Worker bool useConditionals; 106*35238bceSAndroid Build Coastguard Worker 107*35238bceSAndroid Build Coastguard Worker float trigonometricBaseWeight; 108*35238bceSAndroid Build Coastguard Worker float exponentialBaseWeight; 109*35238bceSAndroid Build Coastguard Worker }; 110*35238bceSAndroid Build Coastguard Worker 111*35238bceSAndroid Build Coastguard Worker } // namespace rsg 112*35238bceSAndroid Build Coastguard Worker 113*35238bceSAndroid Build Coastguard Worker #endif // _RSGPARAMETERS_HPP 114