summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorIan Romanick <[email protected]>2013-06-10 10:33:59 -0700
committerIan Romanick <[email protected]>2013-07-03 12:23:45 -0700
commitab159327a7dc2dd41f9887d053d4abb3de69d195 (patch)
tree7309b0bfff4486044236406020cf4e4f8785bfb9 /src/mesa
parente94a89de4deeabd0f8347795385b2f098aa35365 (diff)
glsl: Add a gl_shader_program parameter to _mesa_uniform_{merge,split}_location_offset
This will be used in the next commit. NOTE: This is a candidate for stable release branches. Signed-off-by: Ian Romanick <[email protected]> Reviewed-by: Brian Paul <[email protected]> Reviewed-and-tested-by: Chad Versace <[email protected]> (cherry picked from commit 5097f358419c067a71e96e39764b3bb0a716bdbb)
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/main/uniform_query.cpp2
-rw-r--r--src/mesa/main/uniforms.c2
-rw-r--r--src/mesa/main/uniforms.h6
-rw-r--r--src/mesa/state_tracker/st_glsl_to_tgsi.cpp2
4 files changed, 7 insertions, 5 deletions
diff --git a/src/mesa/main/uniform_query.cpp b/src/mesa/main/uniform_query.cpp
index b8335fe6bd8..fbbe5772ec3 100644
--- a/src/mesa/main/uniform_query.cpp
+++ b/src/mesa/main/uniform_query.cpp
@@ -234,7 +234,7 @@ validate_uniform_parameters(struct gl_context *ctx,
return false;
}
- _mesa_uniform_split_location_offset(location, loc, array_index);
+ _mesa_uniform_split_location_offset(shProg, location, loc, array_index);
if (*loc >= shProg->NumUserUniformStorage) {
_mesa_error(ctx, GL_INVALID_OPERATION, "%s(location=%d)",
diff --git a/src/mesa/main/uniforms.c b/src/mesa/main/uniforms.c
index d902407a077..cee57a7362c 100644
--- a/src/mesa/main/uniforms.c
+++ b/src/mesa/main/uniforms.c
@@ -532,7 +532,7 @@ _mesa_GetUniformLocation(GLhandleARB programObj, const GLcharARB *name)
if (shProg->UniformStorage[index].block_index != -1)
return -1;
- return _mesa_uniform_merge_location_offset(index, offset);
+ return _mesa_uniform_merge_location_offset(shProg, index, offset);
}
GLuint GLAPIENTRY
diff --git a/src/mesa/main/uniforms.h b/src/mesa/main/uniforms.h
index a12ad9b36f3..853a27ca747 100644
--- a/src/mesa/main/uniforms.h
+++ b/src/mesa/main/uniforms.h
@@ -268,7 +268,8 @@ struct gl_builtin_uniform_desc {
* Combine the uniform's base location and the offset
*/
static inline GLint
-_mesa_uniform_merge_location_offset(unsigned base_location, unsigned offset)
+_mesa_uniform_merge_location_offset(const struct gl_shader_program *prog,
+ unsigned base_location, unsigned offset)
{
return (base_location << 16) | offset;
}
@@ -277,7 +278,8 @@ _mesa_uniform_merge_location_offset(unsigned base_location, unsigned offset)
* Separate the uniform base location and parameter offset
*/
static inline void
-_mesa_uniform_split_location_offset(GLint location, unsigned *base_location,
+_mesa_uniform_split_location_offset(const struct gl_shader_program *prog,
+ GLint location, unsigned *base_location,
unsigned *offset)
{
*offset = location & 0xffff;
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index 4286f0e04d0..1e04f64942c 100644
--- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
+++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
@@ -3052,7 +3052,7 @@ set_uniform_initializer(struct gl_context *ctx, void *mem_ctx,
"Couldn't find uniform for initializer %s\n", name);
return;
}
- int loc = _mesa_uniform_merge_location_offset(index, offset);
+ int loc = _mesa_uniform_merge_location_offset(shader_program, index, offset);
for (unsigned int i = 0; i < (type->is_array() ? type->length : 1); i++) {
ir_constant *element;