[Mesa-dev] [PATCH 1/4] gallivm: (trivial) fix lp_build_concat_n
From: Roland Scheidegger The code was designed to handle no-op concat but failed (unless the caller was using same pointer for src and dst). --- src/gallium/auxiliary/gallivm/lp_bld_pack.c |6 +- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_pack.c b/src/gallium/auxiliary/gallivm/lp_bld_pack.c index 0a57e39..14fcd38 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_pack.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_pack.c @@ -241,8 +241,12 @@ lp_build_concat_n(struct gallivm_state *gallivm, assert(num_srcs >= num_dsts); assert((num_srcs % size) == 0); - if (num_srcs == num_dsts) + if (num_srcs == num_dsts) { + for (i = 0; i < num_dsts; ++i) { + dst[i] = src[i]; + } return 1; + } for (i = 0; i < num_dsts; ++i) { dst[i] = lp_build_concat(gallivm, &src[i * size], src_type, size); -- 1.7.9.5 ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 1/4] gallivm: (trivial) fix lp_build_concat_n
- Original Message - > From: Roland Scheidegger > > The code was designed to handle no-op concat but failed (unless the > caller was using same pointer for src and dst). > --- > src/gallium/auxiliary/gallivm/lp_bld_pack.c |6 +- > 1 file changed, 5 insertions(+), 1 deletion(-) > > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_pack.c > b/src/gallium/auxiliary/gallivm/lp_bld_pack.c > index 0a57e39..14fcd38 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_pack.c > +++ b/src/gallium/auxiliary/gallivm/lp_bld_pack.c > @@ -241,8 +241,12 @@ lp_build_concat_n(struct gallivm_state *gallivm, > assert(num_srcs >= num_dsts); > assert((num_srcs % size) == 0); > > - if (num_srcs == num_dsts) > + if (num_srcs == num_dsts) { > + for (i = 0; i < num_dsts; ++i) { > + dst[i] = src[i]; > + } >return 1; > + } > > for (i = 0; i < num_dsts; ++i) { >dst[i] = lp_build_concat(gallivm, &src[i * size], src_type, size); Looks good. Was this path ever being hit? If so this is a candidate for stable branches. Jose ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev
Re: [Mesa-dev] [PATCH 1/4] gallivm: (trivial) fix lp_build_concat_n
Am 04.06.2013 14:38, schrieb Jose Fonseca: > > > - Original Message - >> From: Roland Scheidegger >> >> The code was designed to handle no-op concat but failed (unless the >> caller was using same pointer for src and dst). >> --- >> src/gallium/auxiliary/gallivm/lp_bld_pack.c |6 +- >> 1 file changed, 5 insertions(+), 1 deletion(-) >> >> diff --git a/src/gallium/auxiliary/gallivm/lp_bld_pack.c >> b/src/gallium/auxiliary/gallivm/lp_bld_pack.c >> index 0a57e39..14fcd38 100644 >> --- a/src/gallium/auxiliary/gallivm/lp_bld_pack.c >> +++ b/src/gallium/auxiliary/gallivm/lp_bld_pack.c >> @@ -241,8 +241,12 @@ lp_build_concat_n(struct gallivm_state *gallivm, >> assert(num_srcs >= num_dsts); >> assert((num_srcs % size) == 0); >> >> - if (num_srcs == num_dsts) >> + if (num_srcs == num_dsts) { >> + for (i = 0; i < num_dsts; ++i) { >> + dst[i] = src[i]; >> + } >>return 1; >> + } >> >> for (i = 0; i < num_dsts; ++i) { >>dst[i] = lp_build_concat(gallivm, &src[i * size], src_type, size); > > Looks good. > > Was this path ever being hit? If so this is a candidate for stable branches. > > Jose > No I didn't see it getting hit, just saw it by accident. All callers seem to both not call it when there's nothing to concat, and always use same src and dst anyway. Roland ___ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev