Skip to content

Commit 85e92c4

Browse files
committed
pre-req: define missing lexer tokens for flags
1 parent f801180 commit 85e92c4

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
@@ -73,6 +76,7 @@ PUNCTUATOR(minus, '-')
7376

7477
// RootElement Keywords:
7578
KEYWORD(RootSignature) // used only for diagnostic messaging
79+
KEYWORD(RootFlags)
7680
KEYWORD(DescriptorTable)
7781
KEYWORD(RootConstants)
7882

@@ -100,6 +104,20 @@ UNBOUNDED_ENUM(unbounded, "unbounded")
100104
// Descriptor Range Offset Enum:
101105
DESCRIPTOR_RANGE_OFFSET_ENUM(DescriptorRangeOffsetAppend, "DESCRIPTOR_RANGE_OFFSET_APPEND")
102106

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

clang/unittests/Lex/LexHLSLRootSignatureTest.cpp

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
8787
8888
RootSignature
8989
90-
DescriptorTable RootConstants
90+
RootFlags DescriptorTable RootConstants
9191
9292
num32BitConstants
9393
@@ -98,6 +98,19 @@ TEST_F(LexHLSLRootSignatureTest, ValidLexAllTokensTest) {
9898
unbounded
9999
DESCRIPTOR_RANGE_OFFSET_APPEND
100100
101+
allow_input_assembler_input_layout
102+
deny_vertex_shader_root_access
103+
deny_hull_shader_root_access
104+
deny_domain_shader_root_access
105+
deny_geometry_shader_root_access
106+
deny_pixel_shader_root_access
107+
deny_amplification_shader_root_access
108+
deny_mesh_shader_root_access
109+
allow_stream_output
110+
local_root_signature
111+
cbv_srv_uav_heap_directly_indexed
112+
sampler_heap_directly_indexed
113+
101114
DATA_VOLATILE
102115
DATA_STATIC_WHILE_SET_AT_EXECUTE
103116
DATA_STATIC

0 commit comments

Comments
 (0)