Mesa (master): mesa: Eliminate gl_shader_program::InternalSeparateShader

Ian Romanick idr at kemper.freedesktop.org
Fri May 2 14:31:43 UTC 2014


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

Author: Ian Romanick <ian.d.romanick at intel.com>
Date:   Thu Mar 27 10:29:30 2014 -0700

mesa: Eliminate gl_shader_program::InternalSeparateShader

This was a work-around to allow linking a program with only a fragment
shader in a GLES context.  Now that we have GL_EXT_separate_shader_objects
in GLES contexts, we can just use that.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Reviewed-by: Eric Anholt <eric at anholt.net>

---

 src/glsl/linker.cpp                  |    3 +--
 src/mesa/main/ff_fragment_shader.cpp |    2 +-
 src/mesa/main/mtypes.h               |   11 -----------
 3 files changed, 2 insertions(+), 14 deletions(-)

diff --git a/src/glsl/linker.cpp b/src/glsl/linker.cpp
index 7ec1e5a..a43d230 100644
--- a/src/glsl/linker.cpp
+++ b/src/glsl/linker.cpp
@@ -2607,8 +2607,7 @@ link_shaders(struct gl_context *ctx, struct gl_shader_program *prog)
     * fragment shader) is absent. So, the extension shouldn't change the
     * behavior specified in GLSL specification.
     */
-   if (!prog->InternalSeparateShader && !prog->SeparateShader
-       && ctx->API == API_OPENGLES2) {
+   if (!prog->SeparateShader && ctx->API == API_OPENGLES2) {
       if (prog->_LinkedShaders[MESA_SHADER_VERTEX] == NULL) {
 	 linker_error(prog, "program lacks a vertex shader\n");
       } else if (prog->_LinkedShaders[MESA_SHADER_FRAGMENT] == NULL) {
diff --git a/src/mesa/main/ff_fragment_shader.cpp b/src/mesa/main/ff_fragment_shader.cpp
index 605f371..8c36097 100644
--- a/src/mesa/main/ff_fragment_shader.cpp
+++ b/src/mesa/main/ff_fragment_shader.cpp
@@ -1299,7 +1299,7 @@ create_new_program(struct gl_context *ctx, struct state_key *key)
     * fixed function program in a GLES2 context at all, but that's a
     * big mess to clean up.
     */
-   p.shader_program->InternalSeparateShader = GL_TRUE;
+   p.shader_program->SeparateShader = GL_TRUE;
 
    state->language_version = 130;
    state->es_shader = false;
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 7cfa9d0..e57c04d 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2608,17 +2608,6 @@ struct gl_shader_program
    GLboolean BinaryRetreivableHint;
 
    /**
-    * Flags that the linker should not reject the program if it lacks
-    * a vertex or fragment shader.  GLES2 doesn't allow separate
-    * shader objects, and would reject them.  However, we internally
-    * build separate shader objects for fixed function programs, which
-    * we use for drivers/common/meta.c and for handling
-    * _mesa_update_state with no program bound (for example in
-    * glClear()).
-    */
-   GLboolean InternalSeparateShader;
-
-   /**
     * Indicates whether program can be bound for individual pipeline stages
     * using UseProgramStages after it is next linked.
     */




More information about the mesa-commit mailing list