sna/gen3+: Reset vertex relocation state after discarding the batch

Fixes a regression from commit a6ecb6d31d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Jan 16 09:14:40 2013 +0000

    sna: Discard the batch if we are discarding the only buffer in it

as we may keep a stale relocation for the vertex buffer alive if we
attempt to clear the bo using the render engine before discarding it.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2013-01-20 14:58:42 +00:00
parent 492952e0d6
commit 650c9d5ce8
5 changed files with 19 additions and 0 deletions

View File

@ -1970,6 +1970,9 @@ gen3_render_reset(struct sna *sna)
__FUNCTION__, sna->render.vbo->presumed_offset));
discard_vbo(sna);
}
sna->render.vertex_reloc[0] = 0;
sna->render.vertex_offset = 0;
}
static void

View File

@ -2789,6 +2789,10 @@ static void gen4_render_reset(struct sna *sna)
DBG(("%s: discarding unmappable vbo\n", __FUNCTION__));
discard_vbo(sna);
}
sna->render.vertex_offset = 0;
sna->render.nvertex_reloc = 0;
sna->render.vb_id = 0;
}
static void gen4_render_fini(struct sna *sna)

View File

@ -2916,6 +2916,10 @@ static void gen5_render_reset(struct sna *sna)
DBG(("%s: discarding unmappable vbo\n", __FUNCTION__));
discard_vbo(sna);
}
sna->render.vertex_offset = 0;
sna->render.nvertex_reloc = 0;
sna->render.vb_id = 0;
}
static void gen5_render_fini(struct sna *sna)

View File

@ -3424,6 +3424,10 @@ static void gen6_render_reset(struct sna *sna)
sna->render_state.gen6.drawrect_offset = -1;
sna->render_state.gen6.drawrect_limit = -1;
sna->render_state.gen6.surface_table = -1;
sna->render.vertex_offset = 0;
sna->render.nvertex_reloc = 0;
sna->render.vb_id = 0;
}
static void gen6_render_fini(struct sna *sna)

View File

@ -3505,6 +3505,10 @@ static void gen7_render_reset(struct sna *sna)
sna->render_state.gen7.drawrect_offset = -1;
sna->render_state.gen7.drawrect_limit = -1;
sna->render_state.gen7.surface_table = -1;
sna->render.vertex_offset = 0;
sna->render.nvertex_reloc = 0;
sna->render.vb_id = 0;
}
static void gen7_render_fini(struct sna *sna)