1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Mesa 3-D graphics library 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Version: 7.5 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright (C) 1999-2007 Brian Paul All Rights Reserved. 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright (C) 2008 VMware, Inc. All Rights Reserved. 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the "Software"), 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * to deal in the Software without restriction, including without limitation 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the rights to use, copy, modify, merge, publish, distribute, sublicense, 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and/or sell copies of the Software, and to permit persons to whom the 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Software is furnished to do so, subject to the following conditions: 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice shall be included 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * in all copies or substantial portions of the Software. 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \file config.h 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Tunable configuration parameters. 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef MESA_CONFIG_H_INCLUDED 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MESA_CONFIG_H_INCLUDED 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \name OpenGL implementation limits 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum modelview matrix stack depth */ 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_MODELVIEW_STACK_DEPTH 32 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum projection matrix stack depth */ 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROJECTION_STACK_DEPTH 32 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum texture matrix stack depth */ 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_STACK_DEPTH 10 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum attribute stack depth */ 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_ATTRIB_STACK_DEPTH 16 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum client attribute stack depth */ 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_CLIENT_ATTRIB_STACK_DEPTH 16 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum recursion depth of display list calls */ 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_LIST_NESTING 64 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum number of lights */ 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_LIGHTS 8 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Maximum number of user-defined clipping planes supported by any driver in 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Mesa. This is used to size arrays. 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_CLIP_PLANES 8 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum pixel map lookup table size */ 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PIXEL_MAP_TABLE 256 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum number of auxillary color buffers */ 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_AUX_BUFFERS 1 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum order (degree) of curves */ 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_EVAL_ORDER 30 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum Name stack depth */ 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NAME_STACK_DEPTH 64 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Minimum point size */ 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MIN_POINT_SIZE 1.0 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum point size */ 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_POINT_SIZE 60.0 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Point size granularity */ 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define POINT_SIZE_GRANULARITY 0.1 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Minimum line width */ 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MIN_LINE_WIDTH 1.0 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum line width */ 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_LINE_WIDTH 10.0 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Line width granularity */ 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define LINE_WIDTH_GRANULARITY 0.1 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Max texture palette / color table size */ 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_COLOR_TABLE_SIZE 256 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Max memory to allow for a single texture image (in megabytes) */ 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_MBYTES 1024 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Number of 1D/2D texture mipmap levels */ 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_LEVELS 15 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Number of 3D texture mipmap levels */ 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_3D_TEXTURE_LEVELS 15 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Number of cube texture mipmap levels - GL_ARB_texture_cube_map */ 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_CUBE_TEXTURE_LEVELS 15 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum rectangular texture size - GL_NV_texture_rectangle */ 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_RECT_SIZE 16384 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Maximum number of layers in a 1D or 2D array texture - GL_MESA_texture_array 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_ARRAY_TEXTURE_LAYERS 64 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Max number of texture coordinate units. This mainly just applies to 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the fixed-function vertex code. This will be difficult to raise above 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * eight because of various vertex attribute bitvectors. 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_COORD_UNITS 8 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Max number of texture image units. Also determines number of texture 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * samplers in shaders. 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_IMAGE_UNITS 16 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Larger of MAX_TEXTURE_COORD_UNITS and MAX_TEXTURE_IMAGE_UNITS. 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * This value is only used for dimensioning arrays. 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Either MAX_TEXTURE_COORD_UNITS or MAX_TEXTURE_IMAGE_UNITS (or the 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * corresponding ctx->Const.MaxTextureCoord/ImageUnits fields) should be 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * used almost everywhere else. 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_UNITS ((MAX_TEXTURE_COORD_UNITS > MAX_TEXTURE_IMAGE_UNITS) ? MAX_TEXTURE_COORD_UNITS : MAX_TEXTURE_IMAGE_UNITS) 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maximum viewport size */ 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VIEWPORT_WIDTH 16384 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VIEWPORT_HEIGHT 16384 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Maxmimum size for CVA. May be overridden by the drivers. */ 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_ARRAY_LOCK_SIZE 3000 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** Subpixel precision for antialiasing, window coordinate snapping */ 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define SUB_PIXEL_BITS 4 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_texture_compression */ 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_COMPRESSED_TEXTURE_FORMATS 25 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_EXT_texture_filter_anisotropic */ 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_MAX_ANISOTROPY 16.0 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_EXT_texture_lod_bias (typically MAX_TEXTURE_LEVELS - 1) */ 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_TEXTURE_LOD_BIAS 14.0 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For any program target/extension */ 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_INSTRUCTIONS (16 * 1024) 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Per-program constants (power of two) 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \c MAX_PROGRAM_LOCAL_PARAMS and \c MAX_UNIFORMS are just the assembly shader 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and GLSL shader names for the same thing. They should \b always have the 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * same value. Each refers to the number of vec4 values supplied as 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * per-program parameters. 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_LOCAL_PARAMS 4096 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_UNIFORMS 4096 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Per-context constants (power of two) 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \note 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * This value should always be less than or equal to \c MAX_PROGRAM_LOCAL_PARAMS 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * and \c MAX_VERTEX_PROGRAM_PARAMS. Otherwise some applications will make 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * incorrect assumptions. 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_ENV_PARAMS 256 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_MATRICES 8 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_MATRIX_STACK_DEPTH 4 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_CALL_DEPTH 8 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_TEMPS 256 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_ADDRESS_REGS 2 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VARYING 32 /**< number of float[4] vectors */ 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_SAMPLERS MAX_TEXTURE_IMAGE_UNITS 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_INPUTS 32 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_PROGRAM_OUTPUTS 64 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_vertex_program */ 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VERTEX_PROGRAM_ADDRESS_REGS 1 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VERTEX_PROGRAM_PARAMS MAX_UNIFORMS 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_fragment_program */ 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_FRAGMENT_PROGRAM_ADDRESS_REGS 0 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_NV_vertex_program */ 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_VERTEX_PROGRAM_INSTRUCTIONS 128 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_VERTEX_PROGRAM_TEMPS 12 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_VERTEX_PROGRAM_PARAMS 96 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_VERTEX_PROGRAM_INPUTS 16 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_VERTEX_PROGRAM_OUTPUTS 15 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_NV_fragment_program */ 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_INSTRUCTIONS 1024 /* 72 for GL_ARB_f_p */ 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_TEMPS 96 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_PARAMS 64 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_INPUTS 12 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_OUTPUTS 3 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_NV_FRAGMENT_PROGRAM_WRITE_ONLYS 2 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_vertex_shader */ 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VERTEX_GENERIC_ATTRIBS 16 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VERTEX_TEXTURE_IMAGE_UNITS MAX_TEXTURE_IMAGE_UNITS 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_COMBINED_TEXTURE_IMAGE_UNITS (MAX_VERTEX_TEXTURE_IMAGE_UNITS + \ 232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org MAX_TEXTURE_IMAGE_UNITS) 233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_draw_buffers */ 237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_DRAW_BUFFERS 8 239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_EXT_framebuffer_object */ 243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_COLOR_ATTACHMENTS 8 245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_RENDERBUFFER_SIZE 16384 246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ATI_envmap_bump - support bump mapping on first 8 units */ 249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define SUPPORTED_ATI_BUMP_UNITS 0xff 250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_EXT_transform_feedback */ 252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_FEEDBACK_BUFFERS 4 253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_FEEDBACK_ATTRIBS 32 254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_geometry_shader4 */ 256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 8 258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_GEOMETRY_VARYING_COMPONENTS 32 259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_VERTEX_VARYING_COMPONENTS 32 260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_GEOMETRY_UNIFORM_COMPONENTS 512 261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_GEOMETRY_OUTPUT_VERTICES 256 262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 1024 263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** For GL_ARB_debug_output */ 266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@{*/ 267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_DEBUG_LOGGED_MESSAGES 10 268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_DEBUG_MESSAGE_LENGTH 4096 269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/*@}*/ 270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Color channel component order 274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * \note Changes will almost certainly cause problems at this time. 276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define RCOMP 0 278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define GCOMP 1 279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define BCOMP 2 280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define ACOMP 3 281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/** 284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Maximum number of temporary vertices required for clipping. 285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Used in array_cache and tnl modules. 287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define MAX_CLIPPED_VERTICES ((2 * (6 + MAX_CLIP_PLANES))+1) 289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif /* MESA_CONFIG_H_INCLUDED */ 292