sna/gen3: Set the batch mode for emitting video state

The lack of kgem_set_mode() here is causing some recently added
assertions to fail.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2012-01-18 20:09:26 +00:00
parent 76203b7070
commit 334f3f70a8
1 changed files with 5 additions and 22 deletions

View File

@ -3591,29 +3591,12 @@ gen3_emit_video_state(struct sna *sna,
static void
gen3_video_get_batch(struct sna *sna)
{
if (!kgem_check_batch(&sna->kgem, 120)) {
DBG(("%s: flushing batch: nbatch %d < %d\n",
__FUNCTION__,
batch_space(sna), 120));
kgem_submit(&sna->kgem);
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
}
kgem_set_mode(&sna->kgem, KGEM_RENDER);
if (sna->kgem.nreloc + 4 > KGEM_RELOC_SIZE(&sna->kgem)) {
DBG(("%s: flushing batch: reloc %d >= %d\n",
__FUNCTION__,
sna->kgem.nreloc + 4,
(int)KGEM_RELOC_SIZE(&sna->kgem)));
kgem_submit(&sna->kgem);
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
}
if (sna->kgem.nexec + 2 > KGEM_EXEC_SIZE(&sna->kgem)) {
DBG(("%s: flushing batch: exec %d >= %d\n",
__FUNCTION__,
sna->kgem.nexec + 2,
(int)KGEM_EXEC_SIZE(&sna->kgem)));
kgem_submit(&sna->kgem);
if (!kgem_check_batch(&sna->kgem, 120) ||
!kgem_check_reloc(&sna->kgem, 4) ||
!kgem_check_exec(&sna->kgem, 2)) {
_kgem_submit(&sna->kgem);
_kgem_set_mode(&sna->kgem, KGEM_RENDER);
}