Apparently discard can cause rendering glitches that don't happen when we write a purely transparent pixel instead.