i965: Fix leak in blorp CopyTexSubImage2D

_mesa_delete_renderbuffer does not call the driver-specific
renderbuffer delete function, so the blorp code was leaking the
Intel-specific bits, including some GEM objects.

Call the renderbuffer's ->Delete() method instead, which does the
right thing.

Fixes Unity rapidly sending the machine into the arms of the OOM-killer

Note: This is a candidate for the 9.1 branch.

Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Christopher James Halse Rogers 2013-02-16 16:39:07 +11:00 committed by Paul Berry
parent f1ab67c13a
commit dd599188d2

View file

@ -337,7 +337,7 @@ brw_blorp_copytexsubimage(struct intel_context *intel,
GLbitfield buffer_bit = 0;
if (!formats_match(buffer_bit, src_irb, dst_irb)) {
_mesa_delete_renderbuffer(ctx, dst_rb);
dst_rb->Delete(ctx, dst_rb);
return false;
}
@ -387,7 +387,7 @@ brw_blorp_copytexsubimage(struct intel_context *intel,
srcX0, srcY0, dstX0, dstY0, dstX1, dstY1, false, mirror_y);
}
_mesa_delete_renderbuffer(ctx, dst_rb);
dst_rb->Delete(ctx, dst_rb);
return true;
}