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:
3653TOK (invalid)
@@ -52,9 +69,51 @@ PUNCTUATOR(equal, '=')
5269// RootElement Keywords:
5370KEYWORD(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:
5688DESCRIPTOR_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
0 commit comments