I've heard GPU's have sub-pixel precision, so I was wondering if Alpha to Coverage helps when MSAA is disabled?
Alpha to Coverage w/o MSAA
I think you should research a little more because you're not fully making sense.
Sub-Pixel precision is needed to do MSAA, and Alpha to Coverage is a special repurpose of MSAA.
If you're using newer GPU's and API's, then you can manually output the coverage mask from your pixel/fragment shader and do whatever you want, rather than relying on the driver to do it. So you can do dithering across pixels, subsample-only dithering, or something else entirely.
Thank you both. Basically I was imagining that AtoC might modify rasterization i.e. make a visible fragment "disappear" because the modified coverage mask using subpixel rasterization rules.
In my D3D11 implementation, I am getting proper alpha test just by setting alpha to coverage flag in blend stage. i have removed the 'clip' instructions from my pixel shaders and it still works even with no MSAA. So ATC is acting just like clip - is there any performance advantage here?
In my D3D11 implementation, I am getting proper alpha test just by setting alpha to coverage flag in blend stage. i have removed the 'clip' instructions from my pixel shaders and it still works even with no MSAA. So ATC is acting just like clip - is there any performance advantage here?
That totally depends on the hardware, and how they implement A2C. In some cases the hardware might implement it by patching the pixel shader, in others they might do it in the ROPs. In some cases doing in the shader might be cheaper, since the discard can allow the shader to "early out" if all threads hit the discard statement.