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