Hi, this breaks drawing for Qt apps on radeonsi. I won't look into it right now, maybe next week. Any idea what's wrong here?
Marek On Wed, Jan 4, 2017 at 12:07 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > Right now, this shouldn't have any effect, as all drivers use > LowerClipDist and LowerTessFactors to turn the float[] arrays into > vectors. > > However, it should help make it possible for drivers to avoid that > lowering. > > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/compiler/glsl/ir.cpp | 18 ++++++++++++++++++ > 1 file changed, 18 insertions(+) > > diff --git a/src/compiler/glsl/ir.cpp b/src/compiler/glsl/ir.cpp > index a77b9a9d857..69f1f1a7e5d 100644 > --- a/src/compiler/glsl/ir.cpp > +++ b/src/compiler/glsl/ir.cpp > @@ -1621,6 +1621,24 @@ ir_variable::get_extension_warning() const > unsigned > ir_variable::count_attribute_slots(bool is_vertex_stage) const > { > + /* GLSL contains several built-in arrays that control fixed-function > + * hardware, and are somewhat special. Clip distances and tessellation > + * factors are exposed as float[] arrays, but typically are packed > + * tightly. We want to expose these as taking a single varying slot > + * and let drivers handle laying them out appropriately. > + * > + * Skip this override if the arrays were lowered to vectors. > + */ > + if (type->without_array()->is_scalar() && > + (data.mode == ir_var_shader_in || data.mode == ir_var_shader_out) && > + (data.location == VARYING_SLOT_CLIP_DIST0 || > + data.location == VARYING_SLOT_CULL_DIST0 || > + data.location == VARYING_SLOT_TESS_LEVEL_OUTER || > + data.location == VARYING_SLOT_TESS_LEVEL_INNER)) { > + return type->length / 4; > + } > + > + /* For normal variables, simply consult the type. */ > bool is_vs_input = is_vertex_stage && this->data.mode == ir_var_shader_in; > return this->type->count_attribute_slots(is_vs_input); > } > -- > 2.11.0 > > _______________________________________________ > 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