If "glsl_correct_derivatives_after_discard=true" fixes it, it's not an alpha-to-coverage issue. It's a problem with the use of discard in GLSL. There is no difference in alpha-to-coverage behavior between DX and GL. Make sure you have this fix: https://cgit.freedesktop.org/mesa/mesa/commit/?id=f222cfww3c6d6fc5d9dee3742d20aa77cfff9c39f8 If there is a difference between DX and GL, the GL specification can be corrected or a new GL extension can be added for the DX behavior.