How GL_DITHER works is implementation-defined, and we handle the non-blended case in the pixel shader.