My previous mail got sent before I finished typing ...
On 09/26/2009 12:16 AM, Diederik van Lierop wrote:
Yes, valid points indeed! So I prepared a patch to do some measurements and got some interesting results: when running Fedora 10 i386 virtualized on a Fedora 10 x86_64 host, the non-mmx code actually appears to be faster by 10 - 15%! But before we decide to kick out some of the mmx optimalizations (only the ones that are being tested here), we would need more measurements because my setup might not be representative. So to all the bug reporters who had their images disappearing due to my previous patch: I know you're running with the mmx optimized code ;-). Please test the attached patch against rev. 22287 and report back the measurement data. This is what you should get on the console:
... avg. time spent rendering; with mmx -> 4.10622 msec | without mmx -> 3.5991 msec avg. time spent rendering; with mmx -> 4.10563 msec | without mmx -> 3.59859 msec avg. time spent rendering; with mmx -> 4.10459 msec | without mmx -> 3.59769 msec
Only the last line is relevant.
PS: Don't use this patch for production work, because everything will be rendered twice (with and without mmx optimalisations). This will slow down the rendering. I also tried running the non-mmx optimized code before the other to eliminate any caching effects, but the results look similar
If we can get rid of this specific mmx optimized assembly code, then we can solve the misalignment in rendering the bitmaps for everyone!
The measurements which I reported before were on a virtual machine, but now I can confirm the negative impact of the mmx optimized code on a native Fedora 9 installation too!
These are the results which I obtained using an old laptop (it took about three hours to compile Inkscape on that laptop :-( )
avg. time spent rendering; with mmx -> 10.1511 msec | without mmx -> 7.2687 msec
Again the mmx-optimized assembly code actually appears to be slower!
So if no one comes up with evidence showing opposite results then I will remove these specific optimizations (but not before our v0.47 obviously). This will allow for fixing the pixel misalignment issue, besides making Inkscape more responsive for some users.
Diederik