I forward this message to the mailing list after getting Michael's consent.
I am going to remove locally the Authors clause from the copyright header and look for similar cases in the rest of patches. Thanks a lot, Michael! Sam -------- Forwarded Message -------- Subject: Re: [Mesa-dev] [PATCH 28/29] nir: add a pass for lowering (un)pack_double_2x32 Date: Mon, 21 Mar 2016 14:22:01 +0100 From: Michael Schellenberger Costa <mschellenbergerco...@googlemail.com> To: Samuel Iglesias Gonsálvez <sigles...@igalia.com> Hey Sam, your right with the year, I didnt check that this is an old approach from Connor. As far as i remember this was the patch series regarding license: https://lists.freedesktop.org/archives/mesa-dev/2015-August/092172.html https://lists.freedesktop.org/archives/mesa-dev/2015-August/092244.html Michael Am 21.03.2016 um 14:10 schrieb Samuel Iglesias Gonsálvez: > > Hello Michael, > > On 21/03/16 13:40, Michael Schellenberger Costa wrote: >> Hi Sam, >> >> some trivial style nitpicks in the license >> >> Am 21.03.2016 um 13:06 schrieb Samuel Iglesias Gonsálvez: >>> From: Connor Abbott <connor.w.abb...@intel.com> >>> >>> v2: Undo unintended change to the signature of >>> nir_normalize_cubemap_coords (Iago). >>> >>> v3: Move to compiler/nir (Iago) >>> >>> Signed-off-by: Iago Toral Quiroga <ito...@igalia.com> >>> --- >>> src/compiler/Makefile.sources | 1 + >>> src/compiler/glsl/Makefile.sources | 1 + >>> src/compiler/nir/Makefile.sources | 1 + >>> src/compiler/nir/nir.h | 2 + >>> src/compiler/nir/nir_lower_double_packing.c | 109 >>> ++++++++++++++++++++++++++++ >>> 5 files changed, 114 insertions(+) >>> create mode 100644 src/compiler/nir/nir_lower_double_packing.c >>> >>> diff --git a/src/compiler/Makefile.sources b/src/compiler/Makefile.sources >>> index 9f3bcf0..988c7a3 100644 >>> --- a/src/compiler/Makefile.sources >>> +++ b/src/compiler/Makefile.sources >>> @@ -184,6 +184,7 @@ NIR_FILES = \ >>> nir/nir_lower_alu_to_scalar.c \ >>> nir/nir_lower_atomics.c \ >>> nir/nir_lower_clip.c \ >>> + nir/nir_lower_double_packing.c \ >>> nir/nir_lower_global_vars_to_local.c \ >>> nir/nir_lower_gs_intrinsics.c \ >>> nir/nir_lower_load_const_to_scalar.c \ >>> diff --git a/src/compiler/glsl/Makefile.sources >>> b/src/compiler/glsl/Makefile.sources >>> index 08b40c5..6303d96 100644 >>> --- a/src/compiler/glsl/Makefile.sources >>> +++ b/src/compiler/glsl/Makefile.sources >>> @@ -38,6 +38,7 @@ NIR_FILES = \ >>> nir/nir_lower_alu_to_scalar.c \ >>> nir/nir_lower_atomics.c \ >>> nir/nir_lower_clip.c \ >>> + nir/nir_lower_double_packing.c \ >>> nir/nir_lower_global_vars_to_local.c \ >>> nir/nir_lower_gs_intrinsics.c \ >>> nir/nir_lower_load_const_to_scalar.c \ >>> diff --git a/src/compiler/nir/Makefile.sources >>> b/src/compiler/nir/Makefile.sources >>> index f31547b..766693e 100644 >>> --- a/src/compiler/nir/Makefile.sources >>> +++ b/src/compiler/nir/Makefile.sources >>> @@ -28,6 +28,7 @@ NIR_FILES = \ >>> nir_lower_alu_to_scalar.c \ >>> nir_lower_atomics.c \ >>> nir_lower_clip.c \ >>> + nir_lower_double_packing.c \ >>> nir_lower_global_vars_to_local.c \ >>> nir_lower_gs_intrinsics.c \ >>> nir_lower_load_const_to_scalar.c \ >>> diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h >>> index 36f90fc..49de964 100644 >>> --- a/src/compiler/nir/nir.h >>> +++ b/src/compiler/nir/nir.h >>> @@ -2214,6 +2214,8 @@ void nir_lower_to_source_mods(nir_shader *shader); >>> >>> bool nir_lower_gs_intrinsics(nir_shader *shader); >>> >>> +void nir_lower_double_pack(nir_shader *shader); >>> + >>> bool nir_normalize_cubemap_coords(nir_shader *shader); >>> >>> void nir_live_ssa_defs_impl(nir_function_impl *impl); >>> diff --git a/src/compiler/nir/nir_lower_double_packing.c >>> b/src/compiler/nir/nir_lower_double_packing.c >>> new file mode 100644 >>> index 0000000..5f6707c >>> --- /dev/null >>> +++ b/src/compiler/nir/nir_lower_double_packing.c >>> @@ -0,0 +1,109 @@ >>> +/* >>> + * Copyright © 2015 Intel Corporation >> 2016? > > > Actually this patch was developed in 2015. So unless we want to update > it to the year where this code is pushed to master, I'd rather keep it > as it is. > >>> + * >>> + * Permission is hereby granted, free of charge, to any person obtaining a >>> + * copy of this software and associated documentation files (the >>> "Software"), >>> + * to deal in the Software without restriction, including without >>> limitation >>> + * the rights to use, copy, modify, merge, publish, distribute, sublicense, >>> + * and/or sell copies of the Software, and to permit persons to whom the >>> + * Software is furnished to do so, subject to the following conditions: >>> + * >>> + * The above copyright notice and this permission notice (including the >>> next >>> + * paragraph) shall be included in all copies or substantial portions of >>> the >>> + * Software. >>> + * >>> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS >>> OR >>> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, >>> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL >>> + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR >>> OTHER >>> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING >>> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER >>> DEALINGS >>> + * IN THE SOFTWARE. >>> + * >>> + * Authors: >>> + * Connor Abbott (cwabbo...@gmail.com) >>> + * >> There was a discussion in the mailing list, that Authors should be >> removed, as it is accessible through git. > > Oh, I did not know. Can you point me to the thread? I would like to > verify it. If this is the case, I will fix it locally. > > Thanks! :-) > > Sam > > P.S: You sent me the email privately right? Once we confirm the > authors change, Would you mind if I forward my reply to the mailing > list? I would like to notify any interested party about each change I > do, even if they are minor. > > >> --Michael >> >>> + */ >>> + >>> +#include "nir.h" >>> +#include "nir_builder.h" >>> + >>> +/* >>> + * lowers: >>> + * >>> + * packDouble2x32(foo) -> packDouble2x32Split(foo.x, foo.y) >>> + * unpackDouble2x32(foo) -> vec2(unpackDouble2x32_x(foo), >>> unpackDouble2x32_y(foo)) >>> + */ >>> + >>> +static nir_ssa_def * >>> +component(nir_builder *b, nir_ssa_def *src, unsigned component) >>> +{ >>> + return nir_swizzle(b, src, (unsigned[]) {component}, 1, true); >>> +} >>> + >>> +static nir_ssa_def * >>> +lower_pack_double(nir_builder *b, nir_ssa_def *src) >>> +{ >>> + return nir_pack_double_2x32_split(b, component(b, src, 0), >>> + component(b, src, 1)); >>> +} >>> + >>> +static nir_ssa_def * >>> +lower_unpack_double(nir_builder *b, nir_ssa_def *src) >>> +{ >>> + return nir_vec2(b, nir_unpack_double_2x32_split_x(b, src), >>> + nir_unpack_double_2x32_split_y(b, src)); >>> +} >>> + >>> +static void >>> +lower_double_pack_instr(nir_alu_instr *instr) >>> +{ >>> + if (instr->op != nir_op_pack_double_2x32 && >>> + instr->op != nir_op_unpack_double_2x32) >>> + return; >>> + >>> + nir_builder b; >>> + nir_builder_init(&b, >>> nir_cf_node_get_function(&instr->instr.block->cf_node)); >>> + b.cursor = nir_before_instr(&instr->instr); >>> + >>> + nir_ssa_def *src = nir_fmov_alu(&b, instr->src[0], >>> + nir_op_infos[instr->op].input_sizes[0]); >>> + nir_ssa_def *dest = >>> + instr->op == nir_op_pack_double_2x32 ? >>> + lower_pack_double(&b, src) : >>> + lower_unpack_double(&b, src); >>> + >>> + nir_ssa_def_rewrite_uses(&instr->dest.dest.ssa, nir_src_for_ssa(dest)); >>> + nir_instr_remove(&instr->instr); >>> +} >>> + >>> +static bool >>> +lower_double_pack_block(nir_block *block, void *ctx) >>> +{ >>> + (void) ctx; >>> + >>> + nir_foreach_instr_safe(block, instr) { >>> + if (instr->type != nir_instr_type_alu) >>> + continue; >>> + >>> + lower_double_pack_instr(nir_instr_as_alu(instr)); >>> + } >>> + >>> + return true; >>> +} >>> + >>> +static void >>> +lower_double_pack_impl(nir_function_impl *impl) >>> +{ >>> + nir_foreach_block(impl, lower_double_pack_block, NULL); >>> +} >>> + >>> +void >>> +nir_lower_double_pack(nir_shader *shader) >>> +{ >>> + nir_foreach_function(shader, function) { >>> + if (function->impl) >>> + lower_double_pack_impl(function->impl); >>> + } >>> +} >>> + >>> >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev