i915tex: Take into account various mapping states when dropping the

batch buffer after a resolution / rotation switch.
This commit is contained in:
Thomas Hellstrom 2007-02-14 11:11:23 +01:00
parent 1e6688742e
commit bc82b44db9

View file

@ -643,7 +643,9 @@ intelContendedLock(struct intel_context *intel, GLuint flags)
if (sarea->width != intel->width ||
sarea->height != intel->height ||
sarea->rotation != intel->current_rotation) {
void *batchMap = intel->batch->map;
/*
* FIXME: Really only need to do this when drawing to a
* common back- or front buffer.
@ -653,9 +655,18 @@ intelContendedLock(struct intel_context *intel, GLuint flags)
* This will drop the outstanding batchbuffer on the floor
*/
driBOUnmap(intel->batch->buffer);
if (batchMap != NULL) {
driBOUnmap(intel->batch->buffer);
intel->batch->map = NULL;
}
intel_batchbuffer_reset(intel->batch);
if (batchMap == NULL) {
driBOUnmap(intel->batch->buffer);
intel->batch->map = NULL;
}
/* lose all primitives */
intel->prim.primitive = ~0;
intel->prim.start_ptr = 0;