On a side note, wasn't this the vintage of benchmark
that lent itself to fudging by the video card
vendors? That is, wasn't there a big stink
about video drivers being written to these
tests.
Andreas, any chance you could rerun this
against a 'Standard VGA' driver and see if the
numbers change? (And how's Winbench 99 going <g>?)
I think the job is hard enough; if we can shave
something off of our list, it sure would be nice.
Jer
Francois Gouget wrote:
>
> Hi,
>
> I wanted to do it since Andreas posted it. I simply never got the
> time. Well, here it is, finally. I reformatted the benchmark results so
> that they are sorted on the ratio windows score/wine score. The idea
> being that it makes it clearer where are our weak points.
> Well, the results speak for themselves.
>
> Actually no. Like all benchmarks the hardest part is to analyze the
> results and come to the right conclusions. I won't pretend to present
> any conclusion, just some more questions (which maybe are best left
> open, I don't want to start a flamewar or something).
>
> * I sorted the entries from our worst performance to the best on the
> assumption that our results would benefit most from improving these
> first. But then the benchmark must assign some sort of weight to each
> test so if their range is large this may not be true.
>
> * Is optimizing the code based on these results really that good for
> real life performance for 16bit applications. For instance, is
> optimizing bit blits that important? Well, I guess this depends on the
> benchmark's weights for each test and how good this benchmark is (was)
> in the first place.
>
> * This is a 16bit benchmark but nowadays most applications are 32bits.
> To what extent do these results reflect the performance we would get
> with a 32bit application?
>
> * In any case this benchmark it only tests graphical so it only
> presents a small view into Wine's performance.
>
> * I was surprised (and still am) by the result we got on MoveTo
> (MoveTo16 really). According to the test we are 11 times slower than
> Windows? Yet MoveTo does not seem to be an API that does much. Of course
> MoveTo is a very fast API in any case so this probably does not affect
> our performance much in real life. What I wondered is how much of it
> could be explained by general 'setup costs' (DC_GetDCUpdate,
> GDI_ReleaseObj, system call?)
>
> * Most font based results are probably not very significant. If Wine
> chose a replacement font that was bigger than that of Windows it would
> have an impact on its performance. It could go the other way too of
> course.
>
> Well, on to the sorted results now (and thanks Andreas for providing
> us with this data):
>
> Ratio Win Wine Test
> 207.92 105.0 0.5 BltDIBits 4bpp
> 197.65 101.0 0.5 BltDIBits 24bpp
> 131.12 257.0 2.0 BitBltMonoMS SRCINVERT Al
> 115.26 98.2 0.9 GWM/PolyLine
> 115.12 236.0 2.0 BitBltMonoMS SRCINVERT Unal
> 95.76 158.0 1.6 GWM/BitBltMonoMS, SRCAND, Al
> 90.91 260.0 2.9 GWM/BitBltMS, Other, Al
> 89.66 104.0 1.2 BltDIBits 8bpp
> 64.75 395.0 6.1 BitBltSM, SRCCOPY, Al
> 64.27 349.0 5.4 BitBltSM SRCCOPY Al
> 63.21 122.0 1.9 BitBltSS SRCINVERT Al
> 61.33 0.4 0.0 Pixel, Get
> 58.01 210.0 3.6 GWM/PatBlt, ROP(0A), Unal
> 56.13 316.0 5.6 BitBltSM SRCCOPY Unal
> 55.61 114.0 2.0 BitBltSS SRCINVERT Unal
> 52.48 159.0 3.0 BitBltMS SRCINVERT Al
> 46.87 389.0 8.3 GWM/BitBltMS, SRCCOPY, Unal
> 46.62 64.8 1.4 GWM/BitBltMS, Other, Unal
> 46.27 149.0 3.2 BitBltMS SRCINVERT Unal
> 42.34 26.8 0.6 GrayString, System
> 41.68 27.8 0.7 DrawIcon
> 41.39 149.0 3.6 Combined GWM2
> 39.95 175.0 4.4 BitBltSM SRCINVERT Al
> 39.86 342.0 8.6 BitBltMS SRCCOPY Al
> 39.19 48.6 1.2 GWM/BitBltMonoMS, Other, Unal
> 39.15 91.6 2.3 SetDIBitsToDevice 4
> 36.92 395.0 10.7 GWM/BitBltMS, SRCCOPY, Al
> 35.40 160.0 4.5 BitBltSM SRCINVERT Unal
> 33.39 40.4 1.2 GWM/PatBlt, Other, Unal
> 33.19 84.3 2.5 SetDIBitsToDevice 24
> 32.78 316.0 9.6 BitBltMS SRCCOPY Unal
> 30.05 12.5 0.4 StretchDIBits, 4
> 28.82 24.7 0.9 GrayString, MS SSerif 13
> 27.69 29.9 1.1 BltDIBits 1bpp SRCCOPY Unal
> 26.85 92.9 3.5 GWM/SetDIBitsToDev, 4bpp, Unal
> 26.21 2700.0 103.0 PaintRgn, Rectangular
> 24.96 16.7 0.7 GrayString, MS SSerif 11
> 24.23 205.0 8.5 TextOut, TNR 13
> 24.12 27.5 1.1 GrayString, TNR 16
> 24.04 25.0 1.0 GWM/PatBlt, ROP(A0), Unal
> 23.82 5240000.0 220000.0 GetNearestColor
> 23.01 19.9 0.9 GrayString, TNR 13
> 22.44 114.0 5.1 SetDIBitsBlt 1bpp Unal
> 22.41 17.1 0.8 GrayString, TNR 11
> 22.35 89.4 4.0 SetDIBitsToDevice 8
> 21.84 15.4 0.7 GrayString, MS SSerif Bold 11
> 21.52 24.1 1.1 PolyLine
> 20.27 195.0 9.6 TextOut, System
> 19.76 14.8 0.7 StretchDIBits, 1bpp, SRCCOPY,..
> 18.50 72.7 3.9 GWM/PatBlt, ROP(A5), Unal
> 18.47 17.2 0.9 GWM/StretchBltMonoMS SRCAND Unal
> 18.37 55.3 3.0 GWM/PatBlt, PATINVERT Unal
> 18.32 17.2 0.9 GWM/StretchBltMonoMS SRCPAINT, ...
> 18.23 51.4 2.8 GWM/PatBlt, PATINVERT Al
> 18.05 168.0 9.3 GWM/ExtTextOut, Times New Roman 13
> 17.77 7.2 0.4 StretchDIBits, 24
> 16.81 607.0 36.1 GWM/FillRgn, Rectangular
> 16.73 169.0 10.1 TextOut, Arial 10
> 15.44 193.0 12.5 TextOut, Times New Roman 11
> Ratio Win Wine Test
> 15.42 16.5 1.1 StretchDIBits, 4bpp, SRCCOPY..
> 15.11 113.0 7.5 TabbedTextOut, System
> 14.62 111.0 7.6 DrawText, System
> 14.39 3080.0 214.0 PatBlt, PATCOPY, Al
> 14.23 68.0 4.8 SetDIBitsBlt 4bpp
> 14.00 3010.0 215.0 PatBlt, PATCOPY, Unal
> 13.73 445.0 32.4 Combined GWM7
> 13.49 11.1 0.8 StretchDIBits, 8
> 13.33 136.0 10.2 TextOut, MS SSerif 11
> 13.11 1350.0 103.0 GWM/PatBlt, PATCOPY Unal
> 12.60 184.0 14.6 TextOut, MS SSerif 13
> 11.40 520.0 45.6 Combined GWM6
> 11.24 398.0 35.4 Combined GWM1
> 11.06 7810000.0 706000.0 MoveTo
> 10.77 407.0 37.8 Graph WinMark
> 10.58 65.5 6.2 SetDIBitsBlt 24bpp
> 10.41 252.0 24.2 TextOut, TNR 16
> 10.36 231.0 22.3 Rectangle, Rounded
> 10.21 196.0 19.2 GWM/ExtTextOut, System
> 10.17 1.8 0.2 FloodFill
> 10.14 35.8 3.5 GWM/Square
> 10.11 1.8 0.2 ExtFloodFill, Border
> 9.94 30.7 3.1 SetDIBitsToDevice 1bpp Unal
> 9.93 14.8 1.5 GWM/Square, Rounded
> 9.92 3520.0 355.0 PatBlt, BLACKNESS, Al
> 9.86 65.5 6.6 SetDIBitsBlt 8bpp
> 9.81 104.0 10.6 TabbedTextOut, MS SSerif 13
> 9.77 3450.0 353.0 PatBlt, BLACKNESS, Unal
> 9.71 3310.0 341.0 PatBlt, WHITENESS Unal
> 9.60 1.7 0.2 EFF, Surface
> 9.47 3230.0 341.0 PatBlt, WHITENESS Al
> 9.37 104.0 11.1 DrawText, MS Sans Serif 13
> 9.31 230.0 24.7 GWM/PatBlt, BLACKNESS, Unal
> 9.00 65.7 7.3 DrawText, Times New Roman 13
> 8.94 445.0 49.8 GWM/ExtTextOut, Rectangle
> 8.84 130.0 14.7 GWM/ExtTextOut, Square
> 8.78 6290000.0 716000.0 MoveToEx
> 8.66 67.6 7.8 TabbedTextOut, MS SSerif 11
> 8.65 44.2 5.1 GWM/Rectangle, Rounded
> 8.31 59.0 7.1 TabbedTextOut, TNR 13
> 8.26 66.5 8.1 DrawText, MS Sans Serif 11
> 8.01 7180.0 896.0 GWM/PatBlt, WHITENESS, Unal
> 7.79 1940.0 249.0 PaintRgn, Polygonal
> 7.30 1730.0 237.0 Square
> 6.88 236.0 34.3 Square, Rounded
> 6.76 23.2 3.4 BitBltMonoMS Other Al
> 6.71 7180.0 1070.0 GWM/PatBlt, WHITENESS, Al
> 6.59 178.0 27.0 GWM/ExtTextOut, MS SSerif 13
> 6.52 75.0 11.5 Combined GWM3
> 6.50 132.0 20.3 GWM/ExtTextOut, MS SSerif 11
> 6.44 389.0 60.4 BitBltSM, SRCCOPY, Unal
> 6.33 69.6 11.0 TextOut, MS SSerif Bold 11
> 6.30 22.5 3.6 BitBltMonoMS Other Unal
> 6.12 150.0 24.5 GWM/ExtTextOut, Times New Roman 11
> 5.86 252.0 43.0 Combined GWM5
> 5.74 47.4 8.3 InvertRect, Square
> 5.49 35.4 6.5 FillRect, Square
> 5.42 53.5 9.9 DrawText, Times New Roman 11
> 5.21 374.0 71.8 PaintRgn, Few-Sides, HV
> Ratio Win Wine Test
> 5.18 49.3 9.5 Ellipse
> 5.04 48.2 9.6 TabbedTextOut, TNR 11
> 5.04 39.4 7.8 FrameRect, Square
> 4.93 93.2 18.9 DrawText, Times New Roman 16
> 4.91 27.6 5.6 Chord Elliptical
> 4.91 212.0 43.2 GWM/ExtTextOut, Times New Roman 16
> 4.90 40.8 8.3 TabbedTextOut, MS SSerif Bold...
> 4.88 13.9 2.9 StretchBltMonoMS, Other, Al
> 4.87 42.2 8.7 DrawText, MS Sans Serif Bold 11
> 4.78 6.0 1.3 Arc Ell Complete
> 4.66 84.9 18.2 TabbedTextOut, TNR 16
> 4.63 89.8 19.4 FrameRect
> 4.63 329.0 71.1 Polygon, Few-Sides
> 4.58 21.4 4.7 DrawFocusRect
> 4.54 37.9 8.3 Line, Diagonal
> 4.48 292.0 65.2 FillRgn, Few-Sides, HV
> 4.48 3.9 0.9 Arc Ell Partial
> 4.46 12.9 2.9 StretchBltMonoMS, Other, Unal
> 4.43 20.1 4.5 GWM/Line, Vertical
> 4.39 43.8 10.0 Line, Horizontal
> 4.38 36.0 8.2 Line, Vertical
> 4.35 336.0 77.3 GWM/BitBltMonoMS, SRCCOPY Al
> 4.28 396.0 92.5 BitBltMonoMS SRCCOPY Unal
> 4.24 396.0 93.4 BitBltMonoMS SRCCOPY Al
> 4.17 106.0 25.4 PolyPolygon
> 4.15 46.9 11.3 GWM/Line, Horizontal
> 4.06 6.0 1.5 GWM/Line, Diagonal
> 4.02 25.8 6.4 GWM/Pie, Elliptical
> 4.01 115.0 28.7 Polygon, Many-Sides
> 3.96 515.0 130.0 GWM/BitBltMonoMS, SRCCOPY Unal
> 3.88 178.0 45.9 Combined GWM4
> 3.88 442.0 114.0 FillRect
> 3.79 0.8 0.2 Pixel, Set
> 3.75 8.0 2.1 BitBltMonoSM SRCCOPY Al
> 3.71 519.0 140.0 Polygon, Trapezoid
> 3.62 1260.0 348.0 GWM/Rectangle
> 3.50 721.0 206.0 Rectangle
> 3.46 74.3 21.5 GWM/ExtTextOut, SSerif Bold
> 3.34 2600.0 779.0 GWM/PatBlt, PATCOPY Al
> 3.32 472.0 142.0 GWM/PatBlt, DSTINVERT, Unal
> 3.29 5.3 1.6 Arc Circular Complete
> 3.19 17.1 5.4 Pie, Elliptical
> 2.97 27.9 9.4 Chord Circular
> 2.85 50.3 17.6 Circle
> 2.83 2.4 0.8 GWM/StretchBltMS, SRCCOPY Unal
> 2.73 185.0 67.8 InvertRgn, Few-Sides, HV
> 2.67 344.0 129.0 Polygon, Triangle
> 2.30 108.0 47.0 PaintRgn, Few-Sides, HVD
> 2.25 232.0 103.0 BitBltSS SRCCOPY Al
> 2.24 3.0 1.3 GWM/BitBltMonoSM, SRCCOPY, Unal
> 2.23 207.0 92.7 GWM/FillRgn, Polygonal
> 2.22 7.8 3.5 BitBltSS Other Al
> 2.20 3.5 1.6 Arc Circular Partial
> 2.13 133.0 62.3 GWM/Ellipse
> 2.04 212.0 104.0 BitBltSS SRCCOPY Unal
> 2.03 17.6 8.7 Pie, Circular
> 2.02 7.1 3.5 StretchBltMonoSM, Other, Al
> 1.92 6.9 3.6 StretchBltMonoSM, Other, Unal
> 1.82 197.0 108.0 BitBltSS, SRCCOPY, Al
> Ratio Win Wine Test
> 1.78 287.0 161.0 PatBlt, PATINVERT Al
> 1.77 193.0 109.0 BitBltSS, SRCCOPY, Unal
> 1.71 8.1 4.7 GWM/BitBltMonoSM, SRCCOPY, Al
> 1.63 263.0 161.0 PatBlt, PATINVERT Unal
> 1.55 213.0 137.0 GWM/InvertRgn, Rectangular
> 1.53 4.7 3.1 BitBltMonoSM Other Al
> 1.52 338.0 223.0 GWM/PatBlt, DSTINVERT, Al
> 1.43 7.6 5.3 BitBltMS Other Aligned
> 1.42 3.1 2.1 BitBltMonoSM SRCCOPY Unal
> 1.36 211.0 155.0 ScrollDC
> 1.35 288.0 213.0 PatBlt, DSTINVERT, Al
> 1.32 2.8 2.1 BitBltMonoSM PATPAINT Al
> 1.32 7.4 5.6 BitBltMS Other Unal
> 1.32 4.1 3.1 BitBltMonoSM Other Unal
> 1.32 2.8 2.1 BitBltMonoSM SRCINVERT Al
> 1.30 2.8 2.1 BitBltMonoSM PATPAINT Unal
> 1.29 2.8 2.1 BitBltMonoSM SRCINVERT Unal
> 1.22 264.0 216.0 PatBlt, DSTINVERT, Unal
> 1.19 7.6 6.4 BitBltSM Other Al
> 1.14 7.4 6.5 BitBltSM Other Unal
> 1.03 2.3 2.3 StretchBltSS, Other, Al
> 0.95 1.8 1.9 BitBltMonoMS PATPAINT Al
> 0.94 7.8 8.2 FrameRgn, Few-Sides, HV
> 0.94 2.1 2.2 StretchBltSS, Other, Unal
> 0.91 1.8 2.0 BitBltMonoMS PATPAINT Unal
> 0.81 2.3 2.9 StretchBltMS, Other, Al
> 0.80 215.0 270.0 InvertRect
> 0.76 4.3 5.7 TextOut, Arial 10, 90
> 0.75 2.1 2.8 StretchBltMS, Other, Unal
> 0.69 2.3 3.4 StretchBltSM, Other, Al
> 0.67 2.1 3.1 StretchBltSM, Other, Unal
> 0.56 3.1 5.5 TextOut, Arial 10, 45
> 0.36 0.7 1.9 BitBltSS PATPAINT Al
> 0.36 7.8 21.9 BitBltSS Other Unal
> 0.34 0.7 2.0 BitBltSS PATPAINT Unal
> 0.22 0.7 3.1 BitBltMS PATPAINT, Unal
> 0.16 0.7 4.3 BitBltSM PATPAINT Al
> 0.15 0.7 4.4 BitBltSM PATPAINT Unal
> 0.06 0.7 11.5 BitBltMS PATPAINT, Al
> 0.00 0.0 57.7 FastWindowFrame
>
> --
> Francois Gouget [EMAIL PROTECTED] http://fgouget.free.fr/
> Avoid the Gates of Hell - use Linux.