Reviewed-by: Dave Airlie <airl...@redhat.com>
On 8 June 2016 at 10:04, Timothy Arceri <timothy.arc...@collabora.com> wrote: > Ping. This just stops counting and assigning a storage location for > these uniforms, the count is only used to create the Uniform storage > [1]. > > These uniform types don't use this storage. > > [1] https://cgit.freedesktop.org/mesa/mesa/tree/src/compiler/glsl/link_ > uniforms.cpp#n1080 > > On Thu, 2016-06-02 at 15:32 +1000, Timothy Arceri wrote: >> --- >> src/compiler/glsl/link_uniforms.cpp | 20 +++++++++++++------- >> 1 file changed, 13 insertions(+), 7 deletions(-) >> >> diff --git a/src/compiler/glsl/link_uniforms.cpp >> b/src/compiler/glsl/link_uniforms.cpp >> index a7f136c..571c49f 100644 >> --- a/src/compiler/glsl/link_uniforms.cpp >> +++ b/src/compiler/glsl/link_uniforms.cpp >> @@ -402,7 +402,9 @@ private: >> * uniforms. >> */ >> this->num_active_uniforms++; >> - this->num_values += values; >> + >> + if(!is_gl_identifier(name) && !is_shader_storage) >> + this->num_values += values; >> } >> >> struct string_to_uint_map *hidden_map; >> @@ -762,13 +764,14 @@ private: >> current_var->data.how_declared == ir_var_hidden; >> this->uniforms[id].builtin = is_gl_identifier(name); >> >> - /* Do not assign storage if the uniform is builtin */ >> - if (!this->uniforms[id].builtin) >> - this->uniforms[id].storage = this->values; >> - >> this->uniforms[id].is_shader_storage = >> current_var->is_in_shader_storage_block(); >> >> + /* Do not assign storage if the uniform is builtin */ >> + if (!this->uniforms[id].builtin && >> + !this->uniforms[id].is_shader_storage) >> + this->uniforms[id].storage = this->values; >> + >> if (this->buffer_block_index != -1) { >> this->uniforms[id].block_index = this->buffer_block_index; >> >> @@ -819,7 +822,9 @@ private: >> this->uniforms[id].row_major = false; >> } >> >> - this->values += values_for_type(type); >> + if (!this->uniforms[id].builtin && >> + !this->uniforms[id].is_shader_storage) >> + this->values += values_for_type(type); >> } >> >> /** >> @@ -1270,7 +1275,8 @@ link_assign_uniform_locations(struct >> gl_shader_program *prog, >> >> #ifndef NDEBUG >> for (unsigned i = 0; i < num_uniforms; i++) { >> - assert(uniforms[i].storage != NULL || uniforms[i].builtin); >> + assert(uniforms[i].storage != NULL || uniforms[i].builtin || >> + uniforms[i].is_shader_storage); >> } >> >> assert(parcel.values == data_end); > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev