mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 00:58:05 +02:00
GEM: Don't emit an extra MI_FLUSH in the batch since GEM handles it.
This commit is contained in:
parent
537bbe6dec
commit
96f52f089f
1 changed files with 15 additions and 15 deletions
|
|
@ -195,7 +195,7 @@ _intel_batchbuffer_flush(struct intel_batchbuffer *batch, const char *file,
|
|||
int line)
|
||||
{
|
||||
struct intel_context *intel = batch->intel;
|
||||
GLuint used = batch->ptr - batch->map;
|
||||
GLuint used;
|
||||
GLboolean was_locked = intel->locked;
|
||||
|
||||
if (used == 0)
|
||||
|
|
@ -204,20 +204,20 @@ _intel_batchbuffer_flush(struct intel_batchbuffer *batch, const char *file,
|
|||
if (INTEL_DEBUG & DEBUG_BATCH)
|
||||
fprintf(stderr, "%s:%d: Batchbuffer flush with %db used\n", file, line,
|
||||
used);
|
||||
/* Add the MI_BATCH_BUFFER_END. Always add an MI_FLUSH - this is a
|
||||
* performance drain that we would like to avoid.
|
||||
*/
|
||||
if (used & 4) {
|
||||
((int *) batch->ptr)[0] = intel->vtbl.flush_cmd();
|
||||
((int *) batch->ptr)[1] = 0;
|
||||
((int *) batch->ptr)[2] = MI_BATCH_BUFFER_END;
|
||||
used += 12;
|
||||
}
|
||||
else {
|
||||
((int *) batch->ptr)[0] = intel->vtbl.flush_cmd();
|
||||
((int *) batch->ptr)[1] = MI_BATCH_BUFFER_END;
|
||||
used += 8;
|
||||
}
|
||||
|
||||
/* Emit a flush if the bufmgr doesn't do it for us. */
|
||||
if (!intel->ttm)
|
||||
intel_batchbuffer_emit_dword(intel->batch, intel->vtbl.flush_cmd());
|
||||
|
||||
/* Round batchbuffer usage to 2 DWORDs. */
|
||||
used = batch->ptr - batch->map;
|
||||
if ((used & 4) == 0)
|
||||
intel_batchbuffer_emit_dword(intel->batch, 0); /* noop */
|
||||
|
||||
/* Mark the end of the buffer. */
|
||||
intel_batchbuffer_emit_dword(intel->batch, MI_BATCH_BUFFER_END);
|
||||
|
||||
used = batch->ptr - batch->map;
|
||||
|
||||
/* Workaround for recursive batchbuffer flushing: If the window is
|
||||
* moved, we can get into a case where we try to flush during a
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue