Comments 26
В какой момент мы пришли к тому, что драйвера видеокарт пишутся и модифицируются под каждую конкретную игру?
if (game == "Starfield") game.fps += 100;
Достаточно давно.
А ОСи ещё дольше
Это вы батенька зажрались, во времена какой-нибудь TNT, S3 итп. захотел поиграть в 1 игрушку ставишь один драйвер, хочешь поиграть в другую ставишь другой) Предварительно надо еще узнать какой с чем будет работать, автообновлений и можно сказать интернета как такового нет)
У Nvidia даже есть так называмые Game Ready Drivers для Windows. Последнее обновление например здорово подняло производительность в Baldurs Gate 3
А расскажите, кто в теме, как это вообще работает - подгонка драйверов под игру?
Я себе представляю следующее - есть некоторый графический апи, который работает поверх драйвера видяхи, есть игра, которая использует именно апи. А как в этом процессе помогает обновление драйвера? Они там под конкретные апи что-то делают, или как-то вяжутся аж на прикладной уровень?
Или вообще все не так?
Интерфейсная библиотека API может подсмотреть, в пространство какого процесса ее подгрузили, и вынуть имя файла игры, его свойства (версия/билд, архитектура). А дальше по таблице можно включить те или иные оптимизации, они довольно общие для всех игр: подвигать Z-буфер, поиграться с текстурами и/или геометрией, тут добавить вычислительный шейдер, там заменить штатный…
С какого перепуга этим должен заниматься драйвер, а не разработчики игры — тем более новой свежевышедшей и ещё поддерживаемой разработчиками игры?
А это — уже совершенно иной вопрос )
Не должен. Но и ААА проекты не тестируют, на всех конфигурациях, всё абсолютно, подбирая после оптимальные параметры под каждую.
Получается, на примере GeForce Game Ready drivers, симбиоз:
разработчик получает проверку игры производителем видеокарты и оптимизации драйверов под игру на разных устройствах (4500 конфигураций в статье прошлого года)
производитель видеокарты не получает отзывов "на GeForce ХХХХ оно падает раз в н минут/у меня фпс 19, а у друга на амд всё летает"
Вот вкратце, с видео, про GeForce Game Ready https://www.pcworld.com/article/693932/nvidia-explains-why-you-always-want-the-latest-game-ready-drivers.html
Так, вроде, это всегда так было - крупные студии работают совместно с разработчиками из nvidia/amd/intel. И совместно подгоняют код/драйверы друг под друга.
По большому счету имеется стандарт (opengl и тд) и его реализации. У каждого производителя ускорителей своя интерпретация(драйвера однако) . Если на конкретной карте внезапно что-то пошло не так как у остальных - вопрос явно не к разработчику игр. Если ты производишь автомобиль, то вправе ожидать от поставщика покрышек что-то круглое, а не квадратное или зелёное.
Хм, звучит технически понятно. Но тот же вопрос, что и у другого комментатора, только чуть иначе - а кому это выгодно? Ну то есть я из идеалистических соображений считаю что это костылища страшенные, но ведь индустрия играет по этим правилам, получается. Это как если бы производители автомобилей налету апгрейдили железо, под неразобравшихся в обслуживании водителей (да, аналогия так себе). Ставлю себя на место разработчика драйвера в таких условиях и седею)
Скорее производители автомобилей адаптировали бы своё железо под новые дороги особенной "кривизны" (ну там асфальт в форме стиральной доски положили, потому что архитектор так видит, как-то так). А выгода очень простая: понятно, что конкуренты будут это делать, поэтому если мы не сделаем, то мы отстанем от них и потеряем кусок рынка. Рыночная экономика в условиях отсутствия монополии работает по эволюционным законам: выживает не самый правильный (по каким угодно критериям), а наиболее приспособленный к данной конкретной ситуации. Нагородим очередных костылей здесь и сейчас, чтобы решить текущие проблемы и обогнать конкурентов на минутку, а то, что в перспективе из костылей и подпорок вырастают уже египетские пирамиды - ну что ж, такова жизнь.
Да, пожалуй звучит убедительно. Пользователь в итоге получает блага в виде работающей комбинации игра+видеокарта, а индустрия в конечном итоге остается в плюсе потому что «а как иначе». Ну, наверное это не так уж и плохо, кроме того факта, что игры на релизе не похожи на готовый законченный продукт.
Мне не понятно почему разработчики драйверов фиксят драйвера вместо того, что бы отослать отчет разработчикам игр. Это позволило бы избежать разбухания кода драйверов и обменяться знаниями с разработчиками игры.
Все современные ААА после релиза выкатывают патчи все равно.
Вот этот вопрос лучше задать самим производителям.
Но, чисто спекулятивно, наиболее очевидной причиной кажется репутация: человек en masse очень ленивый и потому невероятно тупой: радостно выхватывает синдром утенка, а потом, когда что-то противоречит предущему опыту, вместо формирования нового опыта или попыток дать знать и наверх по цепочке, что что-то не так, или, тем более, изучить проблему — просто клеймит то, что подвернется под руку.
Что приводит к мнениям вроде: коль Photoshop не работает на Linux — то виноват Linux; если игра не работает на Intel Arc — то плохой Intel Arc; а коли перестал работать SimSity — это все Windows 95 кривая и глючная.
Справедливости ради, проблема действительно бывает не на стороне верхнего разработчика (того, чей продукт запускается поверх всего остального стека), но из-за сложности API, различий в реализации функцияй ОС, различий в драйверах и железе, и, самое главное, знании как все эти механизмы работают в совокупности — найти и пофиксить проблему снизу не только репутационно выгоднее, но и проще.
Там давно нет понятия сырой производительности. Срезают где могут. Studio Driver от nvidia ставишь и фпс/2 получаешь. Для шутеров лучше седьмую винду установить. Она злая) ощущение что в железо вцепилась. В десятке латентность ввода-вывода слишком высокая ценой кажущейся плавности. Больше кеша, процессоров, шейдеров и TDP расслабляют "программистов" которые руинят прогресс. Который и так 5 процентов в год в лучшем случае.
Studio Driver от nvidia ставишь и фпс/2 получаешь.
Studio Driver это просто маркетинговое название обыкновенного драйвера, у которого релизное окно слегка сдвинуто относительно обычного драйвера чтобы релизиться вместе с обновлениями 3д редакторов и прочего софта, а не вместе с релизами крупных игр. Можно его еще LTS драйвером считать.
Тестировал в одной игре множество версий драйверов. Studio делает процесс неиграбельным. Под понятие LTS не подходит, слишком часто обновляют. А вообще уровень абстракции через драйвер транслируется. Если можно вместо квадрата треугольник нарисовать а субъект не заметит, то какая разница? В studio такая хрень отключена по умолчанию. В 3д максе, майе, гудини и прочем софте получить артефакты в окне отрисовки - это не сквозь текстуры в игре провалиться) Поправьте меня если не прав.
Зато старфилд запускается на:
Radeon Vega 3 (AMD Athlon 3000G),
Radeon Vega 8 (AMD Ryzen 3 3200G),
Radeon Vega 11 (AMD Ryzen 5 3400G).
Игроки Starfield не смогли запустить её на видеокартах Intel Arc, Intel работает над решением проблемы