On Tue, Mar 22, 2016 at 3:33 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> This is mostly a re-send of a patch series I've had floating around in one > form or a while for quite some time. It's basically the same except that > the original version was missing a work-around for Sandy Bridge. For a > while, I wasn't really pushing to get it merged because I couldn't > demonstrate any actual performance benifit from pushing arrays. However, > with the Vulkan API, the concept of push constants is directly exposed to > the user and we really need to be able to indirect on them. This series > makes the FS backend 100% ready for indirect push constants; vec4 will > take a little more work. > > It's worth noting that we've been carying these patches around in our > Vulkan driver for probably 3 or 4 months now and it's working great. > > For those that prefer to review on a branch: > > https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=review/i965-uniforms > > I think Kristian has mostly reviewed these patches. However, he never sent > any R-Bs to the list. I'd also like Ken or Matt to look at it from a > design perspective. > I just confirmed with Kristian via SMS that he has, indeed, reviewed it. > Jason Ekstrand (15): > i965/fs: Add support for doing MOV_INDIRECT on uniforms > i965/fs: Don't force MASK_DISABLE on INDIRECT_MOV instructions > i965/fs: Fix regs_read() for MOV_INDIRECT with a non-zero subnr > i965/fs: Add support for MOV_INDIRECT on pre-Broadwell hardware > nir: Add another index to load_uniform to specify the range read > i965/fs: Use MOV_INDIRECT for all indirect uniform loads > i965/fs: Get rid of reladdr > i965/fs: Stop relying on param_size in assign_constant_locations > i965/fs: Get rid of the param_size array > i965/vec4: Inline get_pull_constant_offset > i965/vec4: Use MOV_INDIRECT instead of reladdr for indirect push > constants > i965/fs: Use UD type for offsets in VARYING_PULL_CONSTANT_LOAD > i965/vec4: Get rid of the uniform_size array > i965/fs: Rename demote_pull_constants to lower_constant_loads > i965/fs: Push small uniform arrays > > src/compiler/nir/nir.h | 7 + > src/compiler/nir/nir_intrinsics.h | 6 +- > src/compiler/nir/nir_lower_io.c | 5 + > src/compiler/nir/nir_print.c | 1 + > src/mesa/drivers/dri/i965/brw_fs.cpp | 189 > +++++++++++++--------- > src/mesa/drivers/dri/i965/brw_fs.h | 4 +- > src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 68 ++++++-- > src/mesa/drivers/dri/i965/brw_fs_nir.cpp | 63 +++++--- > src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 3 - > src/mesa/drivers/dri/i965/brw_ir_fs.h | 5 +- > src/mesa/drivers/dri/i965/brw_vec4.cpp | 10 +- > src/mesa/drivers/dri/i965/brw_vec4.h | 7 +- > src/mesa/drivers/dri/i965/brw_vec4_nir.cpp | 19 +-- > src/mesa/drivers/dri/i965/brw_vec4_tcs.cpp | 2 - > src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 130 ++++++--------- > src/mesa/drivers/dri/i965/brw_vec4_vs_visitor.cpp | 1 - > 16 files changed, 292 insertions(+), 228 deletions(-) > > -- > 2.5.0.400.gff86faf > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev