@@ -18,37 +18,26 @@ include "mlir/IR/EnumAttr.td"
1818//===----------------------------------------------------------------------===//
1919
2020// Global shader flags for 'dcl_globalFlags' instruction.
21- def DXSA_GlobalFlags_None : I32BitEnumAttrCaseNone<"none">;
22- // D3D10_SB_GLOBAL_FLAG_REFACTORING_ALLOWED
23- def DXSA_GlobalFlags_RefactoringAllowed : I32BitEnumAttrCaseBit<"refactoringAllowed", 11>;
24- // D3D11_SB_GLOBAL_FLAG_ENABLE_DOUBLE_PRECISION_FLOAT_OPS
25- def DXSA_GlobalFlags_DoublePrecision : I32BitEnumAttrCaseBit<"enableDoublePrecision", 12>;
26- // D3D11_SB_GLOBAL_FLAG_FORCE_EARLY_DEPTH_STENCIL
27- def DXSA_GlobalFlags_ForceEarlyDepth : I32BitEnumAttrCaseBit<"forceEarlyDepth", 13>;
28- // D3D11_SB_GLOBAL_FLAG_ENABLE_RAW_AND_STRUCTURED_BUFFERS
29- def DXSA_GlobalFlags_RawStructured : I32BitEnumAttrCaseBit<"enableRawStructured", 14>;
30- // D3D11_1_SB_GLOBAL_FLAG_SKIP_OPTIMIZATION
31- def DXSA_GlobalFlags_SkipOptimization : I32BitEnumAttrCaseBit<"skipOptimization", 15>;
32- // D3D11_1_SB_GLOBAL_FLAG_ENABLE_MINIMUM_PRECISION
33- def DXSA_GlobalFlags_MinPrecision : I32BitEnumAttrCaseBit<"enableMinPrecision", 16>;
34- // D3D11_1_SB_GLOBAL_FLAG_ENABLE_DOUBLE_EXTENSIONS
35- def DXSA_GlobalFlags_DoubleExtensions : I32BitEnumAttrCaseBit<"enableDoubleExtensions", 17>;
36- // D3D11_1_SB_GLOBAL_FLAG_ENABLE_SHADER_EXTENSIONS
37- def DXSA_GlobalFlags_ShaderExtensions : I32BitEnumAttrCaseBit<"enableShaderExtensions", 18>;
38- // D3D12_SB_GLOBAL_FLAG_ALL_RESOURCES_BOUND
39- def DXSA_GlobalFlags_AllResourcesBound : I32BitEnumAttrCaseBit<"allResourcesBound", 19>;
21+ def DXSA_GlobalFlags_RefactoringAllowed : I32BitEnumAttrCaseBit<"refactoringAllowed", 0>;
22+ def DXSA_GlobalFlags_EnableDoublePrecisionFloatOps : I32BitEnumAttrCaseBit<"enableDoublePrecisionFloatOps", 1>;
23+ def DXSA_GlobalFlags_ForceEarlyDepthStencil : I32BitEnumAttrCaseBit<"forceEarlyDepthStencil", 2>;
24+ def DXSA_GlobalFlags_EnableRawAndStructuredBuffers : I32BitEnumAttrCaseBit<"enableRawAndStructuredBuffers", 3>;
25+ def DXSA_GlobalFlags_SkipOptimization : I32BitEnumAttrCaseBit<"skipOptimization", 4>;
26+ def DXSA_GlobalFlags_EnableMinimumPrecision : I32BitEnumAttrCaseBit<"enableMinimumPrecision", 5>;
27+ def DXSA_GlobalFlags_EnableDoubleExtensions : I32BitEnumAttrCaseBit<"enableDoubleExtensions", 6>;
28+ def DXSA_GlobalFlags_EnableShaderExtensions : I32BitEnumAttrCaseBit<"enableShaderExtensions", 7>;
29+ def DXSA_GlobalFlags_AllResourcesBound : I32BitEnumAttrCaseBit<"allResourcesBound", 8>;
4030
4131def DXSA_GlobalFlags : I32BitEnumAttr<
4232 "GlobalFlags", "global shader flags", [
43- DXSA_GlobalFlags_None,
4433 DXSA_GlobalFlags_RefactoringAllowed,
45- DXSA_GlobalFlags_DoublePrecision ,
46- DXSA_GlobalFlags_ForceEarlyDepth ,
47- DXSA_GlobalFlags_RawStructured ,
34+ DXSA_GlobalFlags_EnableDoublePrecisionFloatOps ,
35+ DXSA_GlobalFlags_ForceEarlyDepthStencil ,
36+ DXSA_GlobalFlags_EnableRawAndStructuredBuffers ,
4837 DXSA_GlobalFlags_SkipOptimization,
49- DXSA_GlobalFlags_MinPrecision ,
50- DXSA_GlobalFlags_DoubleExtensions ,
51- DXSA_GlobalFlags_ShaderExtensions ,
38+ DXSA_GlobalFlags_EnableMinimumPrecision ,
39+ DXSA_GlobalFlags_EnableDoubleExtensions ,
40+ DXSA_GlobalFlags_EnableShaderExtensions ,
5241 DXSA_GlobalFlags_AllResourcesBound
5342 ]> {
5443 let separator = "|";
@@ -146,9 +135,18 @@ def DXSA_Instruction : DXSA_Op<"instruction"> {
146135
147136def DXSA_DclGlobalFlags : DXSA_Op<"dcl_global_flags"> {
148137 let summary = "declares global shader flags";
138+ let description = [{
139+ The `dxsa.dcl_global_flags` operation declares a set of flags that
140+ affect the entire shader.
141+
142+ Example:
143+
144+ ```mlir
145+ dxsa.dcl_global_flags <refactoringAllowed|forceEarlyDepthStencil>
146+ ```
147+ }];
149148 let arguments = (ins DXSA_GlobalFlagsAttr:$flags);
150149 let assemblyFormat = "$flags attr-dict";
151- let hasVerifier = 1;
152150}
153151
154152def DXSA_DclTemps : DXSA_Op<"dcl_temps"> {
0 commit comments