Mesa (master): mesa: Store gl_shader_stage enum in gl_shader objects.

Paul Berry stereotype441 at kemper.freedesktop.org
Wed Jan 8 15:44:12 UTC 2014


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

Author: Paul Berry <stereotype441 at gmail.com>
Date:   Tue Jan  7 10:58:56 2014 -0800

mesa: Store gl_shader_stage enum in gl_shader objects.

Reviewed-by: Brian Paul <brianp at vmware.com>
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>

---

 src/glsl/main.cpp                          |    1 +
 src/glsl/standalone_scaffolding.cpp        |    1 +
 src/glsl/test_optpass.cpp                  |    1 +
 src/glsl/tests/builtin_variable_test.cpp   |    1 +
 src/mesa/drivers/dri/i965/brw_shader.cpp   |    1 +
 src/mesa/main/mtypes.h                     |    1 +
 src/mesa/main/shaderobj.c                  |    1 +
 src/mesa/state_tracker/st_glsl_to_tgsi.cpp |    1 +
 8 files changed, 8 insertions(+)

diff --git a/src/glsl/main.cpp b/src/glsl/main.cpp
index 2f59848..3260c44 100644
--- a/src/glsl/main.cpp
+++ b/src/glsl/main.cpp
@@ -362,6 +362,7 @@ main(int argc, char **argv)
 	 shader->Type = GL_FRAGMENT_SHADER;
       else
 	 usage_fail(argv[0]);
+      shader->Stage = _mesa_shader_enum_to_shader_stage(shader->Type);
 
       shader->Source = load_text_file(whole_program, argv[optind]);
       if (shader->Source == NULL) {
diff --git a/src/glsl/standalone_scaffolding.cpp b/src/glsl/standalone_scaffolding.cpp
index 73dfe5c..6a71745 100644
--- a/src/glsl/standalone_scaffolding.cpp
+++ b/src/glsl/standalone_scaffolding.cpp
@@ -76,6 +76,7 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
    shader = rzalloc(NULL, struct gl_shader);
    if (shader) {
       shader->Type = type;
+      shader->Stage = _mesa_shader_enum_to_shader_stage(type);
       shader->Name = name;
       shader->RefCount = 1;
    }
diff --git a/src/glsl/test_optpass.cpp b/src/glsl/test_optpass.cpp
index 01f6f95..bdb1e8f 100644
--- a/src/glsl/test_optpass.cpp
+++ b/src/glsl/test_optpass.cpp
@@ -204,6 +204,7 @@ int test_optpass(int argc, char **argv)
 
    struct gl_shader *shader = rzalloc(NULL, struct gl_shader);
    shader->Type = shader_type;
+   shader->Stage = _mesa_shader_enum_to_shader_stage(shader_type);
 
    string input = read_stdin_to_eof();
 
diff --git a/src/glsl/tests/builtin_variable_test.cpp b/src/glsl/tests/builtin_variable_test.cpp
index 63949ee..9b4a097 100644
--- a/src/glsl/tests/builtin_variable_test.cpp
+++ b/src/glsl/tests/builtin_variable_test.cpp
@@ -65,6 +65,7 @@ common_builtin::SetUp()
 
    this->shader = rzalloc(this->mem_ctx, gl_shader);
    this->shader->Type = this->shader_type;
+   this->shader->Stage = _mesa_shader_enum_to_shader_stage(this->shader_type);
 
    this->state =
       new(mem_ctx) _mesa_glsl_parse_state(&this->ctx, this->shader->Type,
diff --git a/src/mesa/drivers/dri/i965/brw_shader.cpp b/src/mesa/drivers/dri/i965/brw_shader.cpp
index a40df6d..c0d6aa2 100644
--- a/src/mesa/drivers/dri/i965/brw_shader.cpp
+++ b/src/mesa/drivers/dri/i965/brw_shader.cpp
@@ -40,6 +40,7 @@ brw_new_shader(struct gl_context *ctx, GLuint name, GLuint type)
    shader = rzalloc(NULL, struct brw_shader);
    if (shader) {
       shader->base.Type = type;
+      shader->base.Stage = _mesa_shader_enum_to_shader_stage(type);
       shader->base.Name = name;
       _mesa_init_shader(ctx, &shader->base);
    }
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 04bc4d4..37e0592 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2319,6 +2319,7 @@ struct gl_shader
     * Must be the first field.
     */
    GLenum Type;
+   gl_shader_stage Stage;
    GLuint Name;  /**< AKA the handle */
    GLchar *Label;   /**< GL_KHR_debug */
    GLint RefCount;  /**< Reference count */
diff --git a/src/mesa/main/shaderobj.c b/src/mesa/main/shaderobj.c
index 3076fb4..dc81bbc 100644
--- a/src/mesa/main/shaderobj.c
+++ b/src/mesa/main/shaderobj.c
@@ -110,6 +110,7 @@ _mesa_new_shader(struct gl_context *ctx, GLuint name, GLenum type)
    shader = rzalloc(NULL, struct gl_shader);
    if (shader) {
       shader->Type = type;
+      shader->Stage = _mesa_shader_enum_to_shader_stage(type);
       shader->Name = name;
       _mesa_init_shader(ctx, shader);
    }
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index b2131ed..bd4eb5e 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -5207,6 +5207,7 @@ st_new_shader(struct gl_context *ctx, GLuint name, GLuint type)
    shader = rzalloc(NULL, struct gl_shader);
    if (shader) {
       shader->Type = type;
+      shader->Stage = _mesa_shader_enum_to_shader_stage(type);
       shader->Name = name;
       _mesa_init_shader(ctx, shader);
    }




More information about the mesa-commit mailing list