Nice catch. Reviewed-by: Ian Romanick <ian.d.roman...@intel.com>
On 09/24/2014 04:09 AM, Tapani Pälli wrote: > ubo offsets are assigned by link_uniform_blocks since 514f8c7e > > Signed-off-by: Tapani Pälli <tapani.pa...@intel.com> > --- > src/glsl/link_uniforms.cpp | 34 ---------------------------------- > src/glsl/linker.h | 3 --- > 2 files changed, 37 deletions(-) > > diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp > index dcce183..5772771 100644 > --- a/src/glsl/link_uniforms.cpp > +++ b/src/glsl/link_uniforms.cpp > @@ -777,40 +777,6 @@ link_update_uniform_buffer_variables(struct gl_shader > *shader) > } > } > > -void > -link_assign_uniform_block_offsets(struct gl_shader *shader) > -{ > - for (unsigned b = 0; b < shader->NumUniformBlocks; b++) { > - struct gl_uniform_block *block = &shader->UniformBlocks[b]; > - > - unsigned offset = 0; > - for (unsigned int i = 0; i < block->NumUniforms; i++) { > - struct gl_uniform_buffer_variable *ubo_var = &block->Uniforms[i]; > - const struct glsl_type *type = ubo_var->Type; > - > - unsigned alignment = type->std140_base_alignment(ubo_var->RowMajor); > - unsigned size = type->std140_size(ubo_var->RowMajor); > - > - offset = glsl_align(offset, alignment); > - ubo_var->Offset = offset; > - offset += size; > - } > - > - /* From the GL_ARB_uniform_buffer_object spec: > - * > - * "For uniform blocks laid out according to [std140] rules, > - * the minimum buffer object size returned by the > - * UNIFORM_BLOCK_DATA_SIZE query is derived by taking the > - * offset of the last basic machine unit consumed by the > - * last uniform of the uniform block (including any > - * end-of-array or end-of-structure padding), adding one, > - * and rounding up to the next multiple of the base > - * alignment required for a vec4." > - */ > - block->UniformBufferSize = glsl_align(offset, 16); > - } > -} > - > /** > * Scan the program for image uniforms and store image unit access > * information into the gl_shader data structure. > diff --git a/src/glsl/linker.h b/src/glsl/linker.h > index beb9bb2..7a6908c 100644 > --- a/src/glsl/linker.h > +++ b/src/glsl/linker.h > @@ -47,9 +47,6 @@ link_cross_validate_uniform_block(void *mem_ctx, > unsigned int *num_linked_blocks, > struct gl_uniform_block *new_block); > > -void > -link_assign_uniform_block_offsets(struct gl_shader *shader); > - > extern bool > link_uniform_blocks_are_compatible(const gl_uniform_block *a, > const gl_uniform_block *b); > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev