sna: Close each client op with an arbitrartion check
Minimise preemption latency by frequently checking for pending preemption events in between X11 client requests. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
bff5eca49b
commit
b5ac286c9b
|
|
@ -5302,6 +5302,8 @@ inline static void blt_done(struct sna *sna)
|
|||
DBG(("%s: flushing BLT operation on empty ring\n",
|
||||
__FUNCTION__));
|
||||
_kgem_submit(&sna->kgem);
|
||||
} else {
|
||||
sna->kgem.batch[sna->kgem.nbatch++] = MI_ARB_CHECK;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
/* broadwater flush bits */
|
||||
#define BRW_MI_GLOBAL_SNAPSHOT_RESET (1 << 3)
|
||||
|
||||
#define MI_ARB_CHECK (0x5 << 23)
|
||||
#define MI_BATCH_BUFFER_END (0xA << 23)
|
||||
|
||||
/* Noop */
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "sna.h"
|
||||
#include "sna_render.h"
|
||||
#include "sna_render_inline.h"
|
||||
#include "sna_reg.h"
|
||||
#include "fb/fbpict.h"
|
||||
|
||||
#define NO_REDIRECT 0
|
||||
|
|
@ -2129,6 +2130,8 @@ sna_render_composite_redirect_done(struct sna *sna,
|
|||
|
||||
kgem_bo_destroy(&sna->kgem, op->dst.bo);
|
||||
}
|
||||
|
||||
batch_emit(sna, MI_ARB_CHECK);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
Loading…
Reference in New Issue