Приветы из прошлого

С помощью Winqual отловил редкую (на сегодня) багу в старых драйверах Nvidia, которая била и по FastRawViewer:

  • Драйвера серии 2xx (я тестировал на 296.17, но в дампах видны и другие) для старых карт (с 8800 по GTX560) декларируют OpenGL extension GL_OES_get_program_binary, но при попытке порезолвить это расширение - оно не резолвится.
    Я вот даже не знаю, ошибка это, или спецификации OpenGL это разрешают, но декларировать расширение, которого нет на самом деле - это беспредел.
    В современных драйверах (Windows ставит 340.52 через апдейты, на geforce.com предлагают 341.92) этой проблемы нет, то есть простая установка рекомендованных апдейтов проблему решает (потому и бага редкая).
  • FRV это даже пытается обработать (на всякий случай), но, как выяснилось, неправильно (написано на всякий случай, потестировать не было случая, получилась ошибка в условии if).

Ну, полечил, в 1.2.2 будет, там всей правки на пару строк.

Одновременно повеяло прошлым из другого места:

  • Вынимаю боевую видеокарточку, вставляю заботливо заначенную 8600GS
  • Загружаюсь (Win8.1 x64), windows начинает мучительно искать драйвера.
  • Параллельно ставлю драйвера сам, перезагрузка не требуется.
  • Запускаю отладчик, чиню багу, начинаю тестировать.
  • В какой-то момент FRV мне говорит "милок, а у тебя OpenGL стал 1.1"

Это значит виндовый поиск драйверов ничего не нашел - и временно поставленные (без перезагрузки) видеодрайвера куда-то дел, вернул родной Windows OpenGL 1.1 (софтверный, еще от Win95).

После перезагрузки все, понятное дело, встало на место. Мораль же в том, что "драйвера без перезагрузки" в варианте 3-летней давности - это кривой механизм. Его, похоже, улучшили, с драйверами 3xx я таких засад не помню, но место - кусается.