Skip to content

Commit dc784ff

Browse files
committedJan 28, 2025·
Add lexing for remaining DescriptorTable keywords and enums
1 parent c5d3881 commit dc784ff

File tree

2 files changed

+78
-0
lines changed

2 files changed

+78
-0
lines changed
 

Diff for: ‎clang/include/clang/Parse/HLSLRootSignatureTokenKinds.def

+59
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,23 @@
3131
#ifndef DESCRIPTOR_RANGE_OFFSET_ENUM
3232
#define DESCRIPTOR_RANGE_OFFSET_ENUM(NAME, LIT) ENUM(NAME, LIT)
3333
#endif
34+
#ifndef ROOT_DESCRIPTOR_FLAG_ENUM
35+
#define ROOT_DESCRIPTOR_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
36+
#endif
37+
// Note: ON denotes that the flag is unique from the above Root Descriptor
38+
// Flags. This is required to avoid token kind enum conflicts.
39+
#ifndef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
40+
#define DESCRIPTOR_RANGE_FLAG_ENUM_OFF(NAME, LIT)
41+
#endif
42+
#ifndef DESCRIPTOR_RANGE_FLAG_ENUM_ON
43+
#define DESCRIPTOR_RANGE_FLAG_ENUM_ON(NAME, LIT) ENUM(NAME, LIT)
44+
#endif
45+
#ifndef DESCRIPTOR_RANGE_FLAG_ENUM
46+
#define DESCRIPTOR_RANGE_FLAG_ENUM(NAME, LIT, ON) DESCRIPTOR_RANGE_FLAG_ENUM_##ON(NAME, LIT)
47+
#endif
48+
#ifndef SHADER_VISIBILITY_ENUM
49+
#define SHADER_VISIBILITY_ENUM(NAME, LIT) ENUM(NAME, LIT)
50+
#endif
3451

3552
// General Tokens:
3653
TOK(invalid)
@@ -52,9 +69,51 @@ PUNCTUATOR(equal, '=')
5269
// RootElement Keywords:
5370
KEYWORD(DescriptorTable)
5471

72+
// DescriptorTable Keywords:
73+
KEYWORD(CBV)
74+
KEYWORD(SRV)
75+
KEYWORD(UAV)
76+
KEYWORD(Sampler)
77+
78+
// General Parameter Keywords:
79+
KEYWORD(space)
80+
KEYWORD(visibility)
81+
KEYWORD(flags)
82+
83+
// View Parameter Keywords:
84+
KEYWORD(numDescriptors)
85+
KEYWORD(offset)
86+
5587
// Descriptor Range Offset Enum:
5688
DESCRIPTOR_RANGE_OFFSET_ENUM(DescriptorRangeOffsetAppend, "DESCRIPTOR_RANGE_OFFSET_APPEND")
5789

90+
// Root Descriptor Flag Enums:
91+
ROOT_DESCRIPTOR_FLAG_ENUM(DataVolatile, "DATA_VOLATILE")
92+
ROOT_DESCRIPTOR_FLAG_ENUM(DataStaticWhileSetAtExecute, "DATA_STATIC_WHILE_SET_AT_EXECUTE")
93+
ROOT_DESCRIPTOR_FLAG_ENUM(DataStatic, "DATA_STATIC")
94+
95+
// Descriptor Range Flag Enums:
96+
DESCRIPTOR_RANGE_FLAG_ENUM(DescriptorsVolatile, "DESCRIPTORS_VOLATILE", ON)
97+
DESCRIPTOR_RANGE_FLAG_ENUM(DataVolatile, "DATA_VOLATILE", OFF)
98+
DESCRIPTOR_RANGE_FLAG_ENUM(DataStaticWhileSetAtExecute, "DATA_STATIC_WHILE_SET_AT_EXECUTE", OFF)
99+
DESCRIPTOR_RANGE_FLAG_ENUM(DataStatic, "DATA_STATIC", OFF)
100+
DESCRIPTOR_RANGE_FLAG_ENUM(DescriptorsStaticKeepingBufferBoundsChecks, "DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS", ON)
101+
102+
// Shader Visibiliy Enums:
103+
SHADER_VISIBILITY_ENUM(All, "SHADER_VISIBILITY_ALL")
104+
SHADER_VISIBILITY_ENUM(Vertex, "SHADER_VISIBILITY_VERTEX")
105+
SHADER_VISIBILITY_ENUM(Hull, "SHADER_VISIBILITY_HULL")
106+
SHADER_VISIBILITY_ENUM(Domain, "SHADER_VISIBILITY_DOMAIN")
107+
SHADER_VISIBILITY_ENUM(Geometry, "SHADER_VISIBILITY_GEOMETRY")
108+
SHADER_VISIBILITY_ENUM(Pixel, "SHADER_VISIBILITY_PIXEL")
109+
SHADER_VISIBILITY_ENUM(Amplification, "SHADER_VISIBILITY_AMPLIFICATION")
110+
SHADER_VISIBILITY_ENUM(Mesh, "SHADER_VISIBILITY_MESH")
111+
112+
#undef SHADER_VISIBILITY_ENUM
113+
#undef DESCRIPTOR_RANGE_FLAG_ENUM
114+
#undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
115+
#undef DESCRIPTOR_RANGE_FLAG_ENUM_ON
116+
#undef ROOT_DESCRIPTOR_FLAG_ENUM
58117
#undef DESCRIPTOR_RANGE_OFFSET_ENUM
59118
#undef ENUM
60119
#undef KEYWORD

Diff for: ‎clang/unittests/Parse/ParseHLSLRootSignatureTest.cpp

+19
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,26 @@ TEST_F(ParseHLSLRootSignatureTest, ValidLexAllTokensTest) {
150150
151151
DescriptorTable
152152
153+
CBV SRV UAV Sampler
154+
space visibility flags
155+
numDescriptors offset
156+
153157
DESCRIPTOR_RANGE_OFFSET_APPEND
158+
159+
DATA_VOLATILE
160+
DATA_STATIC_WHILE_SET_AT_EXECUTE
161+
DATA_STATIC
162+
DESCRIPTORS_VOLATILE
163+
DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
164+
165+
shader_visibility_all
166+
shader_visibility_vertex
167+
shader_visibility_hull
168+
shader_visibility_domain
169+
shader_visibility_geometry
170+
shader_visibility_pixel
171+
shader_visibility_amplification
172+
shader_visibility_mesh
154173
)cc";
155174

156175
TrivialModuleLoader ModLoader;

0 commit comments

Comments
 (0)