mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
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 <ian.d.romanick@intel.com> Reviewed-by: Brian Paul <brianp@vmware.com> Reviewed-and-tested-by: Chad Versace <chad.versace@linux.intel.com>
This commit is contained in:
parent
4cce4efaa3
commit
5097f35841
4 changed files with 7 additions and 5 deletions
|
|
@ -235,7 +235,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)",
|
||||
|
|
|
|||
|
|
@ -538,7 +538,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
|
||||
|
|
|
|||
|
|
@ -269,7 +269,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;
|
||||
}
|
||||
|
|
@ -278,7 +279,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;
|
||||
|
|
|
|||
|
|
@ -3096,7 +3096,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;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue