Ugly line primitives on DirectX.

On DesktopGL line primitives are nice and clean.

While on DirectX lines look jagged and dirty.

Even straight lines sometimes have 2px wdth.

Is there a way to fix this?

Well the two pixel line issue will be because you are using floating point positions, a line drawn at x = 1.5 will end up fat

I would try looking at your settings on the graphics device. Is multisampling enabled et al

Is this spritebatch or a draw primitives.

Either way i suppose it doesn’t matter.
Round your floats to integer amounts set your size to a integer amount.
Sampler state to point or point clamp (the clamp part doesn’t really matter for this either way).