SOL_RESET happens before bo execution. It should not be observed by the
commands that are already in the bo.
Move the code out of the pipeline now that it submits.
bool success;
int max_len, before_space;
+ /* on GEN7+, we need SOL_RESET to reset the SO write offsets */
+ if (ilo_dev_gen(hw3d->pipeline->dev) >= ILO_GEN(7) &&
+ (vec->dirty & ILO_DIRTY_SO) && vec->so.enabled &&
+ !vec->so.append_bitmask) {
+ ilo_cp_submit(hw3d->cp, "SOL_RESET");
+ ilo_cp_set_one_off_flags(hw3d->cp, INTEL_EXEC_GEN7_SOL_RESET);
+ }
+
ilo_3d_own_render_ring(hw3d);
if (!hw3d->new_batch) {
{
bool success;
- /* on GEN7+, we need SOL_RESET to reset the SO write offsets */
- if (ilo_dev_gen(p->dev) >= ILO_GEN(7) && (vec->dirty & ILO_DIRTY_SO) &&
- vec->so.enabled && !vec->so.append_bitmask)
- ilo_cp_set_one_off_flags(p->cp, INTEL_EXEC_GEN7_SOL_RESET);
-
while (true) {
struct ilo_builder_snapshot snapshot;