[PATCH 0/5] Explicitly write out some ROPs.
huw at codeweavers.com
Thu Aug 25 03:43:06 CDT 2016
The idea of this series is to explicitly write out versions of
copy_rect_1(), copy_rect_32() and mask_rect_32() for each of the
different ROP2s. It does this using macros.
Yes, we all agree macros are ugly and evil, however I don't think
these are too bad. It's still obvious what the code is doing while
providing a considerable speed increase. In a real world app I'm
looking at (which uses a variety of rops) the screen redraw time has
dropped from 1.47s to 0.95s, which puts it almost on par with Windows.
I don't anticipate needing to extend the use of these macros to other
places - the other copy_rect_x() and mask_rect_x() functions are less
likely to be used by any reasonable app.
Huw Davies (5):
gdi32: Move the outer loop into separate functions for each direction.
gdi32: Explicitly write out the rops for copy_rect_32().
gdi32: Explicitly write out the rops for mask_rect_32().
gdi32: Split out the various offset cases for copy_rect_1() into
gdi32: Explicitly write out the rops for copy_rect_1().
dlls/gdi32/dibdrv/primitives.c | 929 +++++++++++++++++++++++------------------
1 file changed, 528 insertions(+), 401 deletions(-)
More information about the wine-patches