mesa: Store gl_shader_stage enum in gl_shader objects.
authorPaul Berry <stereotype441@gmail.com>
Tue, 7 Jan 2014 18:58:56 +0000 (10:58 -0800)
committerPaul Berry <stereotype441@gmail.com>
Wed, 8 Jan 2014 15:31:28 +0000 (07:31 -0800)
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/glsl/main.cpp
src/glsl/standalone_scaffolding.cpp
src/glsl/test_optpass.cpp
src/glsl/tests/builtin_variable_test.cpp
src/mesa/drivers/dri/i965/brw_shader.cpp
src/mesa/main/mtypes.h
src/mesa/main/shaderobj.c
src/mesa/state_tracker/st_glsl_to_tgsi.cpp

index 2f59848adbf1464fec74785ce38e07a6a6d67703..3260c44710f1067ab5018d8dad73df69c8c33a3a 100644 (file)
@@ -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) {
index 73dfe5c38be520749ff9055eeba36ab47d657cac..6a717458e604decf7306b5ca91dc39e7fa925a81 100644 (file)
@@ -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;
    }
index 01f6f9585f01c06a3a6e4db3f287285417456c3c..bdb1e8ffdebdb8ab20cf2b2c0dd27f43b7d7da74 100644 (file)
@@ -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();
 
index 63949ee262ee865aaec0ff6c8c75ce993e0f0643..9b4a097b1e4b1477c482f1a16e48f6699d400e2f 100644 (file)
@@ -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,
index a40df6d17a47f51623adc777acfec1e672d49bd2..c0d6aa27eeb48ec4989e44a4f53f3e4d5e94027d 100644 (file)
@@ -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);
    }
index 04bc4d4660fa996713d2eb134d9378d876a9ab20..37e05927d8c110241c4b6df97ebdfc881c71d463 100644 (file)
@@ -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 */
index 3076fb425c9a0f85f167a3e138877bbeff495f5d..dc81bbc7717ac415ed727f797cd4db0ca327ae16 100644 (file)
@@ -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);
    }
index b2131ed48b32e35cdf84330d98da1651e3477cd3..bd4eb5e3f205a4b087c598cc10d8cb560abeb5f0 100644 (file)
@@ -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);
    }