Конец 2007 года, последняя на тот момент убунта 7.10. Сижу я, значит, изучаю её. Решил попробовать скомпилировать Wine из исходников - а вдруг быстрее будет? И что вы думаете - так и оказалось. Итак, Wine 0.9.53 (никто ещё не знал что через три месяца будет 1.0 - все думали что версия 0. вечная). fakeroot apt-get -b source wine. В отличие от версии из репозитория, работают шейдеры в Morrowind. Вот это прикол!
Оказалось что Wine из дистрибутива компилируется с libGL.so.1 из пакета libgl1-mesa, и header-файлами из libgl1-mesa-dev. Затем он без проблем работает на ATi, NVIDIA, и с открытыми драйверами. А если скомпилировать с libgl1-nvidia-glx + libgl1-nvidia-glx-dev, то работают шейдеры в Morrowind.
Правда, тогда на ATi вообще игры не работали. Консоль сыпала ошибками что не найдены какие-то расширения OpenGL, начинающиеся с GL_NV_*. Пересобрал с Catalyst. Работает, но тогда на NVIDIA не работает. Вывод: ребята, компилируйте программы только с Mesa.
Что дальше. Сделал diff /usr/include/GL от пакета mesa-glx-dev и nvidia-glx-dev. Они действительно отличаются. Однако то, что не работали шейдеры, оказалось багом Mesa, а не её ущербностью: вот уже несколько лет ошибки нет. С тех я не вижу ни одного отличия в Wine, скомпилированном с Mesa и с NVIDIA.
P.S. Пакета nvidia-glx-dev больше нет начиная с Debian 5.0 «Lenny». Если кому-то хочется попробовать покомпилировать с header-файлами NVIDIA, установите драйвер из официального RUN-файла с параметром --opengl-headers.