We are finding that the documentation for Direct2D is not sufficiently enough to develop complex graphics intensive applications. The above video is a good start but we need significantly more to enable us to be quickly productive as developers with Direct2D.
The application we are attempting to develop is for GIS - so we are basically pushing very large amounts of complex holed polygons (potentially thousands of points with thousands of polygons, typically 8000 to 10000 polygons), polylines (8000 to 10000 lines with 10's to 1000's of points, variable widths with multiple paterns), text (potentially 1000's of) and symbols (potentially 1000's of, ideally at least 5000). The drawing is frequently scaled as the map is zoomed in and out which potentially nullifies the bitmap caching idea. We do cache the Direct2D geometry objects as a first step in optimising.
Given this scenario we are finding the performance of polygon rendering and the outlines to be insufficient with Windows 7. In fact GDI appears to be a lot quicker... which is surprising.
We suspect that the use case scenarios for Direct2D do not consider this type of complex application (at least on Windows 7 and given the performance scenario in the video).
I hope that by knowing what we are attempting to achieve then you will consider this in performance testing/improvements.
We would like to know if we are just pushing the performance envelope too hard and should consider a different drawing api (DirectX)?
Note: we do need to do drawing on a Server in multiple threads so DirectX may not be sensible in this case. So suggests for this would be welcome.
computing on a server ? possibly you should look at direct compute ?
use multiple GPU cards to render that data but skip DX as the display is not there ??