@@ -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+
5473def DXSA_TessellatorOutputPrimitiveType_OutputPoint : I32EnumAttrCase<"output_point", 1>;
5574def DXSA_TessellatorOutputPrimitiveType_OutputLine : I32EnumAttrCase<"output_line", 2>;
5675def DXSA_TessellatorOutputPrimitiveType_OutputTriangleCw : I32EnumAttrCase<"output_triangle_cw", 3>;
@@ -238,6 +257,23 @@ def DXSA_DclOutputControlPointCount :
238257 let assemblyFormat = [{ $count attr-dict }];
239258}
240259
260+ def DXSA_DclTessellatorDomain : DXSA_Op<"dcl_tessellator_domain"> {
261+ let summary = "declares the tessellator domain";
262+ let description = [{
263+ The `dxsa.dcl_tessellator_domain` operation declares the tessellator
264+ domain.
265+
266+ Example:
267+
268+ ```mlir
269+ dxsa.dcl_tessellator_domain domain_quad
270+ ```
271+ }];
272+
273+ let arguments = (ins DXSA_TessellatorDomainAttr:$domain);
274+ let assemblyFormat = "$domain attr-dict";
275+ }
276+
241277def DXSA_DclTessellatorOutputPrimitive
242278 : DXSA_Op<"dcl_tessellator_output_primitive"> {
243279 let summary = "declares the tessellator output primitive type";
0 commit comments