Part 2: 2D, Acceleration, And Windows: Aren't All Graphics Cards Equal?

Page 1:Introduction: Why GDI Output For 2D Graphics Remains Relevant

Page 2:The 2D GDI For Windows XP Through Windows 7, In Detail

Page 3:2D Graphics Output Using GDI: Direct Or Buffered?

Page 4:The Radeon HD 5000's Symptoms And Their Relevance To Windows 7

Page 5:Tom2D: Our Simple 2D GDI Benchmark

Page 6:Tom2D: Text Output

Page 7:Tom2D: Line Output

Page 8:Tom2D Splines/Bézier Curves

Page 9:Tom2D: Polygons

Page 10:Tom2D: Rectangles

Page 11:Tom2D: Ellipses

Page 12:Tom2D: Blitting

Page 13:Tom2D: Stretching

Page 14:Conclusion

Page 15:UPDATE: ATI Steps Up With A Hotfixed Driver
UPDATE: ATI Steps Up With A Hotfixed Driver
If you're German (or paid attention to the comments section in Part 1 of this series), then you know the results of Part 2 have been around a while on Tom's Hardware DE. We've held on to the piece here in the US, though, pending the results of testing with ATI's hotfixed driver.
As you can see, the performance in Catalyst 10.1 (our hotfixed version, not the publiclyavailable driver) is substantially better than Catalyst 9.12 with Aero enabled, in the case of polygons, even surpassing the performance of 9.12 in Windows XP. This is the fix we've been looking for.
You'll also notice that, with the latest version of the benchmark (linked on the previous page), we're also showing a performance drop with the Desktop Window Manager disabled. We've tested, retested, tested on multiple machines, and found the same results. ATI has done the same in its lab and not been able to reproduce our results.
However, this is of less consequence to us, as there's little reason to disable Aero if the experience with it on is superior. Our numbers (and the ones ATI has run) agree in this regard. At the end of the day, the issue we originally reported has been addressed and tentatively fixed, with significant performance speedups in Windows 7 on the Radeon HD 5000series cards with Aero enabled.
Now, as mentioned, this driver isn't available yet. ATI says it will be integrating its fixes into a future release, but we wouldn't expect them until Catalyst 10.3 or 10.4; we'll post a news update when ATI confirms that the Catalyst driver has officially been
updated with the fixes.
Special thanks to ATI's software engineering team for quickly addressing the Windows 7based issues we presented, implementing a quick (albeit not yet public) fix, and working with us to ensure that the folks buying these cards get the user experience they expect, regardless of whether they're gamers, artists, or engineers!
 Introduction: Why GDI Output For 2D Graphics Remains Relevant
 The 2D GDI For Windows XP Through Windows 7, In Detail
 2D Graphics Output Using GDI: Direct Or Buffered?
 The Radeon HD 5000's Symptoms And Their Relevance To Windows 7
 Tom2D: Our Simple 2D GDI Benchmark
 Tom2D: Text Output
 Tom2D: Line Output
 Tom2D Splines/Bézier Curves
 Tom2D: Polygons
 Tom2D: Rectangles
 Tom2D: Ellipses
 Tom2D: Blitting
 Tom2D: Stretching
 Conclusion
 UPDATE: ATI Steps Up With A Hotfixed Driver
