Skip to content

Commit e1b21cc

Browse files
committed
pre-req: define missing lexer tokens for flags
1 parent 9be4d64 commit e1b21cc

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

clang/include/clang/Lex/HLSLRootSignatureTokenKinds.def

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
#endif
2828

2929
// Defines the various types of enum
30+
#ifndef ROOT_FLAG_ENUM
31+
#define ROOT_FLAG_ENUM(NAME, LIT) ENUM(NAME, LIT)
32+
#endif
3033
#ifndef UNBOUNDED_ENUM
3134
#define UNBOUNDED_ENUM(NAME, LIT) ENUM(NAME, LIT)
3235
#endif
@@ -74,6 +77,7 @@ PUNCTUATOR(minus, '-')
7477

7578
// RootElement Keywords:
7679
KEYWORD(RootSignature) // used only for diagnostic messaging
80+
KEYWORD(RootFlags)
7781
KEYWORD(DescriptorTable)
7882
KEYWORD(RootConstants)
7983

@@ -101,6 +105,20 @@ UNBOUNDED_ENUM(unbounded, "unbounded")
101105
// Descriptor Range Offset Enum:
102106
DESCRIPTOR_RANGE_OFFSET_ENUM(DescriptorRangeOffsetAppend, "DESCRIPTOR_RANGE_OFFSET_APPEND")
103107

108+
// Root Flag Enums:
109+
ROOT_FLAG_ENUM(AllowInputAssemblerInputLayout, "ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT")
110+
ROOT_FLAG_ENUM(DenyVertexShaderRootAccess, "DENY_VERTEX_SHADER_ROOT_ACCESS")
111+
ROOT_FLAG_ENUM(DenyHullShaderRootAccess, "DENY_HULL_SHADER_ROOT_ACCESS")
112+
ROOT_FLAG_ENUM(DenyDomainShaderRootAccess, "DENY_DOMAIN_SHADER_ROOT_ACCESS")
113+
ROOT_FLAG_ENUM(DenyGeometryShaderRootAccess, "DENY_GEOMETRY_SHADER_ROOT_ACCESS")
114+
ROOT_FLAG_ENUM(DenyPixelShaderRootAccess, "DENY_PIXEL_SHADER_ROOT_ACCESS")
115+
ROOT_FLAG_ENUM(DenyAmplificationShaderRootAccess, "DENY_AMPLIFICATION_SHADER_ROOT_ACCESS")
116+
ROOT_FLAG_ENUM(DenyMeshShaderRootAccess, "DENY_MESH_SHADER_ROOT_ACCESS")
117+
ROOT_FLAG_ENUM(AllowStreamOutput, "ALLOW_STREAM_OUTPUT")
118+
ROOT_FLAG_ENUM(LocalRootSignature, "LOCAL_ROOT_SIGNATURE")
119+
ROOT_FLAG_ENUM(CBVSRVUAVHeapDirectlyIndexed, "CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED")
120+
ROOT_FLAG_ENUM(SamplerHeapDirectlyIndexed , "SAMPLER_HEAP_DIRECTLY_INDEXED")
121+
104122
// Root Descriptor Flag Enums:
105123
ROOT_DESCRIPTOR_FLAG_ENUM(DataVolatile, "DATA_VOLATILE")
106124
ROOT_DESCRIPTOR_FLAG_ENUM(DataStaticWhileSetAtExecute, "DATA_STATIC_WHILE_SET_AT_EXECUTE")
@@ -128,6 +146,7 @@ SHADER_VISIBILITY_ENUM(Mesh, "SHADER_VISIBILITY_MESH")
128146
#undef DESCRIPTOR_RANGE_FLAG_ENUM_OFF
129147
#undef DESCRIPTOR_RANGE_FLAG_ENUM_ON
130148
#undef ROOT_DESCRIPTOR_FLAG_ENUM
149+
#undef ROOT_FLAG_ENUM
131150
#undef DESCRIPTOR_RANGE_OFFSET_ENUM
132151
#undef UNBOUNDED_ENUM
133152
#undef ENUM

clang/unittests/Lex/LexHLSLRootSignatureTest.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
128128
129129
RootSignature
130130
131-
DescriptorTable RootConstants
131+
RootFlags DescriptorTable RootConstants
132132
133133
num32BitConstants
134134
@@ -139,6 +139,19 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
139139
unbounded
140140
DESCRIPTOR_RANGE_OFFSET_APPEND
141141
142+
allow_input_assembler_input_layout
143+
deny_vertex_shader_root_access
144+
deny_hull_shader_root_access
145+
deny_domain_shader_root_access
146+
deny_geometry_shader_root_access
147+
deny_pixel_shader_root_access
148+
deny_amplification_shader_root_access
149+
deny_mesh_shader_root_access
150+
allow_stream_output
151+
local_root_signature
152+
cbv_srv_uav_heap_directly_indexed
153+
sampler_heap_directly_indexed
154+
142155
DATA_VOLATILE
143156
DATA_STATIC_WHILE_SET_AT_EXECUTE
144157
DATA_STATIC

0 commit comments

Comments
 (0)