diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2006-09-20 14:44:40 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2006-09-20 14:44:40 +0000 |
commit | b35121d54df4bb8700c4135203162c1d79ca637d (patch) | |
tree | 67a66dc27a98705eb2be20ce93d91f25ca722015 /src/mesa/drivers/dri/i965/intel_span.c | |
parent | 3a5319293c9210ea3c0c9d84604fa0720a96f0e8 (diff) |
1) Add a new flag in the sarea (coopting the unused texAge value) to
identify context switches between members of a share group -
ie. multiple contexts in a single application, possibly on different
threads. In this case the contexts share a bufmgr instance and there
is no need to evict textures - so don't.
2) Use a new flag 'need_flush' to ensure hardware rendering is flushed
prior to starting a software fallback.
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_span.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/intel_span.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_span.c b/src/mesa/drivers/dri/i965/intel_span.c index c68def5a9f..a202491101 100644 --- a/src/mesa/drivers/dri/i965/intel_span.c +++ b/src/mesa/drivers/dri/i965/intel_span.c @@ -207,6 +207,16 @@ void intelSpanRenderStart( GLcontext *ctx ) { struct intel_context *intel = intel_context(ctx); + if (intel->need_flush) { + LOCK_HARDWARE(intel); + intel->vtbl.emit_flush(intel, 0); + intel_batchbuffer_flush(intel->batch); + intel->need_flush = 0; + UNLOCK_HARDWARE(intel); + intelFinish(intel); + } + + LOCK_HARDWARE(intel); /* Just map the framebuffer and all textures. Bufmgr code will |