</enum>
<reg32 offset="0" name="0" type="vgt_draw_initiator_a4xx"/>
<reg32 offset="1" name="1">
- <bitfield name="OPCODE" low="0" high="3" type="a6xx_draw_indirect_opcode"/>
+ <bitfield name="OPCODE" low="0" high="3" type="a6xx_draw_indirect_opcode" addvariant="yes"/>
<doc>
DST_OFF same as in CP_LOAD_STATE6 - vec4 VS const at this offset will
be updated for each draw to {draw_id, first_vertex, first_instance, 0}
</doc>
<bitfield name="DST_OFF" low="8" high="21" type="hex"/>
</reg32>
- <reg32 offset="2" name="2">
- <bitfield name="DRAW_COUNT" low="0" high="31" type="hex"/>
- </reg32>
- <doc>for opcode 2: indirect address. for opcode 4: index address</doc>
- <reg64 offset="3" name="ADDRESS_0" type="address"/>
- <reg32 offset="5" name="5">
- <doc>for opcode 2: stride. for opcode 4: max_indices</doc>
- <bitfield name="PARAM_0" low="0" high="31" type="hex"/>
- </reg32>
- <doc>last 3 dwords only for opcode 4</doc>
- <reg64 offset="6" name="INDIRECT" type="address"/>
- <reg32 offset="8" name="8">
- <bitfield name="STRIDE" low="0" high="31" type="hex"/>
- </reg32>
+ <reg32 offset="2" name="DRAW_COUNT" type="uint"/>
+ <stripe varset="a6xx_draw_indirect_opcode" variants="INDIRECT_OP_NORMAL">
+ <reg64 offset="3" name="INDIRECT" type="address"/>
+ <reg32 offset="5" name="STRIDE" type="uint"/>
+ </stripe>
+ <stripe varset="a6xx_draw_indirect_opcode" variants="INDIRECT_OP_INDEXED">
+ <reg64 offset="3" name="INDEX" type="address"/>
+ <reg32 offset="5" name="MAX_INDICES" type="uint"/>
+ <reg64 offset="6" name="INDIRECT" type="address"/>
+ <reg32 offset="8" name="STRIDE" type="uint"/>
+ </stripe>
</domain>
<domain name="CP_SET_DRAW_STATE" width="32" varset="chip" variants="A4XX-">