diff options
author | Ilia Mirkin <[email protected]> | 2015-12-31 20:33:15 -0500 |
---|---|---|
committer | Ilia Mirkin <[email protected]> | 2016-01-01 19:52:41 -0500 |
commit | c1d14c6817e3fa9a1c04f9b6c51b4ca601637843 (patch) | |
tree | 68ed3f22186d577a49e97e4dbf031bb84579bca0 /src/gallium/drivers/nouveau/nv50/nv50_vbo.c | |
parent | 33a415310b2d958319a4391f6b6d325d9c7292cc (diff) |
nv50,nvc0: make sure there's pushbuf space and that we ref the bo early
First off, we can't flush in the middle of a command. Secondly
requesting the extra push space might cause a flush to happen. If that
flush happens, we'd have to do the PUSH_REFN again. So instead do
PUSH_REFN after the push space request. This helps avoid rare crashes
with supertuxkart in libdrm due to assertion failures.
Signed-off-by: Ilia Mirkin <[email protected]>
Cc: "11.0 11.1" <[email protected]>
Diffstat (limited to 'src/gallium/drivers/nouveau/nv50/nv50_vbo.c')
-rw-r--r-- | src/gallium/drivers/nouveau/nv50/nv50_vbo.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_vbo.c b/src/gallium/drivers/nouveau/nv50/nv50_vbo.c index 7de2f1f1d0f..2d1aa6abcd2 100644 --- a/src/gallium/drivers/nouveau/nv50/nv50_vbo.c +++ b/src/gallium/drivers/nouveau/nv50/nv50_vbo.c @@ -636,8 +636,8 @@ nv50_draw_elements(struct nv50_context *nv50, bool shorten, BEGIN_NV04(push, NV50_3D(VERTEX_BEGIN_GL), 1); PUSH_DATA (push, prim); - PUSH_REFN(push, buf->bo, NOUVEAU_BO_RD | buf->domain); nouveau_pushbuf_space(push, 8, 0, 1); + PUSH_REFN(push, buf->bo, NOUVEAU_BO_RD | buf->domain); switch (index_size) { case 4: |