From b0902a4158481e6129d94ccd553a60e7a113a770 Mon Sep 17 00:00:00 2001 From: Keith Whitwell Date: Thu, 14 Sep 2006 14:48:09 +0000 Subject: [PATCH] Silence debug, cope with calling intel_region_cow() with lock already held. --- src/mesa/drivers/dri/i915/intel_regions.c | 37 +++++++++++++++-------- 1 file changed, 25 insertions(+), 12 deletions(-) diff --git a/src/mesa/drivers/dri/i915/intel_regions.c b/src/mesa/drivers/dri/i915/intel_regions.c index 4afb89b01b9..1ec729b4f39 100644 --- a/src/mesa/drivers/dri/i915/intel_regions.c +++ b/src/mesa/drivers/dri/i915/intel_regions.c @@ -356,24 +356,37 @@ intel_region_cow(struct intel_context *intel, struct intel_region *region) assert(region->cpp * region->pitch * region->height == pbo->Base.Size); - _mesa_printf("%s (%d bytes)\n", __FUNCTION__, pbo->Base.Size); + DBG("%s (%d bytes)\n", __FUNCTION__, pbo->Base.Size); /* Now blit from the texture buffer to the new buffer: */ intel_batchbuffer_flush(intel->batch); - LOCK_HARDWARE(intel); - intelEmitCopyBlit(intel, - region->cpp, - region->pitch, - region->buffer, 0, - region->pitch, - pbo->buffer, 0, - 0, 0, 0, 0, region->pitch, region->height); - - intel_batchbuffer_flush(intel->batch); - UNLOCK_HARDWARE(intel); + if (!intel->locked) { + LOCK_HARDWARE(intel); + intelEmitCopyBlit(intel, + region->cpp, + region->pitch, + region->buffer, 0, + region->pitch, + pbo->buffer, 0, + 0, 0, 0, 0, region->pitch, region->height); + + intel_batchbuffer_flush(intel->batch); + UNLOCK_HARDWARE(intel); + } + else { + intelEmitCopyBlit(intel, + region->cpp, + region->pitch, + region->buffer, 0, + region->pitch, + pbo->buffer, 0, + 0, 0, 0, 0, region->pitch, region->height); + + intel_batchbuffer_flush(intel->batch); + } } struct _DriBufferObject *