mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 22:08:26 +02:00
mesa: fix-up and use _mesa_delete_renderbuffer()
_mesa_delete_renderbuffer() should free the mutex (though that may be a
no-op) and then free the renderbuffer object itself. Subclasses of
gl_renderbuffer can use this function too.
Reviewed-by: José Fonseca <jfonseca@vmware.com>
(cherry picked from commit 8472bb4508)
This commit is contained in:
parent
a8f8287154
commit
dca04373c2
7 changed files with 11 additions and 7 deletions
|
|
@ -95,7 +95,7 @@ intel_delete_renderbuffer(struct gl_renderbuffer *rb)
|
||||||
|
|
||||||
intel_miptree_release(&irb->mt);
|
intel_miptree_release(&irb->mt);
|
||||||
|
|
||||||
free(irb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ nouveau_renderbuffer_del(struct gl_renderbuffer *rb)
|
||||||
struct nouveau_surface *s = &to_nouveau_renderbuffer(rb)->surface;
|
struct nouveau_surface *s = &to_nouveau_renderbuffer(rb)->surface;
|
||||||
|
|
||||||
nouveau_surface_ref(NULL, s);
|
nouveau_surface_ref(NULL, s);
|
||||||
FREE(rb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static struct gl_renderbuffer *
|
static struct gl_renderbuffer *
|
||||||
|
|
|
||||||
|
|
@ -67,7 +67,7 @@ radeon_delete_renderbuffer(struct gl_renderbuffer *rb)
|
||||||
if (rrb && rrb->bo) {
|
if (rrb && rrb->bo) {
|
||||||
radeon_bo_unref(rrb->bo);
|
radeon_bo_unref(rrb->bo);
|
||||||
}
|
}
|
||||||
free(rrb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RADEON_R100)
|
#if defined(RADEON_R100)
|
||||||
|
|
|
||||||
|
|
@ -268,7 +268,7 @@ swrast_delete_renderbuffer(struct gl_renderbuffer *rb)
|
||||||
TRACE;
|
TRACE;
|
||||||
|
|
||||||
free(xrb->Base.Buffer);
|
free(xrb->Base.Buffer);
|
||||||
free(xrb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* see bytes_per_line in libGL */
|
/* see bytes_per_line in libGL */
|
||||||
|
|
|
||||||
|
|
@ -75,11 +75,15 @@ _mesa_new_renderbuffer(struct gl_context *ctx, GLuint name)
|
||||||
/**
|
/**
|
||||||
* Delete a gl_framebuffer.
|
* Delete a gl_framebuffer.
|
||||||
* This is the default function for renderbuffer->Delete().
|
* This is the default function for renderbuffer->Delete().
|
||||||
|
* Drivers which subclass gl_renderbuffer should probably implement their
|
||||||
|
* own delete function. But the driver might also call this function to
|
||||||
|
* free the object in the end.
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
_mesa_delete_renderbuffer(struct gl_renderbuffer *rb)
|
_mesa_delete_renderbuffer(struct gl_renderbuffer *rb)
|
||||||
{
|
{
|
||||||
/* no-op */
|
_glthread_DESTROY_MUTEX(rb->Mutex);
|
||||||
|
free(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -232,7 +232,7 @@ st_renderbuffer_delete(struct gl_renderbuffer *rb)
|
||||||
pipe_surface_reference(&strb->surface, NULL);
|
pipe_surface_reference(&strb->surface, NULL);
|
||||||
pipe_resource_reference(&strb->texture, NULL);
|
pipe_resource_reference(&strb->texture, NULL);
|
||||||
free(strb->data);
|
free(strb->data);
|
||||||
free(strb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -174,7 +174,7 @@ soft_renderbuffer_delete(struct gl_renderbuffer *rb)
|
||||||
free(srb->Buffer);
|
free(srb->Buffer);
|
||||||
srb->Buffer = NULL;
|
srb->Buffer = NULL;
|
||||||
}
|
}
|
||||||
free(srb);
|
_mesa_delete_renderbuffer(rb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue