https://bugs.freedesktop.org/show_bug.cgi?id=89726
--- Comment #5 from Tapani Pälli <lem...@gmail.com> --- (In reply to Ilia Mirkin from comment #4) > Yeah.... IMO that's the wrong fix though. I think my earlier code was just > bonkers (which I knew at the time, but was hoping I could get away with). I think 1ec715ce was fine as then you don't need to make special cases here and there in the already quite complicated code. > This is what I'm testing right now: > > diff --git a/src/glsl/glsl_types.cpp b/src/glsl/glsl_types.cpp > index 38b37a6..be87b0a 100644 > --- a/src/glsl/glsl_types.cpp > +++ b/src/glsl/glsl_types.cpp > @@ -1077,15 +1077,6 @@ glsl_type::std140_base_alignment(bool row_major) const > return base_alignment; > } > > - /* A sampler may never occur in a UBO (without bindless of some sort), > - * however it is convenient to use this alignment function even with > - * regular uniforms. This allows use of this function on uniform structs > - * that contain samplers. > - */ > - if (this->is_sampler()) { > - return 0; > - } > - > assert(!"not reached"); > return -1; > } > diff --git a/src/glsl/link_uniforms.cpp b/src/glsl/link_uniforms.cpp > index 799c74b..59adc29 100644 > --- a/src/glsl/link_uniforms.cpp > +++ b/src/glsl/link_uniforms.cpp > @@ -547,6 +547,8 @@ private: > virtual void enter_record(const glsl_type *type, const char *name, > bool row_major) { > assert(type->is_record()); > + if (this->ubo_block_index == -1) > + return; > this->ubo_byte_offset = glsl_align( > this->ubo_byte_offset, type->std140_base_alignment(row_major)); > } > @@ -554,6 +556,8 @@ private: > virtual void leave_record(const glsl_type *type, const char *name, > bool row_major) { > assert(type->is_record()); > + if (this->ubo_block_index == -1) > + return; > this->ubo_byte_offset = glsl_align( > this->ubo_byte_offset, type->std140_base_alignment(row_major)); > } Yep, that should do it (if nothing else depends on 1ec715ce). -- You are receiving this mail because: You are the QA Contact for the bug. You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev