Module: Mesa
Branch: master
Commit: 05161596137994ab4b31e054d5afbff877c0a074
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=05161596137994ab4b31e054d5afbff877c0a074

Author: Daniel Scharrer <dan...@constexpr.org>
Date:   Fri Aug 28 11:45:36 2015 +0200

mesa: return old name for deleted samplers for SAMPLER_BINDING queries

If the sampler object has been deleted in the same context the binding
will have been cleared. If it has been deleted in another context, the
spec does not say what should returned. None of the other binding point
queries check for deletion in another context.

Also, as names of deleted objects are free for reuse, the current code
didn't even work reliably.

Reviewed-by: Fredrik Höglund <fred...@kde.org>
Signed-off-by: Fredrik Höglund <fred...@kde.org>

---

 src/mesa/main/get.c |   11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/src/mesa/main/get.c b/src/mesa/main/get.c
index 976bff6..4855187 100644
--- a/src/mesa/main/get.c
+++ b/src/mesa/main/get.c
@@ -994,16 +994,7 @@ find_custom_value(struct gl_context *ctx, const struct 
value_desc *d, union valu
       {
          struct gl_sampler_object *samp =
             ctx->Texture.Unit[ctx->Texture.CurrentUnit].Sampler;
-
-         /*
-          * The sampler object may have been deleted on another context,
-          * so we try to lookup the sampler object before returning its Name.
-          */
-         if (samp && _mesa_lookup_samplerobj(ctx, samp->Name)) {
-            v->value_int = samp->Name;
-         } else {
-            v->value_int = 0;
-         }
+         v->value_int = samp ? samp->Name : 0;
       }
       break;
    /* GL_ARB_uniform_buffer_object */

_______________________________________________
mesa-commit mailing list
mesa-commit@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to