Mesa (8.0): mesa: Don't advertise GLES extensions in GL contexts

Chad Versace chadversary at kemper.freedesktop.org
Thu Sep 6 18:50:49 UTC 2012


Module: Mesa
Branch: 8.0
Commit: d788066575828ecd7e9bf6dacc705b50612c6406
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=d788066575828ecd7e9bf6dacc705b50612c6406

Author: Chad Versace <chad.versace at linux.intel.com>
Date:   Tue Sep  4 10:02:43 2012 -0700

mesa: Don't advertise GLES extensions in GL contexts

glGetStringi(GL_EXTENSIONS) failed to respect the context's API, and so
returned all internally enabled GLES extensions from a GL context.
Likewise, glGetIntegerv(GL_NUM_EXTENSIONS) also failed to repsect the
context's API.

Note: This is a candidate for the 8.0 and 9.0 branches.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Signed-off-by: Chad Versace <chad.versace at linux.intel.com>
(cherry picked from commit f29a4b0157c6a7a31d2a2991a431b4211d01d162)

Conflicts:
	src/mesa/main/extensions.c

---

 src/mesa/main/extensions.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/src/mesa/main/extensions.c b/src/mesa/main/extensions.c
index b7b1e44..f9d4435 100644
--- a/src/mesa/main/extensions.c
+++ b/src/mesa/main/extensions.c
@@ -916,7 +916,7 @@ _mesa_get_extension_count(struct gl_context *ctx)
 
    base = (GLboolean *) &ctx->Extensions;
    for (i = extension_table; i->name != 0; ++i) {
-      if (base[i->offset]) {
+      if (base[i->offset] && (i->api_set & (1 << ctx->API))) {
 	 ctx->Extensions.Count++;
       }
    }
@@ -939,10 +939,11 @@ _mesa_get_enabled_extension(struct gl_context *ctx, GLuint index)
    base = (GLboolean*) &ctx->Extensions;
    n = 0;
    for (i = extension_table; i->name != 0; ++i) {
-      if (n == index && base[i->offset]) {
-	 return (GLubyte*) i->name;
-      } else if (base[i->offset]) {
-	 ++n;
+      if (base[i->offset] & (i->api_set & (1 << ctx->API))) {
+         if (n == index)
+            return (const GLubyte*) i->name;
+         else
+            ++n;
       }
    }
 




More information about the mesa-commit mailing list