implementation: add PIXMAN_DISABLE=wholeops
authorPekka Paalanen <pekka.paalanen@collabora.co.uk>
Tue, 8 Sep 2015 10:35:33 +0000 (13:35 +0300)
committerPekka Paalanen <pekka.paalanen@collabora.co.uk>
Wed, 9 Sep 2015 08:42:55 +0000 (11:42 +0300)
commit812c9c9758e1503bd1725af9c6fe9ede6a467506
tree144b361248bd36e58ca50a0c412f95e696ecae67
parente9ef2cc4dea04792a03d604c075c344055765217
implementation: add PIXMAN_DISABLE=wholeops

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.paalanen@collabora.co.uk>
Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
pixman/pixman-implementation.c