diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2006-03-23 01:12:24 +0000 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2006-03-23 01:12:24 +0000 |
commit | 2b464d93d1ce3b57565677e3bd9b99540d983ab3 (patch) | |
tree | 758afd2f52e2efb10d8ebcfba5982d0f5bf3fa24 | |
parent | 497f80ac34dd9301b1c2c424ed82e043e9d69b54 (diff) |
Before calling intel_region_release/reference() check if the regions
are changing.
-rw-r--r-- | src/mesa/drivers/dri/i915/i915_vtbl.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/mesa/drivers/dri/i915/i915_vtbl.c b/src/mesa/drivers/dri/i915/i915_vtbl.c index b11382bdd4f..be90612bc57 100644 --- a/src/mesa/drivers/dri/i915/i915_vtbl.c +++ b/src/mesa/drivers/dri/i915/i915_vtbl.c @@ -359,10 +359,14 @@ i915_state_draw_region(struct intel_context *intel, ASSERT(state == &i915->state || state == &i915->meta); - intel_region_release(intel, &state->draw_region); - intel_region_release(intel, &state->depth_region); - intel_region_reference(&state->draw_region, color_region); - intel_region_reference(&state->depth_region, depth_region); + if (state->draw_region != color_region) { + intel_region_release(intel, &state->draw_region); + intel_region_reference(&state->draw_region, color_region); + } + if (state->depth_region != depth_region) { + intel_region_release(intel, &state->depth_region); + intel_region_reference(&state->depth_region, depth_region); + } /* * Set stride/cpp values |