@@ -62,6 +62,25 @@ def DXSA_GlobalFlagsAttr :
6262 let assemblyFormat = "`<` $value `>`";
6363}
6464
65+ def DXSA_TessellatorDomain_Isoline : I32EnumAttrCase<"domain_isoline", 1>;
66+ def DXSA_TessellatorDomain_Tri : I32EnumAttrCase<"domain_tri", 2>;
67+ def DXSA_TessellatorDomain_Quad : I32EnumAttrCase<"domain_quad", 3>;
68+
69+ def DXSA_TessellatorDomain : I32EnumAttr<
70+ "TessellatorDomain", "tessellator domain", [
71+ DXSA_TessellatorDomain_Isoline,
72+ DXSA_TessellatorDomain_Tri,
73+ DXSA_TessellatorDomain_Quad
74+ ]> {
75+ let cppNamespace = "::mlir::dxsa";
76+ let genSpecializedAttr = 0;
77+ }
78+
79+ def DXSA_TessellatorDomainAttr :
80+ EnumAttr<DXSADialect, DXSA_TessellatorDomain, "tessellator_domain"> {
81+ let assemblyFormat = "$value";
82+ }
83+
6584//===----------------------------------------------------------------------===//
6685// DXSA op definitions
6786//===----------------------------------------------------------------------===//
@@ -158,4 +177,21 @@ def DXSA_DclTemps : DXSA_Op<"dcl_temps"> {
158177 let assemblyFormat = [{ $count attr-dict }];
159178}
160179
180+ def DXSA_DclTessellatorDomain : DXSA_Op<"dcl_tessellator_domain"> {
181+ let summary = "declares the tessellator domain";
182+ let description = [{
183+ The `dxsa.dcl_tessellator_domain` operation declares the tessellator
184+ domain.
185+
186+ Example:
187+
188+ ```mlir
189+ dxsa.dcl_tessellator_domain domain_quad
190+ ```
191+ }];
192+
193+ let arguments = (ins DXSA_TessellatorDomainAttr:$domain);
194+ let assemblyFormat = "$domain attr-dict";
195+ }
196+
161197#endif // DXSA_OPS
0 commit comments