2 * Mesa 3-D graphics library
4 * Copyright © 2015 Red Hat
6 * Permission is hereby granted, free of charge, to any person obtaining a
7 * copy of this software and associated documentation files (the "Software"),
8 * to deal in the Software without restriction, including without limitation
9 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10 * and/or sell copies of the Software, and to permit persons to whom the
11 * Software is furnished to do so, subject to the following conditions:
13 * The above copyright notice and this permission notice (including the next
14 * paragraph) shall be included in all copies or substantial portions of the
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
22 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
26 * Rob Clark <robclark@freedesktop.org>
29 #include "shader_enums.h"
30 #include "util/macros.h"
32 #define ENUM(x) [x] = #x
33 #define NAME(val) ((((val) < ARRAY_SIZE(names)) && names[(val)]) ? names[(val)] : "UNKNOWN")
35 const char * gl_shader_stage_name(gl_shader_stage stage
)
37 static const char *names
[] = {
38 ENUM(MESA_SHADER_VERTEX
),
39 ENUM(MESA_SHADER_TESS_CTRL
),
40 ENUM(MESA_SHADER_TESS_EVAL
),
41 ENUM(MESA_SHADER_GEOMETRY
),
42 ENUM(MESA_SHADER_FRAGMENT
),
43 ENUM(MESA_SHADER_COMPUTE
),
48 const char * gl_vert_attrib_name(gl_vert_attrib attrib
)
50 static const char *names
[] = {
51 ENUM(VERT_ATTRIB_POS
),
52 ENUM(VERT_ATTRIB_WEIGHT
),
53 ENUM(VERT_ATTRIB_NORMAL
),
54 ENUM(VERT_ATTRIB_COLOR0
),
55 ENUM(VERT_ATTRIB_COLOR1
),
56 ENUM(VERT_ATTRIB_FOG
),
57 ENUM(VERT_ATTRIB_COLOR_INDEX
),
58 ENUM(VERT_ATTRIB_EDGEFLAG
),
59 ENUM(VERT_ATTRIB_TEX0
),
60 ENUM(VERT_ATTRIB_TEX1
),
61 ENUM(VERT_ATTRIB_TEX2
),
62 ENUM(VERT_ATTRIB_TEX3
),
63 ENUM(VERT_ATTRIB_TEX4
),
64 ENUM(VERT_ATTRIB_TEX5
),
65 ENUM(VERT_ATTRIB_TEX6
),
66 ENUM(VERT_ATTRIB_TEX7
),
67 ENUM(VERT_ATTRIB_POINT_SIZE
),
68 ENUM(VERT_ATTRIB_GENERIC0
),
69 ENUM(VERT_ATTRIB_GENERIC1
),
70 ENUM(VERT_ATTRIB_GENERIC2
),
71 ENUM(VERT_ATTRIB_GENERIC3
),
72 ENUM(VERT_ATTRIB_GENERIC4
),
73 ENUM(VERT_ATTRIB_GENERIC5
),
74 ENUM(VERT_ATTRIB_GENERIC6
),
75 ENUM(VERT_ATTRIB_GENERIC7
),
76 ENUM(VERT_ATTRIB_GENERIC8
),
77 ENUM(VERT_ATTRIB_GENERIC9
),
78 ENUM(VERT_ATTRIB_GENERIC10
),
79 ENUM(VERT_ATTRIB_GENERIC11
),
80 ENUM(VERT_ATTRIB_GENERIC12
),
81 ENUM(VERT_ATTRIB_GENERIC13
),
82 ENUM(VERT_ATTRIB_GENERIC14
),
83 ENUM(VERT_ATTRIB_GENERIC15
),
88 const char * gl_varying_slot_name(gl_varying_slot slot
)
90 static const char *names
[] = {
91 ENUM(VARYING_SLOT_POS
),
92 ENUM(VARYING_SLOT_COL0
),
93 ENUM(VARYING_SLOT_COL1
),
94 ENUM(VARYING_SLOT_FOGC
),
95 ENUM(VARYING_SLOT_TEX0
),
96 ENUM(VARYING_SLOT_TEX1
),
97 ENUM(VARYING_SLOT_TEX2
),
98 ENUM(VARYING_SLOT_TEX3
),
99 ENUM(VARYING_SLOT_TEX4
),
100 ENUM(VARYING_SLOT_TEX5
),
101 ENUM(VARYING_SLOT_TEX6
),
102 ENUM(VARYING_SLOT_TEX7
),
103 ENUM(VARYING_SLOT_PSIZ
),
104 ENUM(VARYING_SLOT_BFC0
),
105 ENUM(VARYING_SLOT_BFC1
),
106 ENUM(VARYING_SLOT_EDGE
),
107 ENUM(VARYING_SLOT_CLIP_VERTEX
),
108 ENUM(VARYING_SLOT_CLIP_DIST0
),
109 ENUM(VARYING_SLOT_CLIP_DIST1
),
110 ENUM(VARYING_SLOT_PRIMITIVE_ID
),
111 ENUM(VARYING_SLOT_LAYER
),
112 ENUM(VARYING_SLOT_VIEWPORT
),
113 ENUM(VARYING_SLOT_FACE
),
114 ENUM(VARYING_SLOT_PNTC
),
115 ENUM(VARYING_SLOT_TESS_LEVEL_OUTER
),
116 ENUM(VARYING_SLOT_TESS_LEVEL_INNER
),
117 ENUM(VARYING_SLOT_VAR0
),
118 ENUM(VARYING_SLOT_VAR1
),
119 ENUM(VARYING_SLOT_VAR2
),
120 ENUM(VARYING_SLOT_VAR3
),
121 ENUM(VARYING_SLOT_VAR4
),
122 ENUM(VARYING_SLOT_VAR5
),
123 ENUM(VARYING_SLOT_VAR6
),
124 ENUM(VARYING_SLOT_VAR7
),
125 ENUM(VARYING_SLOT_VAR8
),
126 ENUM(VARYING_SLOT_VAR9
),
127 ENUM(VARYING_SLOT_VAR10
),
128 ENUM(VARYING_SLOT_VAR11
),
129 ENUM(VARYING_SLOT_VAR12
),
130 ENUM(VARYING_SLOT_VAR13
),
131 ENUM(VARYING_SLOT_VAR14
),
132 ENUM(VARYING_SLOT_VAR15
),
133 ENUM(VARYING_SLOT_VAR16
),
134 ENUM(VARYING_SLOT_VAR17
),
135 ENUM(VARYING_SLOT_VAR18
),
136 ENUM(VARYING_SLOT_VAR19
),
137 ENUM(VARYING_SLOT_VAR20
),
138 ENUM(VARYING_SLOT_VAR21
),
139 ENUM(VARYING_SLOT_VAR22
),
140 ENUM(VARYING_SLOT_VAR23
),
141 ENUM(VARYING_SLOT_VAR24
),
142 ENUM(VARYING_SLOT_VAR25
),
143 ENUM(VARYING_SLOT_VAR26
),
144 ENUM(VARYING_SLOT_VAR27
),
145 ENUM(VARYING_SLOT_VAR28
),
146 ENUM(VARYING_SLOT_VAR29
),
147 ENUM(VARYING_SLOT_VAR30
),
148 ENUM(VARYING_SLOT_VAR31
),
153 const char * gl_system_value_name(gl_system_value sysval
)
155 static const char *names
[] = {
156 ENUM(SYSTEM_VALUE_VERTEX_ID
),
157 ENUM(SYSTEM_VALUE_INSTANCE_ID
),
158 ENUM(SYSTEM_VALUE_VERTEX_ID_ZERO_BASE
),
159 ENUM(SYSTEM_VALUE_BASE_VERTEX
),
160 ENUM(SYSTEM_VALUE_INVOCATION_ID
),
161 ENUM(SYSTEM_VALUE_FRONT_FACE
),
162 ENUM(SYSTEM_VALUE_SAMPLE_ID
),
163 ENUM(SYSTEM_VALUE_SAMPLE_POS
),
164 ENUM(SYSTEM_VALUE_SAMPLE_MASK_IN
),
165 ENUM(SYSTEM_VALUE_TESS_COORD
),
166 ENUM(SYSTEM_VALUE_VERTICES_IN
),
167 ENUM(SYSTEM_VALUE_PRIMITIVE_ID
),
168 ENUM(SYSTEM_VALUE_TESS_LEVEL_OUTER
),
169 ENUM(SYSTEM_VALUE_TESS_LEVEL_INNER
),
170 ENUM(SYSTEM_VALUE_LOCAL_INVOCATION_ID
),
171 ENUM(SYSTEM_VALUE_WORK_GROUP_ID
),
172 ENUM(SYSTEM_VALUE_VERTEX_CNT
),
177 const char * glsl_interp_qualifier_name(enum glsl_interp_qualifier qual
)
179 static const char *names
[] = {
180 ENUM(INTERP_QUALIFIER_NONE
),
181 ENUM(INTERP_QUALIFIER_SMOOTH
),
182 ENUM(INTERP_QUALIFIER_FLAT
),
183 ENUM(INTERP_QUALIFIER_NOPERSPECTIVE
),
188 const char * gl_frag_result_name(gl_frag_result result
)
190 static const char *names
[] = {
191 ENUM(FRAG_RESULT_DEPTH
),
192 ENUM(FRAG_RESULT_STENCIL
),
193 ENUM(FRAG_RESULT_COLOR
),
194 ENUM(FRAG_RESULT_SAMPLE_MASK
),
195 ENUM(FRAG_RESULT_DATA0
),
196 ENUM(FRAG_RESULT_DATA1
),
197 ENUM(FRAG_RESULT_DATA2
),
198 ENUM(FRAG_RESULT_DATA3
),
199 ENUM(FRAG_RESULT_DATA4
),
200 ENUM(FRAG_RESULT_DATA5
),
201 ENUM(FRAG_RESULT_DATA6
),
202 ENUM(FRAG_RESULT_DATA7
),