<p dir="ltr">I keep saying I'm going to review this "tomorrow" but I really mean it this time!  I would have today but I spent the whole day arguing the finer points of surface layout, HiZ, fast clears, and color compression with Chad.  It was a fun day! :-)</p>
<p dir="ltr">--Jason</p>
<div class="gmail_quote">On Jun 23, 2016 12:17 PM, "Topi Pohjolainen" <<a href="mailto:topi.pohjolainen@intel.com">topi.pohjolainen@intel.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">In addition to the actual vertex coordinates blorp will get another<br>
vertex input buffer providing the constants that are until now<br>
provided as uniforms. This will remove the need to configure push<br>
constants and their allocation in the pipeline.<br>
<br>
First three patches refactor the vertex data setup for blorp. The<br>
existing logic in blorp already supports all gens (gen6-gen9). I<br>
chose to change the core upload logic accordingly and simply use that<br>
for blorp.<br>
<br>
Patches 5-8 pack the constants in blorp programs into vec4s. By<br>
default compiler puts input variables two full hardware registers<br>
apart. Having them in vec4s drops the need to repack them.<br>
<br>
Last four patches take actual advantage of the change by dropping<br>
unnecessary pipeline reconfiguration.<br>
<br>
CC: Kenneth Graunke <<a href="mailto:kenneth@whitecape.org">kenneth@whitecape.org</a>><br>
CC: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
<br>
Topi Pohjolainen (18):<br>
  i965/draw: Expose vertex buffer state setup<br>
  i965: Unify vertex buffer setup<br>
  i965/blorp: Split vertex data and element setup<br>
  i965/blorp: Use core vertex buffer state setup<br>
  i965/blorp: Rename push constants to inputs<br>
  i965/blorp: Share input slot between pixel kill and blend/scaled<br>
  i965/blorp: Load tranformation coordinates as vec4<br>
  i965/blorp: Drop LOAD_UNIFORM macro<br>
  i965/blorp: Store input read mask<br>
  i965/blorp: Add support for flat input buffer<br>
  i965/blorp: Tell vertex fetcher about flat inputs<br>
  i965/blorp: Prepare for more than two vertex attributes<br>
  i965/blorp: Use flat inputs instead of uniforms<br>
  i965/blorp: Remove support for push constants<br>
  i965/urb: Allow blorp to record current settings<br>
  i965/blorp: Fix the size requirement for vertex elements<br>
  i965/blorp/gen7+: Stop trashing push constant allocation<br>
  i965/blorp/gen7+: Do not trigger push constant space reconfig<br>
<br>
 src/mesa/drivers/dri/i965/brw_blorp.c         |  18 +-<br>
 src/mesa/drivers/dri/i965/brw_blorp.h         |  81 ++++++---<br>
 src/mesa/drivers/dri/i965/brw_blorp_blit.cpp  | 135 +++++++++------<br>
 src/mesa/drivers/dri/i965/brw_blorp_clear.cpp |  15 +-<br>
 src/mesa/drivers/dri/i965/brw_context.h       |  12 +-<br>
 src/mesa/drivers/dri/i965/brw_draw.h          |  13 ++<br>
 src/mesa/drivers/dri/i965/brw_draw_upload.c   |  74 +++++---<br>
 src/mesa/drivers/dri/i965/gen6_blorp.c        | 240 +++++++++++++-------------<br>
 src/mesa/drivers/dri/i965/gen7_blorp.c        | 153 ++++------------<br>
 src/mesa/drivers/dri/i965/gen7_urb.c          |  93 +++++-----<br>
 src/mesa/drivers/dri/i965/gen8_blorp.c        |  86 ++-------<br>
 src/mesa/drivers/dri/i965/gen8_draw_upload.c  |  41 ++---<br>
 12 files changed, 448 insertions(+), 513 deletions(-)<br>
<br>
--<br>
2.5.5<br>
<br>
</blockquote></div>