Mesa (gles3): mesa/es3: Enable ES 3.0 API and shading language version

Ian Romanick idr at kemper.freedesktop.org
Wed Aug 8 22:28:28 UTC 2012


Module: Mesa
Branch: gles3
Commit: 14a7f78baedbffc59612cd33fcce6edebe0b3262
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=14a7f78baedbffc59612cd33fcce6edebe0b3262

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Wed Aug  8 15:25:00 2012 -0700

mesa/es3: Enable ES 3.0 API and shading language version

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>

---

 src/mesa/main/getstring.c |    4 +++-
 src/mesa/main/version.c   |   29 ++++++++++++++++++++++++++---
 2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/src/mesa/main/getstring.c b/src/mesa/main/getstring.c
index f7647af..46ebb6b 100644
--- a/src/mesa/main/getstring.c
+++ b/src/mesa/main/getstring.c
@@ -74,7 +74,9 @@ shading_language_version(struct gl_context *ctx)
       break;
 
    case API_OPENGLES2:
-      return (const GLubyte *) "OpenGL ES GLSL ES 1.0.16";
+      return (ctx->Version < 30)
+         ? (const GLubyte *) "OpenGL ES GLSL ES 1.0.16"
+         : (const GLubyte *) "OpenGL ES GLSL ES 3.0"
 
    case API_OPENGLES:
       /* fall-through */
diff --git a/src/mesa/main/version.c b/src/mesa/main/version.c
index 59c81ae..00011f3 100644
--- a/src/mesa/main/version.c
+++ b/src/mesa/main/version.c
@@ -284,7 +284,30 @@ compute_version_es2(struct gl_context *ctx)
                               ctx->Extensions.ARB_fragment_shader &&
                               ctx->Extensions.ARB_texture_non_power_of_two &&
                               ctx->Extensions.EXT_blend_equation_separate);
-   if (ver_2_0) {
+   /* FINISHME: This list isn't quite right. */
+   const GLboolean ver_3_0 = (ctx->Extensions.ARB_half_float_vertex &&
+                              ctx->Extensions.ARB_map_buffer_range &&
+                              ctx->Extensions.ARB_shader_texture_lod &&
+                              ctx->Extensions.ARB_texture_float &&
+                              ctx->Extensions.ARB_texture_rg &&
+                              ctx->Extensions.ARB_texture_compression_rgtc &&
+                              ctx->Extensions.APPLE_vertex_array_object &&
+                              ctx->Extensions.EXT_draw_buffers2 &&
+                              /* ctx->Extensions.ARB_framebuffer_object && */
+                              ctx->Extensions.EXT_framebuffer_sRGB &&
+                              ctx->Extensions.EXT_packed_float &&
+                              ctx->Extensions.EXT_texture_array &&
+                              ctx->Extensions.EXT_texture_shared_exponent &&
+                              ctx->Extensions.EXT_transform_feedback &&
+                              ctx->Extensions.NV_conditional_render &&
+                              ctx->Extensions.ARB_copy_buffer &&
+                              ctx->Extensions.ARB_draw_instanced &&
+                              ctx->Extensions.ARB_uniform_buffer_object &&
+                              ctx->Extensions.EXT_texture_snorm &&
+                              ctx->Extensions.NV_primitive_restart);
+   if (ver_3_0) {
+      ctx->Version = 30;
+   } else if (ver_2_0) {
       ctx->Version = 20;
    } else {
       _mesa_problem(ctx, "Incomplete OpenGL ES 2.0 support.");
@@ -293,11 +316,11 @@ compute_version_es2(struct gl_context *ctx)
    ctx->VersionString = (char *) malloc(max);
    if (ctx->VersionString) {
       _mesa_snprintf(ctx->VersionString, max,
-		     "OpenGL ES 2.0 Mesa " MESA_VERSION_STRING
+		     "OpenGL ES %d.%d Mesa " MESA_VERSION_STRING
 #ifdef MESA_GIT_SHA1
 		     " (" MESA_GIT_SHA1 ")"
 #endif
-		     );
+                     , ctx->Version / 10, ctx->Version % 10);
    }
 }
 




More information about the mesa-commit mailing list