<div dir="ltr"><div>I had a few comments, but by-and-large it looks fine.  If you think you need to do a respin, that's fine.  Otherwise, with the comments addressed,<br><br></div>Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net" target="_blank">jason@jlekstrand.net</a>><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 7, 2016 at 12:45 AM, Samuel Iglesias Gonsálvez <span dir="ltr"><<a href="mailto:siglesias@igalia.com" target="_blank">siglesias@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
Iago and I are working on adding FP64 support to i965 drivers [0] with<br>
the help of Connor and Jason (Thanks!). That support requires changes<br>
in NIR to include the bit-size information in the data types and also<br>
modifications in the opcodes to use sized types as needed.<br>
<br>
This means that all NIR clients should take that information into<br>
consideration as well, since backends are now expected to see sized NIR<br>
types and they need to handle them properly.<br>
<br>
This batch is the smallest set of NIR patches required to<br>
incorporate sized types together with the minimum set of changes<br>
required to i965, freedreno and vc4 that we have identified. Rob Clark<br>
and Eric Anholt checked that freedreno and vc4 drivers respectively<br>
work fine with these changes.<br>
<br>
We have verified that with these changes there are no regressions in<br>
Piglit for i965, which does the minimum necessary to deal with sized<br>
types at this point. We tested on gen5, gen6, gen7 and gen8. We don't<br>
have gen4 hardware available, so trying this would also require<br>
involvement from other people with access to this hardware.<br>
<br>
With this series, drivers should be able to work normally with both<br>
sized and unsized types (mostly by ignoring the size aspect of the<br>
type).<br>
<br>
The rest of the fp64 work that we hope to send soon for review will add<br>
further changes to ensure that we get correct bit-sized types wherever<br>
we need them, but we will postpone this until we actually need to care<br>
about different bit-sizes, when we send the fp64 for review, since that<br>
requires a lot more changes.<br>
<br>
The reason we are sending this part ahead is that the inclusion of sized<br>
types in NIR together with the bit-size information affects all drivers<br>
using NIR, and since it affects a lot of NIR opcodes (that now need to<br>
be defined using the corresponding bit-sized types) it is much easier to<br>
review and land this ahead of the rest of the series and have everyone<br>
be aware of this change as soon as possible.<br>
<br>
Because of this it would also be great if new code checked in after this<br>
series also tries to incorporate bit-size information to the types in<br>
NIR and the drivers, even if the drivers can eat the unsized types too<br>
for now.  We will try to fix anything that slips in as we rebase our<br>
fp64 branch though.<br>
<br>
We would like to land this batch of patches in NIR ahead of the rest<br>
of the fp64 changes, which will use sized types extensively. This is<br>
important because the change is significant and it is important that<br>
new code landing in master is aware of this as soon as possible.<br>
<br>
Our idea is to squash these patches together into a single commit before<br>
pushing them to master. We keep them separate here to facilitate the<br>
review.<br>
<br>
Thanks,<br>
<br>
Sam<br>
<br>
[0] <a href="https://bugs.freedesktop.org/show_bug.cgi?id=92760" rel="noreferrer" target="_blank">https://bugs.freedesktop.org/show_bug.cgi?id=92760</a><br>
<br>
Connor Abbott (10):<br>
  nir/types: add a function to get the bitsize of a base type<br>
  nir: add double constant types<br>
  nir: update opcode definitions for different bit sizes<br>
  nir: handle different bit sizes when constant folding<br>
  i965: fix brw_type_for_nir_type() for sized types<br>
  i965: fix brw_glsl_base_type_for_nir_type() for sized types<br>
  nir: add nir_src_bit_size() helper<br>
  nir: add nir_dest_bit_size() helper<br>
  nir: add a bit_size parameter to nir_ssa_dest_init<br>
  nir: propagate bitsize information in nir_search<br>
<br>
Iago Toral Quiroga (1):<br>
  vc4: adapt to new sized alu types<br>
<br>
Jason Ekstrand (2):<br>
  nir: Add explicitly sized types<br>
  nir: Add a bit_size to nir_register and nir_ssa_def<br>
<br>
Samuel Iglesias Gonsálvez (1):<br>
  i965/nir: fix check to resolve booleans to work with sized<br>
    nir_alu_type<br>
<br>
 src/compiler/nir/glsl_to_nir.cpp                   |  22 +-<br>
 src/compiler/nir/nir.c                             |  14 +-<br>
 src/compiler/nir/nir.h                             |  51 ++++-<br>
 src/compiler/nir/nir_algebraic.py                  |  22 +-<br>
 src/compiler/nir/nir_builder.h                     |  33 ++-<br>
 src/compiler/nir/nir_clone.c                       |   3 +-<br>
 src/compiler/nir/nir_constant_expressions.h        |   2 +-<br>
 src/compiler/nir/nir_constant_expressions.py       | 246 ++++++++++++--------<br>
 src/compiler/nir/nir_from_ssa.c                    |   6 +-<br>
 src/compiler/nir/nir_lower_alu_to_scalar.c         |  10 +-<br>
 src/compiler/nir/nir_lower_atomics.c               |   6 +-<br>
 src/compiler/nir/nir_lower_clip.c                  |   2 +-<br>
 src/compiler/nir/nir_lower_io.c                    |   3 +-<br>
 src/compiler/nir/nir_lower_locals_to_regs.c        |   7 +-<br>
 src/compiler/nir/nir_lower_phis_to_scalar.c        |  10 +-<br>
 src/compiler/nir/nir_lower_tex.c                   |   2 +-<br>
 src/compiler/nir/nir_lower_two_sided_color.c       |   2 +-<br>
 src/compiler/nir/nir_lower_var_copies.c            |   5 +-<br>
 src/compiler/nir/nir_lower_vars_to_ssa.c           |  12 +-<br>
 src/compiler/nir/nir_opcodes.py                    | 144 ++++++------<br>
 src/compiler/nir/nir_opt_constant_folding.c        |  24 +-<br>
 src/compiler/nir/nir_opt_peephole_select.c         |   3 +-<br>
 src/compiler/nir/nir_search.c                      | 247 +++++++++++++++++++--<br>
 src/compiler/nir/nir_search.h                      |   8 +-<br>
 src/compiler/nir/nir_to_ssa.c                      |   6 +-<br>
 src/compiler/nir/nir_validate.c                    |  42 +++-<br>
 src/compiler/nir_types.h                           |  21 ++<br>
 src/gallium/auxiliary/nir/tgsi_to_nir.c            |  14 +-<br>
 .../drivers/freedreno/ir3/ir3_nir_lower_if_else.c  |   2 +-<br>
 src/gallium/drivers/vc4/vc4_nir_lower_blend.c      |   4 +-<br>
 src/gallium/drivers/vc4/vc4_nir_lower_io.c         |   6 +-<br>
 src/gallium/drivers/vc4/vc4_nir_lower_txf_ms.c     |   2 +-<br>
 src/gallium/drivers/vc4/vc4_program.c              |   7 +-<br>
 src/mesa/drivers/dri/i965/brw_nir.c                |  18 ++<br>
 .../dri/i965/brw_nir_analyze_boolean_resolves.c    |   2 +-<br>
 .../drivers/dri/i965/brw_nir_opt_peephole_ffma.c   |   7 +-<br>
 src/mesa/program/prog_to_nir.c                     |  10 +-<br>
 37 files changed, 760 insertions(+), 265 deletions(-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.7.0<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</font></span></blockquote></div><br></div>