2 // Copyright (C) 2002-2005 3Dlabs Inc. Ltd.
3 // Copyright (C) 2013 LunarG, Inc.
5 // All rights reserved.
7 // Redistribution and use in source and binary forms, with or without
8 // modification, are permitted provided that the following conditions
11 // Redistributions of source code must retain the above copyright
12 // notice, this list of conditions and the following disclaimer.
14 // Redistributions in binary form must reproduce the above
15 // copyright notice, this list of conditions and the following
16 // disclaimer in the documentation and/or other materials provided
17 // with the distribution.
19 // Neither the name of 3Dlabs Inc. Ltd. nor the names of its
20 // contributors may be used to endorse or promote products derived
21 // from this software without specific prior written permission.
23 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
27 // COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
28 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
29 // BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
30 // LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32 // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
33 // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 // POSSIBILITY OF SUCH DAMAGE.
37 #ifndef _RESOURCE_LIMITS_INCLUDED_
38 #define _RESOURCE_LIMITS_INCLUDED_
41 bool nonInductiveForLoops;
44 bool generalUniformIndexing;
45 bool generalAttributeMatrixVectorIndexing;
46 bool generalVaryingIndexing;
47 bool generalSamplerIndexing;
48 bool generalVariableIndexing;
49 bool generalConstantMatrixVectorIndexing;
52 struct TBuiltInResource {
58 int maxVertexUniformComponents;
60 int maxVertexTextureImageUnits;
61 int maxCombinedTextureImageUnits;
62 int maxTextureImageUnits;
63 int maxFragmentUniformComponents;
65 int maxVertexUniformVectors;
66 int maxVaryingVectors;
67 int maxFragmentUniformVectors;
68 int maxVertexOutputVectors;
69 int maxFragmentInputVectors;
70 int minProgramTexelOffset;
71 int maxProgramTexelOffset;
73 int maxComputeWorkGroupCountX;
74 int maxComputeWorkGroupCountY;
75 int maxComputeWorkGroupCountZ;
76 int maxComputeWorkGroupSizeX;
77 int maxComputeWorkGroupSizeY;
78 int maxComputeWorkGroupSizeZ;
79 int maxComputeUniformComponents;
80 int maxComputeTextureImageUnits;
81 int maxComputeImageUniforms;
82 int maxComputeAtomicCounters;
83 int maxComputeAtomicCounterBuffers;
84 int maxVaryingComponents;
85 int maxVertexOutputComponents;
86 int maxGeometryInputComponents;
87 int maxGeometryOutputComponents;
88 int maxFragmentInputComponents;
90 int maxCombinedImageUnitsAndFragmentOutputs;
91 int maxCombinedShaderOutputResources;
93 int maxVertexImageUniforms;
94 int maxTessControlImageUniforms;
95 int maxTessEvaluationImageUniforms;
96 int maxGeometryImageUniforms;
97 int maxFragmentImageUniforms;
98 int maxCombinedImageUniforms;
99 int maxGeometryTextureImageUnits;
100 int maxGeometryOutputVertices;
101 int maxGeometryTotalOutputComponents;
102 int maxGeometryUniformComponents;
103 int maxGeometryVaryingComponents;
104 int maxTessControlInputComponents;
105 int maxTessControlOutputComponents;
106 int maxTessControlTextureImageUnits;
107 int maxTessControlUniformComponents;
108 int maxTessControlTotalOutputComponents;
109 int maxTessEvaluationInputComponents;
110 int maxTessEvaluationOutputComponents;
111 int maxTessEvaluationTextureImageUnits;
112 int maxTessEvaluationUniformComponents;
113 int maxTessPatchComponents;
114 int maxPatchVertices;
117 int maxVertexAtomicCounters;
118 int maxTessControlAtomicCounters;
119 int maxTessEvaluationAtomicCounters;
120 int maxGeometryAtomicCounters;
121 int maxFragmentAtomicCounters;
122 int maxCombinedAtomicCounters;
123 int maxAtomicCounterBindings;
124 int maxVertexAtomicCounterBuffers;
125 int maxTessControlAtomicCounterBuffers;
126 int maxTessEvaluationAtomicCounterBuffers;
127 int maxGeometryAtomicCounterBuffers;
128 int maxFragmentAtomicCounterBuffers;
129 int maxCombinedAtomicCounterBuffers;
130 int maxAtomicCounterBufferSize;
131 int maxTransformFeedbackBuffers;
132 int maxTransformFeedbackInterleavedComponents;
133 int maxCullDistances;
134 int maxCombinedClipAndCullDistances;
140 #endif // _RESOURCE_LIMITS_INCLUDED_