On Tue, Nov 24, 2015 at 10:35 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > Apparently we have literally no support for FS varying struct inputs. > This is somewhat surprising, given that we've had tests for that very > feature that have been passing for a long time. > > Normally, varying packing splits up structures for us, so we don't see > them in the backend. However, with SSO, varying packing isn't around > to save us, and we get actual structs that we have to handle. > > This patch changes fs_visitor::emit_general_interpolation() to work > recursively, properly handling nested structs/arrays/and so on. > (It's easier to read with diff -b, as indentation changes.) > > When using the vec4 VS backend, this fixes rendering in an upcoming > game from Feral Interactive. (The scalar VS backend requires additional > bug fixes in the next patch.) > > Cc: "11.1 11.0" <mesa-sta...@lists.freedesktop.org> > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/mesa/drivers/dri/i965/brw_fs.cpp | 155 > ++++++++++++++++--------------- > src/mesa/drivers/dri/i965/brw_fs.h | 4 +- > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 3 +- > 3 files changed, 82 insertions(+), 80 deletions(-) > > I seem to recall that passing by non-const reference is generally frowned > upon by most folks here (including Paul), so I'm happy to convert to pointers > if people would prefer that. It's just a lot more asterisks.
Yes, please. It *is* a lot more asterisks, but that's kind of the point -- it makes it explicit when you're writing something that isn't local. > I've also thought about renaming this to emit_general_interpolation_helper > and making emit_general_interpolation just take a nir_variable, so that it > hides the pass-by-reference while also simplifying the interface. That could be better. With the reference -> pointer change, this and 2/2 are Reviewed-by: Matt Turner <matts...@gmail.com> Nice work. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev