diff options
author | Keith Packard <keithp@keithp.com> | 2008-10-14 14:38:05 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2008-10-19 14:46:12 -0700 |
commit | 546e2aca5b8b5d9f486d119ea2872ccd2b056054 (patch) | |
tree | c0767ad275359ddc59fb0b3618261063336b5e08 /src/i830_batchbuffer.h | |
parent | 9b91cdf7ac88982880c887ffb0811c92157a7945 (diff) |
Reduce incidence of MI_FLUSH usage.
This tracks whether the last command in each batch is an MI_FLUSH command
and avoids appending another MI_FLUSH in the non-GEM cases.
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/i830_batchbuffer.h')
-rw-r--r-- | src/i830_batchbuffer.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/i830_batchbuffer.h b/src/i830_batchbuffer.h index 3c7a69be..05114936 100644 --- a/src/i830_batchbuffer.h +++ b/src/i830_batchbuffer.h @@ -34,7 +34,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. void intel_batch_init(ScrnInfoPtr pScrn); void intel_batch_teardown(ScrnInfoPtr pScrn); -void intel_batch_flush(ScrnInfoPtr pScrn); +void intel_batch_flush(ScrnInfoPtr pScrn, Bool flushed); static inline int intel_batch_space(I830Ptr pI830) @@ -47,7 +47,7 @@ intel_batch_require_space(ScrnInfoPtr pScrn, I830Ptr pI830, GLuint sz) { assert(sz < pI830->batch_bo->size - 8); if (intel_batch_space(pI830) < sz) - intel_batch_flush(pScrn); + intel_batch_flush(pScrn, FALSE); } static inline void @@ -119,8 +119,8 @@ do { \ if (pI830->batch_emitting != 0) \ FatalError("%s: BEGIN_BATCH called without closing " \ "ADVANCE_BATCH\n", __FUNCTION__); \ + intel_batch_require_space(pScrn, pI830, (n) * 4); \ pI830->batch_emitting = (n) * 4; \ - intel_batch_require_space(pScrn, pI830, pI830->batch_emitting); \ pI830->batch_emit_start = pI830->batch_used; \ } while (0) @@ -140,7 +140,7 @@ do { \ pI830->batch_emitting); \ if ((pI830->batch_emitting > 8) && (I810_DEBUG & DEBUG_ALWAYS_SYNC)) { \ /* Note: not actually syncing, just flushing each batch. */ \ - intel_batch_flush(pScrn); \ + intel_batch_flush(pScrn, FALSE); \ } \ pI830->batch_emitting = 0; \ } while (0) |