diff options
author | marha <marha@users.sourceforge.net> | 2011-11-09 17:05:56 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-11-09 17:05:56 +0100 |
commit | 72d7f8d5af476f12dc75eab4fa9d59364cbec190 (patch) | |
tree | 1efac13a52811bfd28ae51538b15f87cbfaf8939 /mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | |
parent | a3d796bcc7de83fd88b42e09c6a82a8df4f9b836 (diff) | |
parent | a8e5f06fe01732fbd643bc435dd3b8eaa602defe (diff) | |
download | vcxsrv-72d7f8d5af476f12dc75eab4fa9d59364cbec190.tar.gz vcxsrv-72d7f8d5af476f12dc75eab4fa9d59364cbec190.tar.bz2 vcxsrv-72d7f8d5af476f12dc75eab4fa9d59364cbec190.zip |
Merge remote-tracking branch 'origin/released'
Conflicts:
mesalib/src/mapi/glapi/glapi.h
Diffstat (limited to 'mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp')
-rw-r--r-- | mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 529f5f64a..b133164c3 100644 --- a/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/mesalib/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -53,7 +53,6 @@ extern "C" { #include "program/prog_optimize.h" #include "program/prog_print.h" #include "program/program.h" -#include "program/prog_uniform.h" #include "program/prog_parameter.h" #include "program/sampler.h" @@ -2984,12 +2983,12 @@ set_uniform_initializer(struct gl_context *ctx, void *mem_ctx, element_type->matrix_columns, element_type->vector_elements, loc, 1, GL_FALSE, (GLfloat *)values); - loc += element_type->matrix_columns; } else { _mesa_uniform(ctx, shader_program, loc, element_type->matrix_columns, values, element_type->gl_type); - loc += type_size(element_type); } + + loc++; } } @@ -5004,6 +5003,15 @@ get_mesa_program(struct gl_context *ctx, _mesa_reference_program(ctx, &shader->Program, prog); + /* This has to be done last. Any operation the can cause + * prog->ParameterValues to get reallocated (e.g., anything that adds a + * program constant) has to happen before creating this linkage. + */ + _mesa_associate_uniform_storage(ctx, shader_program, prog->Parameters); + if (!shader_program->LinkStatus) { + return NULL; + } + struct st_vertex_program *stvp; struct st_fragment_program *stfp; struct st_geometry_program *stgp; |