summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2014-08-08 16:53:53 -0700
committerKristian Høgsberg <krh@bitplanet.net>2014-08-15 11:25:25 -0700
commit5fad83bdf8be62e448dd3d60fa39daca6f1c7c0d (patch)
tree8aed99f9f2afeeb2a72fee3c0a5f189e399e81f6
parent388f02729bbf88ba104f4f8ee1fdf005a240969c (diff)
mesa: Use _mesa_lock_context_textures in _mesa_GetTexParameterfv()
GetTexParamterfv() doesnt change texture state, so instead of _mesa_lock_texture() we can use _mesa_lock_context_textures(), which doesn't increase the texture stamp. With this change, _mesa_update_state_locked() is now only called from under _mesa_lock_context_textures(), which is right thing to do. Right now it's the same mutex, but if we made texture locking more fine grained locking one day, just locking one texture here would be wrong. This all ignores the fact that texture locking seem a bit flaky and broken, but we're trying to not blatantly make it worse. This change allows us to reliably unlock the context textures in the dd::UpdateState callback as is necessary for meta color resolves. Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Acked-by: Kenneth Graunke <kenneth@whitecape.org>
-rw-r--r--src/mesa/main/texparam.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/mesa/main/texparam.c b/src/mesa/main/texparam.c
index 30dd0b9b3bb..e40fb249e6a 100644
--- a/src/mesa/main/texparam.c
+++ b/src/mesa/main/texparam.c
@@ -1384,7 +1384,7 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
if (!obj)
return;
- _mesa_lock_texture(ctx, obj);
+ _mesa_lock_context_textures(ctx);
switch (pname) {
case GL_TEXTURE_MAG_FILTER:
*params = ENUM_TO_FLOAT(obj->Sampler.MagFilter);
@@ -1591,11 +1591,11 @@ _mesa_GetTexParameterfv( GLenum target, GLenum pname, GLfloat *params )
}
/* no error if we get here */
- _mesa_unlock_texture(ctx, obj);
+ _mesa_unlock_context_textures(ctx);
return;
invalid_pname:
- _mesa_unlock_texture(ctx, obj);
+ _mesa_unlock_context_textures(ctx);
_mesa_error(ctx, GL_INVALID_ENUM, "glGetTexParameterfv(pname=0x%x)", pname);
}