diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2007-11-15 09:59:33 +0000 |
---|---|---|
committer | Michel Dänzer <michel@tungstengraphics.com> | 2007-11-26 17:49:29 +0100 |
commit | a8fee3a498c8c4966d57a5273408477f3aa3ce73 (patch) | |
tree | 32cf888e1f5214bd310713df65a948286a9dc20c /src/mesa/drivers/dri/intel | |
parent | 63e6bfe8db10313c7f48de0b8ddbcd6b47f7e327 (diff) |
i915: Catch cases where not all state is emitted for a new batchbuffer.
This could lead to incorrect rendering or even lockups.
Diffstat (limited to 'src/mesa/drivers/dri/intel')
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_batchbuffer.c | 2 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_batchbuffer.h | 3 | ||||
-rw-r--r-- | src/mesa/drivers/dri/intel/intel_screen.h | 2 |
3 files changed, 7 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/intel/intel_batchbuffer.c b/src/mesa/drivers/dri/intel/intel_batchbuffer.c index 4e698627a3..3764027bff 100644 --- a/src/mesa/drivers/dri/intel/intel_batchbuffer.c +++ b/src/mesa/drivers/dri/intel/intel_batchbuffer.c @@ -85,6 +85,8 @@ intel_batchbuffer_reset(struct intel_batchbuffer *batch) batch->map = batch->buf->virtual; batch->size = intel->intelScreen->maxBatchSize; batch->ptr = batch->map; + batch->dirty_state = ~0; + batch->id = batch->intel->intelScreen->batch_id++; } struct intel_batchbuffer * diff --git a/src/mesa/drivers/dri/intel/intel_batchbuffer.h b/src/mesa/drivers/dri/intel/intel_batchbuffer.h index b5c7a783a7..1bbbbde293 100644 --- a/src/mesa/drivers/dri/intel/intel_batchbuffer.h +++ b/src/mesa/drivers/dri/intel/intel_batchbuffer.h @@ -25,6 +25,9 @@ struct intel_batchbuffer GLubyte *ptr; GLuint size; + + GLuint dirty_state; + GLuint id; }; struct intel_batchbuffer *intel_batchbuffer_alloc(struct intel_context diff --git a/src/mesa/drivers/dri/intel/intel_screen.h b/src/mesa/drivers/dri/intel/intel_screen.h index 3a1a969b23..ac11431b87 100644 --- a/src/mesa/drivers/dri/intel/intel_screen.h +++ b/src/mesa/drivers/dri/intel/intel_screen.h @@ -98,6 +98,8 @@ typedef struct * instead of the fake client-side memory manager. */ GLboolean ttm; + + unsigned batch_id; } intelScreenPrivate; |