BENCHMARK: DIRECT DRAWING TO VISIBLE DEVICE
Text: 8556 chars/sec
Line: 47513 lines/sec
Polygon: 7757 polygons/sec
Rectangle: 6564 rects/sec
Arc/Ellipse: 3874 ellipses/sec
Blitting: 13974 operations/sec
Stretching: 266 operations/sec
Splines/Bézier: 10510 splines/sec
Score: 984
Oh great, more news on a 5xxx series not being able to handle simple apps like CS4.... I have yet to use CS4 on my desktop with my 5850..... I hope Ati comes out with more patches if this is a problem.
BENCHMARK: DIRECT DRAWING TO VISIBLE DEVICE
Text: 8106 chars/sec
Line: 6528 lines/sec
Polygon: 249 polygons/sec
Rectangle: 1484 rects/sec
Arc/Ellipse: 6127 ellipses/sec
Blitting: 379 operations/sec
Stretching: 80 operations/sec
Splines/Bézier: 5263 splines/sec
Score: 362
BENCHMARK: DIBBUFFER AND BLIT
Text: 12633 chars/sec
Line: 21067 lines/sec
Polygon: 4087 polygons/sec
Rectangle: 535 rects/sec
Arc/Ellipse: 5604 ellipses/sec
Blitting: 1443 operations/sec
Stretching: 213 operations/sec
Splines/Bézier: 12213 splines/sec
Score: 607
Text: 54466 chars/sec
Line: 73135 lines/sec
Polygon: 23943 polygons/sec
Rectangle: 3927 rects/sec
Arc/Ellipse: 26911 ellipses/sec
Blitting: 9827 operations/sec
Stretching: 464 operations/sec
Splines/Bézier: 41911 splines/sec
Score: 2600
Text: 45746
line: 40508
Splines/beziers: 20466
Poygon: 322
Rectangle: 1954
Arc/E.: 3494
Biting: 2406
Stretching: 211
Score: 1150
First, try adding a DDB (device dependent bitmap) test mode as well  even if your DIBs are using the same colordepth as the display mode, perhaps some drivers fail to optimize for this?
Second, what about the power savings mode modern GPUs tend to run in, in 2D mode? I'm not sure what it takes to kick out of the powersavings mode, but perhaps it could be as simple as creating a D3D context and displaying a single frame?
Text: 45496 chars/sec
Line: 44352 lines/sec
Polygon: 12293 polygons/sec
Rectangle: 7013 rects/sec
Arc/Ellipse: 9854 ellipses/sec
Blitting: 7265 operations/sec
Stretching: 642 operations/sec
Splines/Bézier: 36955 splines/sec
Score: 1853
4870 Windows 7 running Cat 9.12
Text: 57405 chars/sec
Line: 42421 lines/sec
Polygon: 14198 polygons/sec
Rectangle: 10724 rects/sec
Arc/Ellipse: 18070 ellipses/sec
Blitting: 16297 operations/sec
Stretching: 615 operations/sec
Splines/Bézier: 37779 splines/sec
Score: 2382
BENCHMARK: DIBBUFFER AND BLIT
Text: 38521 chars/sec
Line: 145631 lines/sec
Polygon: 22599 polygons/sec
Rectangle: 2572 rects/sec
Arc/Ellipse: 30395 ellipses/sec
Blitting: 10595 operations/sec
Stretching: 1082 operations/sec
Splines/Bézier: 47304 splines/sec
Score: 2904
Windows 7 core i7 920@3.8 ati 4890 Catalyst 10.1
Points, lines, bezier curves, arcs (and circles, a subset of arc), ellipses, unfilled polys/rectangles ... all those aren't easily/efficiently implemented with the core 3D primitive: filled polygons. Perhaps some of it can be efficiently implemented with shaders, but that's uncharted territory for me
Text: 25419 chars/sec
Line: 26376 lines/sec
Polygon: 8153 polygons/sec
Rectangle: 1152 rects/sec
Arc/Ellipse: 8672 ellipses/sec
Blitting: 3359 operations/sec
Stretching: 455 operations/sec
Splines/Bézier: 15977 splines/sec
Score: 1011
CPU: C2D e4300
GFX: GMA 3100
MB: G31
OS: Win 7
Text: 17806 chars/sec
Line: 20636 lines/sec
Polygon: 17975 polygons/sec
Rectangle: 3312 rects/sec
Arc/Ellipse: 23234 ellipses/sec
Blitting: 6199 operations/sec
Stretching: 321 operations/sec
Splines/Bézier: 20157 splines/sec
Score: 1433
BENCHMARK: DIRECT DRAWING TO VISIBLE DEVICE (AMD FUSION: Productibity)
Text: 6140 chars/sec
Line: 5109 lines/sec
Polygon: 5233 polygons/sec
Rectangle: 1017 rects/sec
Arc/Ellipse: 6819 ellipses/sec
Blitting: 1851 operations/sec
Stretching: 104 operations/sec
Splines/Bézier: 5673 splines/sec
Score: 427
BENCHMARK: DIRECT DRAWING TO VISIBLE DEVICE
Text: 43898 chars/sec
Line: 73421 lines/sec
Polygon: 17483 polygons/sec
Rectangle: 2989 rects/sec
Arc/Ellipse: 21805 ellipses/sec
Blitting: 6082 operations/sec
Stretching: 363 operations/sec
Splines/Bézier: 35804 splines/sec
Score: 2138
Windows vista 64, Phenom2 x3 720 (4 core enabled), Catalyst 10.1, ati 5850