[Mesa-dev] [PATCH 1/3] glsl: skip buffer variables when filling UniformRemapTable
Samuel Iglesias Gonsálvez
siglesias at igalia.com
Tue Oct 20 07:06:10 PDT 2015
Series is
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Thanks,
Sam
On 20/10/15 11:24, Tapani Pälli wrote:
> UniformRemapTable is used only for remapping user specified uniform
> locations to driver internally used ones, shader storage buffer
> variables should not utilize uniform locations.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
> src/glsl/link_uniforms.cpp | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp
> index fe00aa3..f7b87a1 100644
> --- a/src/glsl/link_uniforms.cpp
> +++ b/src/glsl/link_uniforms.cpp
> @@ -1180,7 +1180,8 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
>
> /* Reserve all the explicit locations of the active uniforms. */
> for (unsigned i = 0; i < num_uniforms; i++) {
> - if (uniforms[i].type->is_subroutine())
> + if (uniforms[i].type->is_subroutine() ||
> + uniforms[i].is_shader_storage)
> continue;
>
> if (uniforms[i].remap_location != UNMAPPED_UNIFORM_LOC) {
> @@ -1200,8 +1201,10 @@ link_assign_uniform_locations(struct gl_shader_program *prog,
> /* Reserve locations for rest of the uniforms. */
> for (unsigned i = 0; i < num_uniforms; i++) {
>
> - if (uniforms[i].type->is_subroutine())
> + if (uniforms[i].type->is_subroutine() ||
> + uniforms[i].is_shader_storage)
> continue;
> +
> /* Built-in uniforms should not get any location. */
> if (uniforms[i].builtin)
> continue;
>
More information about the mesa-dev
mailing list