<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Oct 26, 2017 at 5:15 AM, Iago Toral <span dir="ltr"><<a href="mailto:itoral@igalia.com" target="_blank">itoral@igalia.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I left a few minor comments in patches 1, 2, 8 and 14. Otherwise<br>
patches 1-2, 4-5 and 7-14 (3 and 6 already have Rb) are:<br>
<br>
Reviewed-by: Iago Toral Quiroga <<a href="mailto:itoral@igalia.com">itoral@igalia.com</a>><br>
<br>
I feel like patches 10, 11 could maybe use another extra review if<br>
there is someone who wants to do it, since I am not very familiar with<br>
how all the indirect addressing stuff works and the restrictions of the<br>
hardware that affect this.<br>
<br>
Patch 14 looks good, although the part where you locate the DO block<br>
for a matching WHILE could probably use the review of someone else more<br>
familiar with the CFG code than me.<span class="HOEnZb"><font color="#888888"><br></font></span></blockquote><div><br></div><div>Curro has been working on trying to come up with a better solution to the problem so that patch will hopefully get replaced.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="HOEnZb"><font color="#888888">
Iago<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Wed, 2017-10-25 at 16:25 -0700, Jason Ekstrand wrote:<br>
> This series is a third respin of my subgroups prerequisites series<br>
> that<br>
> that I sent out a few weeks ago. Not a whole lot has changed but<br>
> there are<br>
> some new patches. Primarily,<br>
><br>
> 1) Some patches which were reviewed by Matt and Lionel were pushed<br>
> and are<br>
> no longer in the series. Thanks guys!<br>
><br>
> 2) I've applied R-B tags from various people for patches which are<br>
> reviewed but depend on still unreviewed patches.<br>
><br>
> 3) A few patches to fix little-core. In particular, the extra<br>
> little-core<br>
> EU restrictions cause problems for BROADCAST, MOV_INDIRECT, and<br>
> integer<br>
> MUL.<br>
><br>
> This series can be found on fd.o nere:<br>
><br>
> <a href="https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=review/subgroup-p" rel="noreferrer" target="_blank">https://cgit.freedesktop.org/~<wbr>jekstrand/mesa/log/?h=review/<wbr>subgroup-p</a><br>
> rereqs-v3<br>
><br>
> Happy reviewing!<br>
><br>
><br>
> Cc: Matt Turner <<a href="mailto:mattst88@gmail.com">mattst88@gmail.com</a>><br>
> Cc: Francisco Jerez <<a href="mailto:currojerez@riseup.net">currojerez@riseup.net</a>><br>
> Cc: Connor Abbott <<a href="mailto:cwabbott0@gmail.com">cwabbott0@gmail.com</a>><br>
><br>
> Francisco Jerez (1):<br>
> intel/fs: Restrict live intervals to the subset possibly reachable<br>
> from any definition.<br>
><br>
> Jason Ekstrand (47):<br>
> intel/fs: Pass builders instead of blocks into emit_[un]zip<br>
> intel/fs: Be more explicit about our placement of [un]zip<br>
> intel/fs: Use ANY/ALL32 predicates in SIMD32<br>
> intel/fs: Don't stomp f0.1 in SIMD16 ballot<br>
> intel/fs: Use an explicit D type for vote any/all/eq intrinsics<br>
> intel/fs: Use a pair of 1-wide MOVs instead of SEL for any/all<br>
> intel/compiler: Add some restrictions to MOV_INDIRECT and BROADCAST<br>
> intel/eu: Just modify the offset in brw_broadcast<br>
> intel/eu/reg: Add a subscript() helper<br>
> intel/eu: Fix broadcast instruction for 64-bit values on little-<br>
> core<br>
> intel/fs: Fix MOV_INDIRECT for 64-bit values on little-core<br>
> intel/fs: Fix integer multiplication lowering for src/dst hazards<br>
> intel/fs: Use the original destination region for int MUL lowering<br>
> i965/fs: Extend the live ranges of VGRFs which leave loops<br>
> i965/fs/nir: Simplify 64-bit store_output<br>
> i965/fs: Return a fs_reg from shuffle_64bit_data_for_32bit_<wbr>write<br>
> i965/fs/nir: Minor refactor of store_output<br>
> i965/fs/nir: Don't stomp 64-bit values to D in get_nir_src<br>
> intel/fs: Protect opt_algebraic from OOB BROADCAST indices<br>
> intel/fs: Uniformize the index in readInvocation<br>
> intel/fs: Retype dest to match value in read[First]Invocation<br>
> intel/fs: Assign constant locations if they haven't been assigned<br>
> intel/fs: Remove min_dispatch_width from fs_visitor<br>
> intel/cs: Drop max_dispatch_width checks from compile_cs<br>
> intel/cs: Stop setting dispatch_grf_start_reg<br>
> intel/cs: Ignore runtime_check_aads_emit for CS<br>
> intel/fs: Mark 64-bit values as being contiguous<br>
> intel/cs: Rework the way thread local ID is handled<br>
> intel/cs: Re-run final NIR optimizations for each SIMD size<br>
> intel/cs: Re-run final NIR optimizations for each SIMD size<br>
> intel/cs: Push subgroup ID instead of base thread ID<br>
> intel/compiler/fs: Set up subgroup invocation as a system value<br>
> intel/fs: Rework zero-length URB write handling<br>
> intel/eu: Make automatic exec sizes a configurable option<br>
> intel/eu: Explicitly set EXECUTE_1 where needed<br>
> intel/fs: Explicitly set EXECUTE_1 where needed<br>
> intel/fs: Don't use automatic exec size inference<br>
> nir: Add a new subgroups lowering pass<br>
> nir: Add a ssa_dest_init_for_type helper<br>
> nir: Make ballot intrinsics variable-size<br>
> nir/lower_system_values: Lower SUBGROUP_*_MASK based on type<br>
> nir/lower_subgroups: Lower ballot intrinsics to the specified bit<br>
> size<br>
> nir,intel/compiler: Use a fixed subgroup size<br>
> spirv: Add a vtn_constant_value helper<br>
> spirv: Rework barriers<br>
> nir: Validate base types on array dereferences<br>
> compiler/nir_types: Handle vectors in glsl_get_array_element<br>
><br>
> src/compiler/Makefile.<wbr>sources |<wbr> 2 +-<br>
> src/compiler/glsl/glsl_to_<wbr>nir.cpp | 1 +<br>
> src/compiler/nir/nir.h <wbr> | 25 +-<br>
> src/compiler/nir/nir_<wbr>intrinsics.h <wbr>| 13 +-<br>
> .../nir/nir_lower_read_<wbr>invocation_to_scalar.c | 112 ---------<br>
> src/compiler/nir/nir_lower_<wbr>subgroups.c | 257<br>
> ++++++++++++++++++++<br>
> src/compiler/nir/nir_lower_<wbr>system_values.c | 4 +-<br>
> src/compiler/nir/nir_opt_<wbr>intrinsics.c | <wbr>69 +-----<br>
> src/compiler/nir/nir_<wbr>validate.c <wbr>| 18 +-<br>
> src/compiler/nir_types.cpp <wbr> | 2 +<br>
> src/compiler/spirv/spirv_to_<wbr>nir.c | 132 ++++++++--<br>
> src/compiler/spirv/vtn_<wbr>private.h | <wbr> 6 +<br>
> src/intel/compiler/brw_<wbr>compiler.c | <wbr> 4 -<br>
> src/intel/compiler/brw_<wbr>compiler.h | <wbr> 3 +-<br>
> src/intel/compiler/brw_eu.c <wbr> | 1 +<br>
> src/intel/compiler/brw_eu.h <wbr> | 10 +<br>
> src/intel/compiler/brw_eu_<wbr>emit.c | 90 +++++--<br>
> src/intel/compiler/brw_fs.<wbr>cpp | 268<br>
> ++++++++++++---------<br>
> src/intel/compiler/brw_fs.h <wbr> | 15 +-<br>
> src/intel/compiler/brw_fs_<wbr>generator.cpp | 90 ++++---<br>
> src/intel/compiler/brw_fs_<wbr>live_variables.cpp | 89 ++++++-<br>
> src/intel/compiler/brw_fs_<wbr>live_variables.h | 12 +<br>
> src/intel/compiler/brw_fs_<wbr>nir.cpp | 262<br>
> ++++++++++++--------<br>
> src/intel/compiler/brw_fs_<wbr>visitor.cpp | 78 +++---<br>
> src/intel/compiler/brw_nir.c <wbr> | 11 +-<br>
> src/intel/compiler/brw_nir.h <wbr> | 2 +-<br>
> src/intel/compiler/brw_nir_<wbr>lower_cs_intrinsics.c | 56 ++---<br>
> src/intel/compiler/brw_reg.h <wbr> | 16 ++<br>
> src/intel/compiler/brw_<wbr>shader.cpp | <wbr> 2 +<br>
> src/intel/vulkan/anv_cmd_<wbr>buffer.c | <wbr>6 +-<br>
> src/mesa/drivers/dri/i965/<wbr>gen6_constant_state.c | 6 +-<br>
> 31 files changed, 1076 insertions(+), 586 deletions(-)<br>
> delete mode 100644<br>
> src/compiler/nir/nir_lower_<wbr>read_invocation_to_scalar.c<br>
> create mode 100644 src/compiler/nir/nir_lower_<wbr>subgroups.c<br>
><br>
</div></div></blockquote></div><br></div></div>