<field name="Workgroups X shift" size="6" start="1:10" type="uint"/>
<field name="Workgroups Y shift" size="6" start="1:16" type="uint"/>
<field name="Workgroups Z shift" size="6" start="1:22" type="uint"/>
- <field name="Unknown shift" size="4" start="1:28" type="uint"/>
+ <field name="Thread group split" size="4" start="1:28" type="uint" prefix="MALI_SPLIT">
+ <value name="Min efficient" value="2"/>
+ </field>
</struct>
<enum name="Point Size Array Format">
if (quirk_graphics && (num_z <= 1))
cfg.workgroups_z_shift = 32;
- /* Quirk: for graphics, >= 2. For compute, 2 without barriers
- * but equal to workgroups_x_shift with barriers */
+ /* For graphics, set to the minimum efficient value. For
+ * compute, must equal the workgroup X shift for barriers to
+ * function correctly */
- cfg.unknown_shift = quirk_graphics ? 2 : cfg.workgroups_x_shift;
+ cfg.thread_group_split = quirk_graphics ?
+ MALI_SPLIT_MIN_EFFICIENT : cfg.workgroups_x_shift;
}
}