This reverts commit
30570b262971c881366deab58caf8d8d48d7d79d.
As mentioned by Ilia Mirkin:
Please remove this one from your list of cherry-picked patches. While
it fixes real issues on nv30 (and probably the other generations too),
it appears to introduce some new ones on nvc0. I've figured out what's
causing it, but haven't figured out a proper fix. Not sure I'll be
able to before you do a release.
static inline bool
PUSH_SPACE(struct nouveau_pushbuf *push, uint32_t size)
{
- /* Provide a buffer so that fences always have room to be emitted */
- size += 8;
if (PUSH_AVAIL(push) < size)
return nouveau_pushbuf_space(push, size, 0, 0) == 0;
return true;
*sequence = ++screen->base.fence.sequence;
- assert(PUSH_AVAIL(push) >= 3);
- PUSH_DATA (push, NV30_3D_FENCE_OFFSET |
- (2 /* size */ << 18) | (7 /* subchan */ << 13));
+ BEGIN_NV04(push, NV30_3D(FENCE_OFFSET), 2);
PUSH_DATA (push, 0);
PUSH_DATA (push, *sequence);
}
/* we need to do it after possible flush in MARK_RING */
*sequence = ++screen->base.fence.sequence;
- assert(PUSH_AVAIL(push) >= 5);
PUSH_DATA (push, NV50_FIFO_PKHDR(NV50_3D(QUERY_ADDRESS_HIGH), 4));
PUSH_DATAh(push, screen->fence.bo->offset);
PUSH_DATA (push, screen->fence.bo->offset);
/* we need to do it after possible flush in MARK_RING */
*sequence = ++screen->base.fence.sequence;
- assert(PUSH_AVAIL(push) >= 5);
- PUSH_DATA (push, NVC0_FIFO_PKHDR_SQ(NVC0_3D(QUERY_ADDRESS_HIGH), 4));
+ BEGIN_NVC0(push, NVC0_3D(QUERY_ADDRESS_HIGH), 4);
PUSH_DATAh(push, screen->fence.bo->offset);
PUSH_DATA (push, screen->fence.bo->offset);
PUSH_DATA (push, *sequence);