On Tue, 8 Sep 2015 17:18:01 +0300 Oded Gabbay <oded.gab...@gmail.com> wrote:
> On Tue, Sep 8, 2015 at 2:08 PM, Pekka Paalanen <ppaala...@gmail.com> wrote: > > From: Pekka Paalanen <pekka.paala...@collabora.co.uk> > > > > Add a new option to PIXMAN_DISABLE: "wholeops". This option disables all > > whole-operation fast paths regardless of implementation level, except > > the general path (general_composite_rect). > > > > The purpose is to add a debug option that allows us to test optimized > > iterator paths specifically. With this, it is possible to see if: > > - fast paths mask bugs in iterators > > - compare fast paths with iterator paths for performance > > > > The effect was tested on x86_64 by running: > > $ PIXMAN_DISABLE='' ./test/lowlevel-blt-bench over_8888_8888 > > $ PIXMAN_DISABLE='wholeops' ./test/lowlevel-blt-bench over_8888_8888 > > > > In the first case time is spent in sse2_composite_over_8888_8888(), and > > in the latter in sse2_combine_over_u(). > > > > Signed-off-by: Pekka Paalanen <pekka.paala...@collabora.co.uk> > > --- > > pixman/pixman-implementation.c | 16 ++++++++++++++++ > > 1 file changed, 16 insertions(+) > > > > diff --git a/pixman/pixman-implementation.c b/pixman/pixman-implementation.c > > index 5884054..2c7de4c 100644 > > --- a/pixman/pixman-implementation.c > > +++ b/pixman/pixman-implementation.c > > @@ -380,6 +380,11 @@ _pixman_disabled (const char *name) > > return FALSE; > > } > > > > +static const pixman_fast_path_t empty_fast_path[] = > > +{ > > + { PIXMAN_OP_NONE } > > +}; > > + > > pixman_implementation_t * > > _pixman_choose_implementation (void) > > { > > @@ -397,5 +402,16 @@ _pixman_choose_implementation (void) > > > > imp = _pixman_implementation_create_noop (imp); > > > > + if (_pixman_disabled ("wholeops")) > > + { > > + pixman_implementation_t *cur; > > + > > + /* Disable all whole-operation paths except the general one, > > + * so that optimized iterators are used as much as possible. > > + */ > > + for (cur = imp; cur->fallback; cur = cur->fallback) > > + cur->fast_paths = empty_fast_path; > > + } > > + > > return imp; > > } > > -- > > 2.4.6 > > Reviewed-by: Oded Gabbay <oded.gab...@gmail.com> Pushed: e9ef2cc..812c9c9 master -> master Thanks, pq
pgpT5uMbjZ0hn.pgp
Description: OpenPGP digital signature
_______________________________________________ Pixman mailing list Pixman@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/pixman