summaryrefslogtreecommitdiffstats
path: root/src/mesa/main/samplerobj.c
diff options
context:
space:
mode:
authorMatt Turner <mattst88@gmail.com>2015-06-12 09:07:09 -0700
committerMatt Turner <mattst88@gmail.com>2015-09-25 14:08:31 -0700
commit3c57a102ebd2efc427a59bf8eb441b4e5dec8553 (patch)
treeb78c4169b55fbbdff2a9e021578c0d2d14df46d9 /src/mesa/main/samplerobj.c
parentd4b0e0b717b698682700bf1cd9d448043a57701d (diff)
downloadexternal_mesa3d-3c57a102ebd2efc427a59bf8eb441b4e5dec8553.zip
external_mesa3d-3c57a102ebd2efc427a59bf8eb441b4e5dec8553.tar.gz
external_mesa3d-3c57a102ebd2efc427a59bf8eb441b4e5dec8553.tar.bz2
mesa: Add locking to sampler objects.
Reviewed-by: Timothy Arceri <t_arceri@yahoo.com.au> Reviewed-by: Brian Paul <brianp@vmware.com>
Diffstat (limited to 'src/mesa/main/samplerobj.c')
-rw-r--r--src/mesa/main/samplerobj.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 241b5cb..c7b9666 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -88,11 +88,11 @@ _mesa_reference_sampler_object_(struct gl_context *ctx,
GLboolean deleteFlag = GL_FALSE;
struct gl_sampler_object *oldSamp = *ptr;
- /*mtx_lock(&oldSamp->Mutex);*/
+ mtx_lock(&oldSamp->Mutex);
assert(oldSamp->RefCount > 0);
oldSamp->RefCount--;
deleteFlag = (oldSamp->RefCount == 0);
- /*mtx_unlock(&oldSamp->Mutex);*/
+ mtx_unlock(&oldSamp->Mutex);
if (deleteFlag) {
assert(ctx->Driver.DeleteSamplerObject);
@@ -105,7 +105,7 @@ _mesa_reference_sampler_object_(struct gl_context *ctx,
if (samp) {
/* reference new sampler */
- /*mtx_lock(&samp->Mutex);*/
+ mtx_lock(&samp->Mutex);
if (samp->RefCount == 0) {
/* this sampler's being deleted (look just above) */
/* Not sure this can every really happen. Warn if it does. */
@@ -116,7 +116,7 @@ _mesa_reference_sampler_object_(struct gl_context *ctx,
samp->RefCount++;
*ptr = samp;
}
- /*mtx_unlock(&samp->Mutex);*/
+ mtx_unlock(&samp->Mutex);
}
}
@@ -127,6 +127,7 @@ _mesa_reference_sampler_object_(struct gl_context *ctx,
static void
_mesa_init_sampler_object(struct gl_sampler_object *sampObj, GLuint name)
{
+ mtx_init(&sampObj->Mutex, mtx_plain);
sampObj->Name = name;
sampObj->RefCount = 1;
sampObj->WrapS = GL_REPEAT;
@@ -169,6 +170,7 @@ static void
_mesa_delete_sampler_object(struct gl_context *ctx,
struct gl_sampler_object *sampObj)
{
+ mtx_destroy(&sampObj->Mutex);
free(sampObj->Label);
free(sampObj);
}