mrvux described how Direct2D works under the hood here:
Please note that when tessellating bezier path D2D does a very great work at making the resulting geometry non self intersecting (so alpha blending works properly even on some complex self intersecting path).
In case on rounded rectangle, it does the same, just tessellates into triangles.
This allows it to minimize draw calls to a good extent, as well as allowing anti alias on a non msaa surface (this is done at mesh level, with some small triangles with alpha).
Can someone explain what "this is done at mesh level" means?
I am currently rendering my line strip's via ID2D1PathGeometry. However, the line strip data is on the gpu, and I now want to render them without reading back to the cpu (i.e. with the 3D pipeline). How can I do non-msaa anti-aliasing like Direct2D?
The only resource I could find was Line Rasterization Rules (Antialiased, Without Multisampling). This type of rasterization is called alpha line anti-aliasing.
Since alpha line anti-aliasing can only render line-strips with a width of 1, I assume that Direct2D must tessellate the line into a triangle strip when the width is not equal to 1. But what happens when the width is 1? Would Direct2D use line-strips in this case? It's no clear how Direct2D can anti-alias a triangle strip without msaa.
Edit: I'm going to go ahead with alpha line anti-aliasing so this question is mostly to satisfy my curiosity.
Edit 2: alpha line anti-aliasing isn't actually doing any alpha blending on my hardware, it just draws an aliased line but thicker (which is good enough for me). This is also true of the results here https://github.com/microsoft/DirectXTK/wiki/Line-drawing-and-anti-aliasing#anti-aliased-lines