@@ -51,6 +51,25 @@ def DXSA_GlobalFlagsAttr :
5151 let assemblyFormat = "`<` $value `>`";
5252}
5353
54+ def DXSA_TessellatorDomain_Isoline : I32EnumAttrCase<"domain_isoline", 1>;
55+ def DXSA_TessellatorDomain_Tri : I32EnumAttrCase<"domain_tri", 2>;
56+ def DXSA_TessellatorDomain_Quad : I32EnumAttrCase<"domain_quad", 3>;
57+
58+ def DXSA_TessellatorDomain : I32EnumAttr<
59+ "TessellatorDomain", "tessellator domain", [
60+ DXSA_TessellatorDomain_Isoline,
61+ DXSA_TessellatorDomain_Tri,
62+ DXSA_TessellatorDomain_Quad
63+ ]> {
64+ let cppNamespace = "::mlir::dxsa";
65+ let genSpecializedAttr = 0;
66+ }
67+
68+ def DXSA_TessellatorDomainAttr :
69+ EnumAttr<DXSADialect, DXSA_TessellatorDomain, "tessellator_domain"> {
70+ let assemblyFormat = "$value";
71+ }
72+
5473//===----------------------------------------------------------------------===//
5574// DXSA op definitions
5675//===----------------------------------------------------------------------===//
@@ -196,4 +215,21 @@ def DXSA_DclOutputControlPointCount :
196215 let assemblyFormat = [{ $count attr-dict }];
197216}
198217
218+ def DXSA_DclTessellatorDomain : DXSA_Op<"dcl_tessellator_domain"> {
219+ let summary = "declares the tessellator domain";
220+ let description = [{
221+ The `dxsa.dcl_tessellator_domain` operation declares the tessellator
222+ domain.
223+
224+ Example:
225+
226+ ```mlir
227+ dxsa.dcl_tessellator_domain domain_quad
228+ ```
229+ }];
230+
231+ let arguments = (ins DXSA_TessellatorDomainAttr:$domain);
232+ let assemblyFormat = "$domain attr-dict";
233+ }
234+
199235#endif // DXSA_OPS
0 commit comments