[Mesa-dev] [PATCH] mesa: tidy up renderbuffer RefCount initialisation
Timothy Arceri
tarceri at itsqueeze.com
Wed Apr 5 11:06:57 UTC 2017
42aaa548 changed the renderbuffer initialisation of RefCount from
1 to 0.
This is inconsitent with how we use RefCount elsewhere. Also every
driver implementation of NewRenderbuffer() calls
_mesa_init_renderbuffer() so its safe to set it there.
---
src/mesa/drivers/common/meta.c | 2 --
src/mesa/main/fbobject.c | 1 -
src/mesa/main/renderbuffer.c | 2 +-
3 files changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index efbc934..f4c91ac 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -3037,22 +3037,20 @@ decompress_texture_image(struct gl_context *ctx,
ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler);
/* Create/bind FBO/renderbuffer */
if (decompress_fbo->fb == NULL) {
decompress_fbo->rb = ctx->Driver.NewRenderbuffer(ctx, 0xDEADBEEF);
if (decompress_fbo->rb == NULL) {
_mesa_meta_end(ctx);
return false;
}
- decompress_fbo->rb->RefCount = 1;
-
decompress_fbo->fb = ctx->Driver.NewFramebuffer(ctx, 0xDEADBEEF);
if (decompress_fbo->fb == NULL) {
_mesa_meta_end(ctx);
return false;
}
_mesa_bind_framebuffers(ctx, decompress_fbo->fb, decompress_fbo->fb);
_mesa_framebuffer_renderbuffer(ctx, ctx->DrawBuffer, GL_COLOR_ATTACHMENT0,
decompress_fbo->rb);
}
diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
index 4d9a7b8..e52c1e3 100644
--- a/src/mesa/main/fbobject.c
+++ b/src/mesa/main/fbobject.c
@@ -1309,21 +1309,20 @@ allocate_renderbuffer_locked(struct gl_context *ctx, GLuint renderbuffer,
struct gl_renderbuffer *newRb;
/* create new renderbuffer object */
newRb = ctx->Driver.NewRenderbuffer(ctx, renderbuffer);
if (!newRb) {
_mesa_error(ctx, GL_OUT_OF_MEMORY, "%s", func);
return NULL;
}
assert(newRb->AllocStorage);
_mesa_HashInsertLocked(ctx->Shared->RenderBuffers, renderbuffer, newRb);
- newRb->RefCount = 1; /* referenced by hash table */
return newRb;
}
static void
bind_renderbuffer(GLenum target, GLuint renderbuffer, bool allow_user_names)
{
struct gl_renderbuffer *newRb;
GET_CURRENT_CONTEXT(ctx);
diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c
index 53e0b74..1d24e9c 100644
--- a/src/mesa/main/renderbuffer.c
+++ b/src/mesa/main/renderbuffer.c
@@ -36,21 +36,21 @@
/**
* Initialize the fields of a gl_renderbuffer to default values.
*/
void
_mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name)
{
GET_CURRENT_CONTEXT(ctx);
rb->ClassID = 0;
rb->Name = name;
- rb->RefCount = 0;
+ rb->RefCount = 1;
rb->Delete = _mesa_delete_renderbuffer;
/* The rest of these should be set later by the caller of this function or
* the AllocStorage method:
*/
rb->AllocStorage = NULL;
rb->Width = 0;
rb->Height = 0;
rb->Depth = 0;
--
2.9.3
More information about the mesa-dev
mailing list