[Mesa-dev] [PATCH 0/9] Early fp64 fixes

Iago Toral itoral at igalia.com
Thu Nov 19 23:03:03 PST 2015


On Thu, 2015-11-19 at 10:54 -0500, Connor Abbott wrote:
> On Thu, Nov 19, 2015 at 5:05 AM, Iago Toral Quiroga <itoral at igalia.com> wrote:
> > These patches are fixes extracted from Connor's fp64 branch that
> > I would like to review and land ahead of the rest. They are
> > independent of the rest of the series, some of them are even
> > general fixes unrelated to fp64 that could fix issues in master,
> > others are fairly trivial and we can easily land them now.
> >
> > It will help reduce the size of a rather big series (115 patches
> > and counting) that is still in development and ease future
> > rebases a little, specially since there is a patch that renames
> > one of the nir types, so we probably want to land that soon.
> >
> > Apparently, Connor sent most of these for review back in August but
> > they did not get reviewed back then. I went ahead and added my Rb to
> > all but one:
> >
> > i965/fs: add stride restrictions for copy propagation
> >
> > I could not verify all the conditions (particularly, the cases where we allow
> > 0 strides), so it would be nice if someone else could review that or point me
> > to the place in the docs where it says that 0 strides are safe for these
> > situations. Comments/Reviews to the other patches are also welcome :)
> 
> Well, the docs don't say that it's unsafe either :) But more
> seriously, we use 0 strides all the time -- in particular, we use them
> for uniforms when they get promoted to push constants, since when
> they're pushed to the EU they're packed into registers with, say, 8
> 32-bit things per SIMD8 register. So to get, say, the second uniform,
> we need to say "get the second channel of this register and splat it
> to all the channels of the source," which we can do with a source of
> stride 0 and offset 1.

Yes, that is what we do with set_smear(), right.

Only Haswell has an absolute statement saying that stride must be 1 for
Math instructions and we respect that in the patch, it makes sense.
Thanks for the clarification.

Iago

> >
> > No piglit regressions on IVB.
> >
> > Connor Abbott (8):
> >   i965/fs: print non-1 strides when dumping instructions
> >   i965/fs: print writemask_all when it's enabled
> >   i965: fix 64-bit immediates in brw_inst(_set)_bits
> >   i965/fs: respect force_sechalf/force_writemask_all in CSE
> >   i965/fs: don't propagate cmod when the exec sizes differ
> >   i965/fs: add stride restrictions for copy propagation
> >   i965/vec4: avoid dependency control around Align1 instructions
> >   nir/builder: only read meaningful channels in nir_swizzle()
> >
> > Jason Ekstrand (1):
> >   nir: s/nir_type_unsigned/nir_type_uint
> >
> >  src/gallium/auxiliary/nir/tgsi_to_nir.c            |  2 +-
> >  src/glsl/nir/glsl_to_nir.cpp                       |  2 +-
> >  src/glsl/nir/nir.h                                 |  2 +-
> >  src/glsl/nir/nir_builder.h                         |  2 +-
> >  src/glsl/nir/nir_constant_expressions.py           |  2 +-
> >  src/glsl/nir/nir_opcodes.py                        | 78 +++++++++++-----------
> >  src/glsl/nir/nir_search.c                          |  4 +-
> >  src/mesa/drivers/dri/i965/brw_fs.cpp               | 15 +++++
> >  .../drivers/dri/i965/brw_fs_cmod_propagation.cpp   |  3 +
> >  .../drivers/dri/i965/brw_fs_copy_propagation.cpp   | 58 +++++++++++++++-
> >  src/mesa/drivers/dri/i965/brw_fs_cse.cpp           |  2 +
> >  src/mesa/drivers/dri/i965/brw_inst.h               |  6 +-
> >  src/mesa/drivers/dri/i965/brw_nir.c                |  4 +-
> >  src/mesa/drivers/dri/i965/brw_vec4.cpp             | 17 +++--
> >  src/mesa/drivers/dri/i965/brw_vec4_nir.cpp         |  2 +-
> >  15 files changed, 142 insertions(+), 57 deletions(-)
> >
> > --
> > 1.9.1
> >
> 




More information about the mesa-dev mailing list