xref: /freebsd/contrib/llvm-project/clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def (revision 700637cbb5e582861067a11aaca4d053546871d2)
1//===--- HLSLRootSignature.def - Tokens and Enum Database -------*- C++ -*-===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file defines the TokenKinds used in the Root Signature DSL. This
10// includes keywords, enums and a small subset of punctuators. Users of this
11// file must optionally #define the TOK, KEYWORD, ENUM or specific ENUM macros
12// to make use of this file.
13//
14//===----------------------------------------------------------------------===//
15
16#ifndef TOK
17#define TOK(X, SPELLING)
18#endif
19#ifndef PUNCTUATOR
20#define PUNCTUATOR(X,Y) TOK(pu_ ## X, Y)
21#endif
22#ifndef KEYWORD
23#define KEYWORD(X) TOK(kw_ ## X, #X)
24#endif
25#ifndef ENUM
26#define ENUM(NAME, LIT) TOK(en_ ## NAME, LIT)
27#endif
28
29// Defines the various types of enum
30#ifndef ROOT_FLAG_ENUM
31#define ROOT_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
32#endif
33#ifndef UNBOUNDED_ENUM
34#define UNBOUNDED_ENUM(NAME, LIT) ENUM(NAME, LIT)
35#endif
36#ifndef DESCRIPTOR_RANGE_OFFSET_ENUM
37#define DESCRIPTOR_RANGE_OFFSET_ENUM(NAME, LIT) ENUM(NAME, LIT)
38#endif
39#ifndef ROOT_DESCRIPTOR_FLAG_ENUM
40#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
41#endif
42// Note: ON denotes that the flag is unique from the above Root Descriptor
43//  Flags. This is required to avoid token kind enum conflicts.
44#ifndef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
45#define DESCRIPTOR_RANGE_FLAG_ENUM_OFF(NAME, LIT)
46#endif
47#ifndef DESCRIPTOR_RANGE_FLAG_ENUM_ON
48#define DESCRIPTOR_RANGE_FLAG_ENUM_ON(NAME, LIT) ENUM(NAME, LIT)
49#endif
50#ifndef DESCRIPTOR_RANGE_FLAG_ENUM
51#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON) DESCRIPTOR_RANGE_FLAG_ENUM_##ON(NAME, LIT)
52#endif
53#ifndef SHADER_VISIBILITY_ENUM
54#define SHADER_VISIBILITY_ENUM(NAME, LIT) ENUM(NAME, LIT)
55#endif
56#ifndef FILTER_ENUM
57#define FILTER_ENUM(NAME, LIT) ENUM(NAME, LIT)
58#endif
59#ifndef TEXTURE_ADDRESS_MODE_ENUM
60#define TEXTURE_ADDRESS_MODE_ENUM(NAME, LIT) ENUM(NAME, LIT)
61#endif
62#ifndef COMPARISON_FUNC_ENUM
63#define COMPARISON_FUNC_ENUM(NAME, LIT) ENUM(NAME, LIT)
64#endif
65#ifndef STATIC_BORDER_COLOR_ENUM
66#define STATIC_BORDER_COLOR_ENUM(NAME, LIT) ENUM(NAME, LIT)
67#endif
68
69// General Tokens:
70TOK(invalid, "invalid identifier")
71TOK(end_of_stream, "end of stream")
72TOK(int_literal, "integer literal")
73TOK(float_literal, "float literal")
74
75// Register Tokens:
76TOK(bReg, "b register")
77TOK(tReg, "t register")
78TOK(uReg, "u register")
79TOK(sReg, "s register")
80
81// Punctuators:
82PUNCTUATOR(l_paren, '(')
83PUNCTUATOR(r_paren, ')')
84PUNCTUATOR(comma,   ',')
85PUNCTUATOR(or,      '|')
86PUNCTUATOR(equal,   '=')
87PUNCTUATOR(plus,    '+')
88PUNCTUATOR(minus,   '-')
89
90// RootElement Keywords:
91KEYWORD(RootSignature) // used only for diagnostic messaging
92KEYWORD(RootFlags)
93KEYWORD(DescriptorTable)
94KEYWORD(RootConstants)
95KEYWORD(StaticSampler)
96
97// RootConstants Keywords:
98KEYWORD(num32BitConstants)
99
100// DescriptorTable Keywords:
101KEYWORD(CBV)
102KEYWORD(SRV)
103KEYWORD(UAV)
104KEYWORD(Sampler)
105
106// General Parameter Keywords:
107KEYWORD(space)
108KEYWORD(visibility)
109KEYWORD(flags)
110
111// View Parameter Keywords:
112KEYWORD(numDescriptors)
113KEYWORD(offset)
114
115// StaticSampler Keywords:
116KEYWORD(filter)
117KEYWORD(mipLODBias)
118KEYWORD(addressU)
119KEYWORD(addressV)
120KEYWORD(addressW)
121KEYWORD(maxAnisotropy)
122KEYWORD(comparisonFunc)
123KEYWORD(borderColor)
124KEYWORD(minLOD)
125KEYWORD(maxLOD)
126
127// Unbounded Enum:
128UNBOUNDED_ENUM(unbounded, "unbounded")
129
130// Descriptor Range Offset Enum:
131DESCRIPTOR_RANGE_OFFSET_ENUM(DescriptorRangeOffsetAppend, "DESCRIPTOR_RANGE_OFFSET_APPEND")
132
133// Root Flag Enums:
134ROOT_FLAG_ENUM(AllowInputAssemblerInputLayout, "ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT")
135ROOT_FLAG_ENUM(DenyVertexShaderRootAccess, "DENY_VERTEX_SHADER_ROOT_ACCESS")
136ROOT_FLAG_ENUM(DenyHullShaderRootAccess, "DENY_HULL_SHADER_ROOT_ACCESS")
137ROOT_FLAG_ENUM(DenyDomainShaderRootAccess, "DENY_DOMAIN_SHADER_ROOT_ACCESS")
138ROOT_FLAG_ENUM(DenyGeometryShaderRootAccess, "DENY_GEOMETRY_SHADER_ROOT_ACCESS")
139ROOT_FLAG_ENUM(DenyPixelShaderRootAccess, "DENY_PIXEL_SHADER_ROOT_ACCESS")
140ROOT_FLAG_ENUM(DenyAmplificationShaderRootAccess, "DENY_AMPLIFICATION_SHADER_ROOT_ACCESS")
141ROOT_FLAG_ENUM(DenyMeshShaderRootAccess, "DENY_MESH_SHADER_ROOT_ACCESS")
142ROOT_FLAG_ENUM(AllowStreamOutput, "ALLOW_STREAM_OUTPUT")
143ROOT_FLAG_ENUM(LocalRootSignature, "LOCAL_ROOT_SIGNATURE")
144ROOT_FLAG_ENUM(CBVSRVUAVHeapDirectlyIndexed, "CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED")
145ROOT_FLAG_ENUM(SamplerHeapDirectlyIndexed , "SAMPLER_HEAP_DIRECTLY_INDEXED")
146
147// Root Descriptor Flag Enums:
148ROOT_DESCRIPTOR_FLAG_ENUM(DataVolatile, "DATA_VOLATILE")
149ROOT_DESCRIPTOR_FLAG_ENUM(DataStaticWhileSetAtExecute, "DATA_STATIC_WHILE_SET_AT_EXECUTE")
150ROOT_DESCRIPTOR_FLAG_ENUM(DataStatic, "DATA_STATIC")
151
152// Descriptor Range Flag Enums:
153DESCRIPTOR_RANGE_FLAG_ENUM(DescriptorsVolatile, "DESCRIPTORS_VOLATILE", ON)
154DESCRIPTOR_RANGE_FLAG_ENUM(DataVolatile, "DATA_VOLATILE", OFF)
155DESCRIPTOR_RANGE_FLAG_ENUM(DataStaticWhileSetAtExecute, "DATA_STATIC_WHILE_SET_AT_EXECUTE", OFF)
156DESCRIPTOR_RANGE_FLAG_ENUM(DataStatic, "DATA_STATIC", OFF)
157DESCRIPTOR_RANGE_FLAG_ENUM(DescriptorsStaticKeepingBufferBoundsChecks, "DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS", ON)
158
159// Shader Visibiliy Enums:
160SHADER_VISIBILITY_ENUM(All, "SHADER_VISIBILITY_ALL")
161SHADER_VISIBILITY_ENUM(Vertex, "SHADER_VISIBILITY_VERTEX")
162SHADER_VISIBILITY_ENUM(Hull, "SHADER_VISIBILITY_HULL")
163SHADER_VISIBILITY_ENUM(Domain, "SHADER_VISIBILITY_DOMAIN")
164SHADER_VISIBILITY_ENUM(Geometry, "SHADER_VISIBILITY_GEOMETRY")
165SHADER_VISIBILITY_ENUM(Pixel, "SHADER_VISIBILITY_PIXEL")
166SHADER_VISIBILITY_ENUM(Amplification, "SHADER_VISIBILITY_AMPLIFICATION")
167SHADER_VISIBILITY_ENUM(Mesh, "SHADER_VISIBILITY_MESH")
168
169// Filter Enums:
170FILTER_ENUM(MinMagMipPoint, "FILTER_MIN_MAG_MIP_POINT")
171FILTER_ENUM(MinMagPointMipLinear, "FILTER_MIN_MAG_POINT_MIP_LINEAR")
172FILTER_ENUM(MinPointMagLinearMipPoint, "FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT")
173FILTER_ENUM(MinPointMagMipLinear, "FILTER_MIN_POINT_MAG_MIP_LINEAR")
174FILTER_ENUM(MinLinearMagMipPoint, "FILTER_MIN_LINEAR_MAG_MIP_POINT")
175FILTER_ENUM(MinLinearMagPointMipLinear, "FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
176FILTER_ENUM(MinMagLinearMipPoint, "FILTER_MIN_MAG_LINEAR_MIP_POINT")
177FILTER_ENUM(MinMagMipLinear, "FILTER_MIN_MAG_MIP_LINEAR")
178FILTER_ENUM(Anisotropic, "FILTER_ANISOTROPIC")
179FILTER_ENUM(ComparisonMinMagMipPoint, "FILTER_COMPARISON_MIN_MAG_MIP_POINT")
180FILTER_ENUM(ComparisonMinMagPointMipLinear, "FILTER_COMPARISON_MIN_MAG_POINT_MIP_LINEAR")
181FILTER_ENUM(ComparisonMinPointMagLinearMipPoint, "FILTER_COMPARISON_MIN_POINT_MAG_LINEAR_MIP_POINT")
182FILTER_ENUM(ComparisonMinPointMagMipLinear, "FILTER_COMPARISON_MIN_POINT_MAG_MIP_LINEAR")
183FILTER_ENUM(ComparisonMinLinearMagMipPoint, "FILTER_COMPARISON_MIN_LINEAR_MAG_MIP_POINT")
184FILTER_ENUM(ComparisonMinLinearMagPointMipLinear, "FILTER_COMPARISON_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
185FILTER_ENUM(ComparisonMinMagLinearMipPoint, "FILTER_COMPARISON_MIN_MAG_LINEAR_MIP_POINT")
186FILTER_ENUM(ComparisonMinMagMipLinear, "FILTER_COMPARISON_MIN_MAG_MIP_LINEAR")
187FILTER_ENUM(ComparisonAnisotropic, "FILTER_COMPARISON_ANISOTROPIC")
188FILTER_ENUM(MinimumMinMagMipPoint, "FILTER_MINIMUM_MIN_MAG_MIP_POINT")
189FILTER_ENUM(MinimumMinMagPointMipLinear, "FILTER_MINIMUM_MIN_MAG_POINT_MIP_LINEAR")
190FILTER_ENUM(MinimumMinPointMagLinearMipPoint, "FILTER_MINIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT")
191FILTER_ENUM(MinimumMinPointMagMipLinear, "FILTER_MINIMUM_MIN_POINT_MAG_MIP_LINEAR")
192FILTER_ENUM(MinimumMinLinearMagMipPoint, "FILTER_MINIMUM_MIN_LINEAR_MAG_MIP_POINT")
193FILTER_ENUM(MinimumMinLinearMagPointMipLinear, "FILTER_MINIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
194FILTER_ENUM(MinimumMinMagLinearMipPoint, "FILTER_MINIMUM_MIN_MAG_LINEAR_MIP_POINT")
195FILTER_ENUM(MinimumMinMagMipLinear, "FILTER_MINIMUM_MIN_MAG_MIP_LINEAR")
196FILTER_ENUM(MinimumAnisotropic, "FILTER_MINIMUM_ANISOTROPIC")
197FILTER_ENUM(MaximumMinMagMipPoint, "FILTER_MAXIMUM_MIN_MAG_MIP_POINT")
198FILTER_ENUM(MaximumMinMagPointMipLinear, "FILTER_MAXIMUM_MIN_MAG_POINT_MIP_LINEAR")
199FILTER_ENUM(MaximumMinPointMagLinearMipPoint, "FILTER_MAXIMUM_MIN_POINT_MAG_LINEAR_MIP_POINT")
200FILTER_ENUM(MaximumMinPointMagMipLinear, "FILTER_MAXIMUM_MIN_POINT_MAG_MIP_LINEAR")
201FILTER_ENUM(MaximumMinLinearMagMipPoint, "FILTER_MAXIMUM_MIN_LINEAR_MAG_MIP_POINT")
202FILTER_ENUM(MaximumMinLinearMagPointMipLinear, "FILTER_MAXIMUM_MIN_LINEAR_MAG_POINT_MIP_LINEAR")
203FILTER_ENUM(MaximumMinMagLinearMipPoint, "FILTER_MAXIMUM_MIN_MAG_LINEAR_MIP_POINT")
204FILTER_ENUM(MaximumMinMagMipLinear, "FILTER_MAXIMUM_MIN_MAG_MIP_LINEAR")
205FILTER_ENUM(MaximumAnisotropic, "FILTER_MAXIMUM_ANISOTROPIC")
206
207// Texture Address Mode Enums:
208TEXTURE_ADDRESS_MODE_ENUM(Wrap, "TEXTURE_ADDRESS_WRAP")
209TEXTURE_ADDRESS_MODE_ENUM(Mirror, "TEXTURE_ADDRESS_MIRROR")
210TEXTURE_ADDRESS_MODE_ENUM(Clamp, "TEXTURE_ADDRESS_CLAMP")
211TEXTURE_ADDRESS_MODE_ENUM(Border, "TEXTURE_ADDRESS_BORDER")
212TEXTURE_ADDRESS_MODE_ENUM(MirrorOnce, "TEXTURE_ADDRESS_MIRRORONCE")
213
214// Comparison Func Enums:
215COMPARISON_FUNC_ENUM(Never, "COMPARISON_NEVER")
216COMPARISON_FUNC_ENUM(Less, "COMPARISON_LESS")
217COMPARISON_FUNC_ENUM(Equal, "COMPARISON_EQUAL")
218COMPARISON_FUNC_ENUM(LessEqual, "COMPARISON_LESS_EQUAL")
219COMPARISON_FUNC_ENUM(Greater, "COMPARISON_GREATER")
220COMPARISON_FUNC_ENUM(NotEqual, "COMPARISON_NOT_EQUAL")
221COMPARISON_FUNC_ENUM(GreaterEqual, "COMPARISON_GREATER_EQUAL")
222COMPARISON_FUNC_ENUM(Always, "COMPARISON_ALWAYS")
223
224// Static Border Color Enums:
225STATIC_BORDER_COLOR_ENUM(TransparentBlack, "STATIC_BORDER_COLOR_TRANSPARENT_BLACK")
226STATIC_BORDER_COLOR_ENUM(OpaqueBlack, "STATIC_BORDER_COLOR_OPAQUE_BLACK")
227STATIC_BORDER_COLOR_ENUM(OpaqueWhite, "STATIC_BORDER_COLOR_OPAQUE_WHITE")
228STATIC_BORDER_COLOR_ENUM(OpaqueBlackUint, "STATIC_BORDER_COLOR_OPAQUE_BLACK_UINT")
229STATIC_BORDER_COLOR_ENUM(OpaqueWhiteUint, "STATIC_BORDER_COLOR_OPAQUE_WHITE_UINT")
230
231#undef STATIC_BORDER_COLOR_ENUM
232#undef COMPARISON_FUNC_ENUM
233#undef TEXTURE_ADDRESS_MODE_ENUM
234#undef FILTER_ENUM
235#undef SHADER_VISIBILITY_ENUM
236#undef DESCRIPTOR_RANGE_FLAG_ENUM
237#undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
238#undef DESCRIPTOR_RANGE_FLAG_ENUM_ON
239#undef ROOT_DESCRIPTOR_FLAG_ENUM
240#undef ROOT_FLAG_ENUM
241#undef DESCRIPTOR_RANGE_OFFSET_ENUM
242#undef UNBOUNDED_ENUM
243#undef ENUM
244#undef KEYWORD
245#undef PUNCTUATOR
246#undef TOK
247