X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fmesa%2Fmain%2Frenderbuffer.c;h=27c6d90fb9bb6ffaec625d143c8e6c5cf38a268d;hb=747e808697c56dcabc76ae7bae350e4552af12e3;hp=627bdca66c5726df03ce006864dc10ca33b3c007;hpb=074a485d35e75f514bf4d5c300442c2c4b4979ba;p=mesa.git diff --git a/src/mesa/main/renderbuffer.c b/src/mesa/main/renderbuffer.c index 627bdca66c5..27c6d90fb9b 100644 --- a/src/mesa/main/renderbuffer.c +++ b/src/mesa/main/renderbuffer.c @@ -24,12 +24,13 @@ #include "glheader.h" -#include "imports.h" + #include "context.h" #include "fbobject.h" #include "formats.h" #include "mtypes.h" #include "renderbuffer.h" +#include "util/u_memory.h" /** @@ -40,7 +41,7 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name) { GET_CURRENT_CONTEXT(ctx); - mtx_init(&rb->Mutex, mtx_plain); + simple_mtx_init(&rb->Mutex, mtx_plain); rb->ClassID = 0; rb->Name = name; @@ -66,7 +67,7 @@ _mesa_init_renderbuffer(struct gl_renderbuffer *rb, GLuint name) * specs. If the context is not current, we cannot determine the * API, so default to GL_RGBA. */ - if (ctx && _mesa_is_gles3(ctx)) { + if (ctx && _mesa_is_gles(ctx)) { rb->InternalFormat = GL_RGBA4; } else { rb->InternalFormat = GL_RGBA; @@ -101,7 +102,7 @@ _mesa_new_renderbuffer(struct gl_context *ctx, GLuint name) void _mesa_delete_renderbuffer(struct gl_context *ctx, struct gl_renderbuffer *rb) { - mtx_destroy(&rb->Mutex); + simple_mtx_destroy(&rb->Mutex); free(rb->Label); free(rb); } @@ -141,13 +142,15 @@ validate_and_init_renderbuffer_attachment(struct gl_framebuffer *fb, * \param bufferName one of the BUFFER_x tokens * * This function avoids adding a reference and is therefore intended to be - * used with a freashly created renderbuffer. + * used with a freshly created renderbuffer. */ void -_mesa_add_renderbuffer_without_ref(struct gl_framebuffer *fb, - gl_buffer_index bufferName, - struct gl_renderbuffer *rb) +_mesa_attach_and_own_rb(struct gl_framebuffer *fb, + gl_buffer_index bufferName, + struct gl_renderbuffer *rb) { + assert(rb->RefCount == 1); + validate_and_init_renderbuffer_attachment(fb, bufferName, rb); _mesa_reference_renderbuffer(&fb->Attachment[bufferName].Renderbuffer, @@ -160,8 +163,9 @@ _mesa_add_renderbuffer_without_ref(struct gl_framebuffer *fb, * \param bufferName one of the BUFFER_x tokens */ void -_mesa_add_renderbuffer(struct gl_framebuffer *fb, - gl_buffer_index bufferName, struct gl_renderbuffer *rb) +_mesa_attach_and_reference_rb(struct gl_framebuffer *fb, + gl_buffer_index bufferName, + struct gl_renderbuffer *rb) { validate_and_init_renderbuffer_attachment(fb, bufferName, rb); _mesa_reference_renderbuffer(&fb->Attachment[bufferName].Renderbuffer, rb); @@ -198,11 +202,11 @@ _mesa_reference_renderbuffer_(struct gl_renderbuffer **ptr, GLboolean deleteFlag = GL_FALSE; struct gl_renderbuffer *oldRb = *ptr; - mtx_lock(&oldRb->Mutex); + simple_mtx_lock(&oldRb->Mutex); assert(oldRb->RefCount > 0); oldRb->RefCount--; deleteFlag = (oldRb->RefCount == 0); - mtx_unlock(&oldRb->Mutex); + simple_mtx_unlock(&oldRb->Mutex); if (deleteFlag) { GET_CURRENT_CONTEXT(ctx); @@ -215,9 +219,9 @@ _mesa_reference_renderbuffer_(struct gl_renderbuffer **ptr, if (rb) { /* reference new renderbuffer */ - mtx_lock(&rb->Mutex); + simple_mtx_lock(&rb->Mutex); rb->RefCount++; - mtx_unlock(&rb->Mutex); + simple_mtx_unlock(&rb->Mutex); *ptr = rb; } }