xref: /aosp_15_r20/external/mesa3d/src/microsoft/compiler/dxil_enums.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Copyright © Microsoft Corporation
3*61046927SAndroid Build Coastguard Worker  *
4*61046927SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
5*61046927SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the "Software"),
6*61046927SAndroid Build Coastguard Worker  * to deal in the Software without restriction, including without limitation
7*61046927SAndroid Build Coastguard Worker  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8*61046927SAndroid Build Coastguard Worker  * and/or sell copies of the Software, and to permit persons to whom the
9*61046927SAndroid Build Coastguard Worker  * Software is furnished to do so, subject to the following conditions:
10*61046927SAndroid Build Coastguard Worker  *
11*61046927SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice (including the next
12*61046927SAndroid Build Coastguard Worker  * paragraph) shall be included in all copies or substantial portions of the
13*61046927SAndroid Build Coastguard Worker  * Software.
14*61046927SAndroid Build Coastguard Worker  *
15*61046927SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16*61046927SAndroid Build Coastguard Worker  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*61046927SAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
18*61046927SAndroid Build Coastguard Worker  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19*61046927SAndroid Build Coastguard Worker  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20*61046927SAndroid Build Coastguard Worker  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
21*61046927SAndroid Build Coastguard Worker  * IN THE SOFTWARE.
22*61046927SAndroid Build Coastguard Worker  */
23*61046927SAndroid Build Coastguard Worker 
24*61046927SAndroid Build Coastguard Worker #ifndef DIXL_ENUMS_H
25*61046927SAndroid Build Coastguard Worker #define DIXL_ENUMS_H
26*61046927SAndroid Build Coastguard Worker 
27*61046927SAndroid Build Coastguard Worker #include <stdbool.h>
28*61046927SAndroid Build Coastguard Worker 
29*61046927SAndroid Build Coastguard Worker #include "shader_enums.h"
30*61046927SAndroid Build Coastguard Worker 
31*61046927SAndroid Build Coastguard Worker enum dxil_signature_kind {
32*61046927SAndroid Build Coastguard Worker    DXIL_SIG_INVALID = 0,
33*61046927SAndroid Build Coastguard Worker    DXIL_SIG_INPUT,
34*61046927SAndroid Build Coastguard Worker    DXIL_SIG_OUTPUT,
35*61046927SAndroid Build Coastguard Worker    DXIL_SIG_PATCH_CONST_OR_PRIM
36*61046927SAndroid Build Coastguard Worker };
37*61046927SAndroid Build Coastguard Worker 
38*61046927SAndroid Build Coastguard Worker /* These enums are taken from
39*61046927SAndroid Build Coastguard Worker  * DirectXShaderCompiler/lib/dxc/DXIL/DxilConstants.h
40*61046927SAndroid Build Coastguard Worker  */
41*61046927SAndroid Build Coastguard Worker enum dxil_semantic_kind {
42*61046927SAndroid Build Coastguard Worker   DXIL_SEM_ARBITRARY,
43*61046927SAndroid Build Coastguard Worker   DXIL_SEM_VERTEX_ID,
44*61046927SAndroid Build Coastguard Worker   DXIL_SEM_INSTANCE_ID,
45*61046927SAndroid Build Coastguard Worker   DXIL_SEM_POSITION,
46*61046927SAndroid Build Coastguard Worker   DXIL_SEM_RENDERTARGET_ARRAY_INDEX,
47*61046927SAndroid Build Coastguard Worker   DXIL_SEM_VIEWPORT_ARRAY_INDEX,
48*61046927SAndroid Build Coastguard Worker   DXIL_SEM_CLIP_DISTANCE,
49*61046927SAndroid Build Coastguard Worker   DXIL_SEM_CULL_DISTANCE,
50*61046927SAndroid Build Coastguard Worker   DXIL_SEM_OUTPUT_CONTROL_POINT_ID,
51*61046927SAndroid Build Coastguard Worker   DXIL_SEM_DOMAIN_LOCATION,
52*61046927SAndroid Build Coastguard Worker   DXIL_SEM_PRIMITIVE_ID,
53*61046927SAndroid Build Coastguard Worker   DXIL_SEM_GS_INSTANCE_ID,
54*61046927SAndroid Build Coastguard Worker   DXIL_SEM_SAMPLE_INDEX,
55*61046927SAndroid Build Coastguard Worker   DXIL_SEM_IS_FRONT_FACE,
56*61046927SAndroid Build Coastguard Worker   DXIL_SEM_COVERAGE,
57*61046927SAndroid Build Coastguard Worker   DXIL_SEM_INNER_COVERAGE,
58*61046927SAndroid Build Coastguard Worker   DXIL_SEM_TARGET,
59*61046927SAndroid Build Coastguard Worker   DXIL_SEM_DEPTH,
60*61046927SAndroid Build Coastguard Worker   DXIL_SEM_DEPTH_LE,
61*61046927SAndroid Build Coastguard Worker   DXIL_SEM_DEPTH_GE,
62*61046927SAndroid Build Coastguard Worker   DXIL_SEM_STENCIL_REF,
63*61046927SAndroid Build Coastguard Worker   DXIL_SEM_DISPATCH_THREAD_ID,
64*61046927SAndroid Build Coastguard Worker   DXIL_SEM_GROUP_ID,
65*61046927SAndroid Build Coastguard Worker   DXIL_SEM_GROUP_INDEX,
66*61046927SAndroid Build Coastguard Worker   DXIL_SEM_GROUP_THREAD_ID,
67*61046927SAndroid Build Coastguard Worker   DXIL_SEM_TESS_FACTOR,
68*61046927SAndroid Build Coastguard Worker   DXIL_SEM_INSIDE_TESS_FACTOR,
69*61046927SAndroid Build Coastguard Worker   DXIL_SEM_VIEW_ID,
70*61046927SAndroid Build Coastguard Worker   DXIL_SEM_BARYCENTRICS,
71*61046927SAndroid Build Coastguard Worker   DXIL_SEM_SHADING_RATE,
72*61046927SAndroid Build Coastguard Worker   DXIL_SEM_CULL_PRIMITIVE,
73*61046927SAndroid Build Coastguard Worker   DXIL_SEM_INVALID
74*61046927SAndroid Build Coastguard Worker };
75*61046927SAndroid Build Coastguard Worker 
76*61046927SAndroid Build Coastguard Worker enum dxil_prog_sig_semantic {
77*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_UNDEFINED = 0,
78*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_POSITION = 1,
79*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_CLIP_DISTANCE = 2,
80*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_CULL_DISTANCE = 3,
81*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_RENDERTARGET_ARRAY_INDEX = 4,
82*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_VIEWPORT_ARRAY_INDEX = 5,
83*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_VERTEX_ID = 6,
84*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_PRIMITIVE_ID = 7,
85*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_INSTANCE_ID = 8,
86*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_IS_FRONTFACE = 9,
87*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_SAMPLE_INDEX = 10,
88*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_QUAD_EDGE_TESSFACTOR = 11,
89*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_QUAD_INSIDE_EDGE_TESSFACTOR = 12,
90*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_TRI_EDGE_TESSFACTOR = 13,
91*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_TRI_INSIDE_EDGE_TESSFACTOR = 14,
92*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_LINE_DETAIL_TESSFACTOR = 15,
93*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_FINAL_LINE_DENSITY_TESSFACTOR = 16,
94*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_BARYCENTRICS = 23,
95*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_SHADING_RATE = 24,
96*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_CULL_PRIMITIVE = 25,
97*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_TARGET = 64,
98*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_DEPTH = 65,
99*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_COVERAGE = 66,
100*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_DEPTH_GE = 67,
101*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_DEPTH_LE = 68,
102*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_STENCIL_REF = 69,
103*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SEM_INNER_COVERAGE = 70
104*61046927SAndroid Build Coastguard Worker };
105*61046927SAndroid Build Coastguard Worker 
106*61046927SAndroid Build Coastguard Worker enum dxil_prog_sig_comp_type {
107*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_UNKNOWN = 0,
108*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_UINT32 = 1,
109*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_SINT32 = 2,
110*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_FLOAT32 = 3,
111*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_UINT16 = 4,
112*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_SINT16 = 5,
113*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_FLOAT16 = 6,
114*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_UINT64 = 7,
115*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_SINT64 = 8,
116*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_FLOAT64 = 9,
117*61046927SAndroid Build Coastguard Worker    DXIL_PROG_SIG_COMP_TYPE_COUNT
118*61046927SAndroid Build Coastguard Worker };
119*61046927SAndroid Build Coastguard Worker 
120*61046927SAndroid Build Coastguard Worker 
121*61046927SAndroid Build Coastguard Worker enum dxil_sig_point_kind {
122*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_VSIN, // Ordinary Vertex Shader input from Input Assembler
123*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_VSOUT, // Ordinary Vertex Shader output that may feed Rasterizer
124*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_PCIN, // Patch Constant function non-patch inputs
125*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_HSIN, // Hull Shader function non-patch inputs
126*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_HSCPIN, // Hull Shader patch inputs - Control Points
127*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_HSCPOut, // Hull Shader function output - Control Point
128*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_PCOUT, // Patch Constant function output - Patch Constant data passed to Domain Shader
129*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_DSIN, // Domain Shader regular input - Patch Constant data plus system values
130*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_DSCPIN, // Domain Shader patch input - Control Points
131*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_DSOUT, // Domain Shader output - vertex data that may feed Rasterizer
132*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_GSVIN, // Geometry Shader vertex input - qualified with primitive type
133*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_GSIN, // Geometry Shader non-vertex inputs (system values)
134*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_GSOUT, // Geometry Shader output - vertex data that may feed Rasterizer
135*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_PSIN, // Pixel Shader input
136*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_PSOUT, // Pixel Shader output
137*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_CSIN, // Compute Shader input
138*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_MSIN, // Mesh Shader input
139*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_MSOUT, // Mesh Shader vertices output
140*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_MSPOUT, // Mesh Shader primitives output
141*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_ASIN, // Amplification Shader input
142*61046927SAndroid Build Coastguard Worker    DXIL_SIG_POINT_INVALID
143*61046927SAndroid Build Coastguard Worker };
144*61046927SAndroid Build Coastguard Worker 
145*61046927SAndroid Build Coastguard Worker enum dxil_min_precision  {
146*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_DEFAULT = 0,
147*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_FLOAT16 = 1,
148*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_FLOAT2_8 = 2,
149*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_RESERVED = 3,
150*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_SINT16 = 4,
151*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_UINT16 = 5,
152*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_ANY16 = 0xf0,
153*61046927SAndroid Build Coastguard Worker   DXIL_MIN_PREC_ANY10 = 0xf1
154*61046927SAndroid Build Coastguard Worker };
155*61046927SAndroid Build Coastguard Worker 
156*61046927SAndroid Build Coastguard Worker enum dxil_semantic_interpret_kind {
157*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_NA, // Not Available
158*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_SV, // Normal System Value
159*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_SGV, // System Generated Value (sorted last)
160*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_ARB, // Treated as Arbitrary
161*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_NOT_IN_SIG, // Not included in signature (intrinsic access)
162*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_NOT_PACKED, // Included in signature, but does not contribute to packing
163*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_TARGET, // Special handling for SV_Target
164*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_TESSFACTOR, // Special handling for tessellation factors
165*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_SHADOW, // Shadow element must be added to a signature for compatibility
166*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_CLIPCULL, // Special packing rules for SV_ClipDistance or SV_CullDistance
167*61046927SAndroid Build Coastguard Worker    DXIL_SEM_INTERP_INVALID
168*61046927SAndroid Build Coastguard Worker };
169*61046927SAndroid Build Coastguard Worker 
170*61046927SAndroid Build Coastguard Worker enum dxil_component_type {
171*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_INVALID = 0,
172*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_I1 = 1,
173*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_I16 = 2,
174*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_U16 = 3,
175*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_I32 = 4,
176*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_U32 = 5,
177*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_I64 = 6,
178*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_U64 = 7,
179*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_F16 = 8,
180*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_F32 = 9,
181*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_F64 = 10,
182*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_SNORMF16 = 11,
183*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_UNORMF16 = 12,
184*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_SNORMF32 = 13,
185*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_UNORMF32 = 14,
186*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_SNORMF64 = 15,
187*61046927SAndroid Build Coastguard Worker    DXIL_COMP_TYPE_UNORMF64 = 16
188*61046927SAndroid Build Coastguard Worker };
189*61046927SAndroid Build Coastguard Worker 
190*61046927SAndroid Build Coastguard Worker enum dxil_interpolation_mode  {
191*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_UNDEFINED                   = 0,
192*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_CONSTANT                    = 1,
193*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR                      = 2,
194*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR_CENTROID             = 3,
195*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR_NOPERSPECTIVE        = 4,
196*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR_NOPERSPECTIVE_CENTROID  = 5,
197*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR_SAMPLE               = 6,
198*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_LINEAR_NOPERSPECTIVE_SAMPLE = 7,
199*61046927SAndroid Build Coastguard Worker   DXIL_INTERP_INVALID                     = 8
200*61046927SAndroid Build Coastguard Worker };
201*61046927SAndroid Build Coastguard Worker 
202*61046927SAndroid Build Coastguard Worker enum overload_type {
203*61046927SAndroid Build Coastguard Worker    DXIL_NONE,
204*61046927SAndroid Build Coastguard Worker    DXIL_I1,
205*61046927SAndroid Build Coastguard Worker    DXIL_I16,
206*61046927SAndroid Build Coastguard Worker    DXIL_I32,
207*61046927SAndroid Build Coastguard Worker    DXIL_I64,
208*61046927SAndroid Build Coastguard Worker    DXIL_F16,
209*61046927SAndroid Build Coastguard Worker    DXIL_F32,
210*61046927SAndroid Build Coastguard Worker    DXIL_F64,
211*61046927SAndroid Build Coastguard Worker    DXIL_NUM_OVERLOADS
212*61046927SAndroid Build Coastguard Worker };
213*61046927SAndroid Build Coastguard Worker 
214*61046927SAndroid Build Coastguard Worker enum dxil_resource_class {
215*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_CLASS_SRV     = 0,
216*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_CLASS_UAV     = 1,
217*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_CLASS_CBV     = 2,
218*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_CLASS_SAMPLER = 3
219*61046927SAndroid Build Coastguard Worker };
220*61046927SAndroid Build Coastguard Worker 
221*61046927SAndroid Build Coastguard Worker enum dxil_resource_kind {
222*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_INVALID           = 0,
223*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE1D         = 1,
224*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE2D         = 2,
225*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE2DMS       = 3,
226*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE3D         = 4,
227*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURECUBE       = 5,
228*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE1D_ARRAY   = 6,
229*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE2D_ARRAY   = 7,
230*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURE2DMS_ARRAY = 8,
231*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TEXTURECUBE_ARRAY = 9,
232*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TYPED_BUFFER      = 10,
233*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_RAW_BUFFER        = 11,
234*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_STRUCTURED_BUFFER = 12,
235*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_CBUFFER           = 13,
236*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_SAMPLER           = 14,
237*61046927SAndroid Build Coastguard Worker    DXIL_RESOURCE_KIND_TBUFFER           = 15,
238*61046927SAndroid Build Coastguard Worker };
239*61046927SAndroid Build Coastguard Worker 
240*61046927SAndroid Build Coastguard Worker enum dxil_sampler_kind {
241*61046927SAndroid Build Coastguard Worker    DXIL_SAMPLER_KIND_DEFAULT    = 0,
242*61046927SAndroid Build Coastguard Worker    DXIL_SAMPLER_KIND_COMPARISON = 1,
243*61046927SAndroid Build Coastguard Worker    DXIL_SAMPLER_KIND_MONO       = 2,
244*61046927SAndroid Build Coastguard Worker    DXIL_SAMPLER_KIND_INVALID    = 3,
245*61046927SAndroid Build Coastguard Worker };
246*61046927SAndroid Build Coastguard Worker 
247*61046927SAndroid Build Coastguard Worker enum dxil_attr_kind {
248*61046927SAndroid Build Coastguard Worker    DXIL_ATTR_KIND_NONE = 0,
249*61046927SAndroid Build Coastguard Worker    DXIL_ATTR_KIND_NO_DUPLICATE = 12,
250*61046927SAndroid Build Coastguard Worker    DXIL_ATTR_KIND_NO_UNWIND = 18,
251*61046927SAndroid Build Coastguard Worker    DXIL_ATTR_KIND_READ_NONE = 20,
252*61046927SAndroid Build Coastguard Worker    DXIL_ATTR_KIND_READ_ONLY = 21,
253*61046927SAndroid Build Coastguard Worker };
254*61046927SAndroid Build Coastguard Worker 
255*61046927SAndroid Build Coastguard Worker enum dxil_input_primitive {
256*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_UNDEFINED         = 0,
257*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_POINT             = 1,
258*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_LINE              = 2,
259*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_TRIANGLE          = 3,
260*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_LINES_ADJENCY     = 6,
261*61046927SAndroid Build Coastguard Worker    DXIL_INPUT_PRIMITIVE_TRIANGLES_ADJENCY = 7,
262*61046927SAndroid Build Coastguard Worker };
263*61046927SAndroid Build Coastguard Worker 
264*61046927SAndroid Build Coastguard Worker enum dxil_primitive_topology {
265*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_UNDEFINED      = 0,
266*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_POINT_LIST     = 1,
267*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_LINE_LIST      = 2,
268*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_LINE_STRIP     = 3,
269*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST  = 4,
270*61046927SAndroid Build Coastguard Worker    DXIL_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 5,
271*61046927SAndroid Build Coastguard Worker };
272*61046927SAndroid Build Coastguard Worker 
273*61046927SAndroid Build Coastguard Worker enum dxil_shader_tag {
274*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_FLAGS       = 0,
275*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_GS_STATE    = 1,
276*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_DS_STATE    = 2,
277*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_HS_STATE    = 3,
278*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_NUM_THREADS = 4,
279*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_WAVE_SIZE   = 11,
280*61046927SAndroid Build Coastguard Worker    DXIL_SHADER_TAG_WAVE_SIZE_RANGE = 23,
281*61046927SAndroid Build Coastguard Worker };
282*61046927SAndroid Build Coastguard Worker 
283*61046927SAndroid Build Coastguard Worker enum dxil_barrier_mode {
284*61046927SAndroid Build Coastguard Worker    DXIL_BARRIER_MODE_SYNC_THREAD_GROUP = 1,
285*61046927SAndroid Build Coastguard Worker    DXIL_BARRIER_MODE_UAV_FENCE_GLOBAL = 2,
286*61046927SAndroid Build Coastguard Worker    DXIL_BARRIER_MODE_UAV_FENCE_THREAD_GROUP = 4,
287*61046927SAndroid Build Coastguard Worker    DXIL_BARRIER_MODE_GROUPSHARED_MEM_FENCE = 8,
288*61046927SAndroid Build Coastguard Worker };
289*61046927SAndroid Build Coastguard Worker 
290*61046927SAndroid Build Coastguard Worker enum dxil_address_space {
291*61046927SAndroid Build Coastguard Worker    DXIL_AS_DEFAULT = 0,
292*61046927SAndroid Build Coastguard Worker    DXIL_AS_DEVMEM = 1,
293*61046927SAndroid Build Coastguard Worker    DXIL_AS_CBUF = 2,
294*61046927SAndroid Build Coastguard Worker    DXIL_AS_GROUPSHARED = 3,
295*61046927SAndroid Build Coastguard Worker };
296*61046927SAndroid Build Coastguard Worker 
297*61046927SAndroid Build Coastguard Worker enum dxil_rmw_op {
298*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_XCHG = 0,
299*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_ADD = 1,
300*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_SUB = 2,
301*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_AND = 3,
302*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_NAND = 4,
303*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_OR = 5,
304*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_XOR = 6,
305*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_MAX = 7,
306*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_MIN = 8,
307*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_UMAX = 9,
308*61046927SAndroid Build Coastguard Worker    DXIL_RMWOP_UMIN = 10,
309*61046927SAndroid Build Coastguard Worker };
310*61046927SAndroid Build Coastguard Worker 
311*61046927SAndroid Build Coastguard Worker enum dxil_atomic_ordering {
312*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_NOTATOMIC = 0,
313*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_UNORDERED = 1,
314*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_MONOTONIC = 2,
315*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_ACQUIRE = 3,
316*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_RELEASE = 4,
317*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_ACQREL = 5,
318*61046927SAndroid Build Coastguard Worker    DXIL_ATOMIC_ORDERING_SEQCST = 6,
319*61046927SAndroid Build Coastguard Worker };
320*61046927SAndroid Build Coastguard Worker 
321*61046927SAndroid Build Coastguard Worker enum dxil_sync_scope {
322*61046927SAndroid Build Coastguard Worker    DXIL_SYNC_SCOPE_SINGLETHREAD = 0,
323*61046927SAndroid Build Coastguard Worker    DXIL_SYNC_SCOPE_CROSSTHREAD = 1,
324*61046927SAndroid Build Coastguard Worker };
325*61046927SAndroid Build Coastguard Worker 
326*61046927SAndroid Build Coastguard Worker enum dxil_tessellator_domain {
327*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_DOMAIN_UNDEFINED = 0,
328*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_DOMAIN_ISOLINE = 1,
329*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_DOMAIN_TRI = 2,
330*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_DOMAIN_QUAD = 3,
331*61046927SAndroid Build Coastguard Worker };
332*61046927SAndroid Build Coastguard Worker 
333*61046927SAndroid Build Coastguard Worker enum dxil_tessellator_output_primitive {
334*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_OUTPUT_PRIMITIVE_UNDEFINED = 0,
335*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_OUTPUT_PRIMITIVE_POINT = 1,
336*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_OUTPUT_PRIMITIVE_LINE = 2,
337*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_OUTPUT_PRIMITIVE_TRIANGLE_CW = 3,
338*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_OUTPUT_PRIMITIVE_TRIANGLE_CCW = 4,
339*61046927SAndroid Build Coastguard Worker };
340*61046927SAndroid Build Coastguard Worker 
341*61046927SAndroid Build Coastguard Worker enum dxil_tessellator_partitioning {
342*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_PARTITIONING_UNDEFINED = 0,
343*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_PARTITIONING_INTEGER = 1,
344*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_PARTITIONING_POW2 = 2,
345*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD = 3,
346*61046927SAndroid Build Coastguard Worker    DXIL_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN = 4,
347*61046927SAndroid Build Coastguard Worker };
348*61046927SAndroid Build Coastguard Worker 
349*61046927SAndroid Build Coastguard Worker enum dxil_signature_element_extended_properties {
350*61046927SAndroid Build Coastguard Worker    DXIL_SIGNATURE_ELEMENT_OUTPUT_STREAM = 0,
351*61046927SAndroid Build Coastguard Worker    DXIL_SIGNATURE_ELEMENT_GLOBAL_SYMBOL = 1,
352*61046927SAndroid Build Coastguard Worker    DXIL_SIGNATURE_ELEMENT_DYNAMIC_INDEX_COMPONENT_MASK = 2,
353*61046927SAndroid Build Coastguard Worker    DXIL_SIGNATURE_ELEMENT_USAGE_COMPONENT_MASK = 3,
354*61046927SAndroid Build Coastguard Worker };
355*61046927SAndroid Build Coastguard Worker 
356*61046927SAndroid Build Coastguard Worker enum dxil_quad_op_kind {
357*61046927SAndroid Build Coastguard Worker    QUAD_READ_ACROSS_X = 0,
358*61046927SAndroid Build Coastguard Worker    QUAD_READ_ACROSS_Y = 1,
359*61046927SAndroid Build Coastguard Worker    QUAD_READ_ACROSS_DIAGONAL = 2,
360*61046927SAndroid Build Coastguard Worker };
361*61046927SAndroid Build Coastguard Worker 
362*61046927SAndroid Build Coastguard Worker enum dxil_wave_op_kind {
363*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_OP_SUM = 0,
364*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_OP_PRODUCT = 1,
365*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_OP_MIN = 2,
366*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_OP_MAX = 3,
367*61046927SAndroid Build Coastguard Worker };
368*61046927SAndroid Build Coastguard Worker 
369*61046927SAndroid Build Coastguard Worker enum dxil_wave_bit_op_kind {
370*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_BIT_OP_AND = 0,
371*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_BIT_OP_OR = 1,
372*61046927SAndroid Build Coastguard Worker    DXIL_WAVE_BIT_OP_XOR = 2,
373*61046927SAndroid Build Coastguard Worker };
374*61046927SAndroid Build Coastguard Worker 
375*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
376*61046927SAndroid Build Coastguard Worker extern "C" {
377*61046927SAndroid Build Coastguard Worker #endif
378*61046927SAndroid Build Coastguard Worker 
379*61046927SAndroid Build Coastguard Worker struct glsl_type;
380*61046927SAndroid Build Coastguard Worker enum glsl_sampler_dim;
381*61046927SAndroid Build Coastguard Worker 
382*61046927SAndroid Build Coastguard Worker enum dxil_component_type dxil_get_comp_type(const struct glsl_type *type);
383*61046927SAndroid Build Coastguard Worker 
384*61046927SAndroid Build Coastguard Worker enum dxil_prog_sig_comp_type dxil_get_prog_sig_comp_type(const struct glsl_type *type);
385*61046927SAndroid Build Coastguard Worker enum dxil_component_type dxil_get_comp_type_from_prog_sig_type(enum dxil_prog_sig_comp_type type);
386*61046927SAndroid Build Coastguard Worker 
387*61046927SAndroid Build Coastguard Worker enum dxil_resource_kind dxil_sampler_dim_to_resource_kind(enum glsl_sampler_dim dim, bool is_array);
388*61046927SAndroid Build Coastguard Worker enum dxil_resource_kind dxil_get_resource_kind(const struct glsl_type *type);
389*61046927SAndroid Build Coastguard Worker 
390*61046927SAndroid Build Coastguard Worker enum dxil_primitive_topology dxil_get_primitive_topology(enum mesa_prim topology);
391*61046927SAndroid Build Coastguard Worker 
392*61046927SAndroid Build Coastguard Worker enum dxil_input_primitive dxil_get_input_primitive(enum mesa_prim primitive);
393*61046927SAndroid Build Coastguard Worker 
394*61046927SAndroid Build Coastguard Worker const char *dxil_overload_suffix( enum overload_type overload);
395*61046927SAndroid Build Coastguard Worker 
396*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
397*61046927SAndroid Build Coastguard Worker }
398*61046927SAndroid Build Coastguard Worker #endif
399*61046927SAndroid Build Coastguard Worker 
400*61046927SAndroid Build Coastguard Worker 
401*61046927SAndroid Build Coastguard Worker #endif // DXIL_ENUMS_H
402