Чому для графічних процесорів потрібні спеціальні драйвери для гри?


31

Оновлення драйверів для графічних процесорів ПК часто цитують поліпшення в роботі певних нещодавно випущених ігор. Для чого потрібне це оновлення, специфічне для гри? Як зміни, пов'язані з грою, взаємодіють із кодом гри?

Відповіді:


31

Як людина, яка має кілька років розвитку водіїв, я бачу це як два окремих питання.

Графічний драйвер - дуже складний звір. Втілити все в оптимальний спосіб було б просто неможливим завданням; це досить велике перешкода, щоб зробити драйвера, який насправді слідує за характеристиками - і характеристики все більше ускладнюються. Отже, ви розробляєте свій драйвер на основі специфікації та кількох тестових додатків (як, у багатьох випадках, справжнього програмного забезпечення ще немає).

Поряд з цим з'являється реальна гра (або орієнтир, або якийсь інший випадок використання драйвера, як-от декодування відео), що виявляє вузьке місце у драйвері. Попереду, вигадуючи, як згладити речі та зробити цю справу швидше. Ви можете легко повідомити про те, що гра XYZ на 27,3% швидша, але насправді кожна програма, яка заявляє про випадки використання (скажімо, динамічне оновлення текстури), стає швидшою.

Тоді є потворна сторона, реальна оптимізація для кожного додатка, де драйвер визначає, яку програму запускає (або який шейдер збирається) і робить щось не загальне. Існує безліч оприлюднених випадків цього, коли, наприклад, перейменування виконується в 3dmark виконавчого тексту раптово змінює результати.

Я вважаю, що такі оптимізації - це марна трата часу - ти брешеш своїм клієнтам у випадку орієнтирів, і ти можеш змінити спосіб поведінки шейдера від того, що насправді хоче розробник. Я пригадую випадок, коли шейдер був змінений з пошуку текстури на обчислення в шейдері (який працював тільки на обладнання виробника), який був близьким, але не точно таким же результатом, і розробник заявив, що це не було законним оптимізація.


2
+1, і це має бути прийнятою відповіддю; це чудово допомагає описати точну ситуацію і з внутрішньої точки зору. Думаю, я знаю той випадок, про який ви згадали - можливо, акуратний розрахунок ;)
Максим Мінімус

14

В ідеальному світі вони цього не зробили б.

Однак це не ідеальний світ, тому покращення продуктивності, пов'язане з іграми, може відбуватися з одного або декількох із наведених нижче (не призначених для вичерпного переліку):

  • Гра виконує комбінацію операцій A, B і C із наборами станів X, Y і Z. На основі цього водій може робити припущення і підштовхувати речі до більш оптимального кодового шляху.

  • Гра ніколи не робить операцій I, J або K. Знову ж, драйвер, можливо, зможе вибрати більш оптимальний шлях коду, виходячи з того, що може припустити, що ці операції ніколи не виконуються.

  • Гра виконує деякі речі трохи (або не так уже й трохи) неоптимально. Водій це знає, перехоплює дзвінки та перетворює їх у щось (сподіваємось!) Еквівалент, що буде працювати з ним краще.

  • Можливі компромісні ігри; наприклад, це нормально, якщо ця комбінація станів візуалізації йде повільно, тому що важливіше, щоб ця комбінація йшла швидше, тому давайте оптимізувати її відповідно.

Тут важливо зазначити, що жодне з них насправді не повинно бути "необхідним". Поки і драйвер, і використання API гри відповідають вимогам, все має працювати. Але іноді компроміси, що мають особливий випадок, щоб отримати максимальну ефективність, можуть розглядатися як доречні. Я не буду коментувати, чи це добре, чи ні.


1
Мені кажуть, що драйвери GPU драйвери також іноді зазирають у шейдери для популярних ігор та пишуть власні версії, оптимізовані під їх обладнання, які драйвер мовчки замінить оригінальні шейдери.
Натан Рід

9
@NathanReed Колись це було набагато далі. Ще коли дорога анізотропна фільтрація та стиснення текстури були дорогими, GPU-компанії виходили зі шляху, щоб знизити візуальну якість кінцевого продукту, коли він працював у режимі реального часу, щоб зробити це швидше, не сповіщаючи нікого дешевим монітором що гра виглядала набагато гірше. Вони навіть перехоплюють дзвінки на PrintScreen і роблять повноцінне відображення для зображення.
Норгуард

8
Виробники GPU також люблять обманювати популярні орієнтири. Я пам’ятаю порівняльний тест із журналу ПК, де вони виконували один і той же тест двічі з тими ж налаштуваннями в одній системі. Але одного разу вони перейменували виконуваний файл еталону, щоб водій не розпізнав його. Цікаво, що оцінка на перейменованому виконуваному файлі була помітно гіршою - як для карт ATI, так і для nvidia.
Філіп

8

Розробники ігор висувають межі графічних процесорів. Ми можемо зробити аналогію з грою та ігровим двигуном. Чим досконаліші вимоги до гри, тим більш досконалим повинен бути ігровий двигун для його підтримки. Це те саме з графічними картами.

Комп'ютерні ігри та виробники графічних процесорів - хороші ліжка. В їх інтересах спільно працювати над покращенням GPU, тим самим покращуючи гру. Це класичні хлопці з програмного забезпечення, які працюють із апаратними відносинами хлопців. Обидві сторони мають щось додати, коли справа стосується проектування інтерфейсу між програмним та апаратним забезпеченням. Цей інтерфейс є драйвером.

Ці оновлення можуть включати виправлення помилок, знайдені хлопцями з програмного забезпечення, або вдосконалення, які вчинили хлопці з обладнання, щоб підтримати вимоги хлопців програмного забезпечення. Ви знайдете ці відносини в усьому світі.

Ймовірно, міркування щодо включення конкретних ігор у нотатки до випуску оновлення драйверів - PR. Це не тільки показує, що виробник карт X буде дуже добре працювати з грою Y, але й показує, що гра Y буде ще кращою, ніж була раніше.


6

Цілком правдоподібно, що команда розробників ігор зіткнулася з помилкою драйвера графічного процесора, що призведе до неправильної роботи гри, якщо помилка драйвера не була виправлена.

Це також іноді маркетинговий трюк . Наприклад, ATI / AMD нещодавно придбала копію Dirt 3 зі своїми новішими графічними процесорами і підштовхнула ідею грати з Eyefinity з трьома моніторами в цій грі.

Так що це трохи симбіозу.

Продавець GPU: Гей! Ця нова функція! Ніхто його не використовує!

Розробник гри: Ми могли б цим скористатися! З’єднайте нашу гру зі своїм графічним процесором, який використовує цю функцію?

Постачальник GPU: Чорт!


1

Правда полягає в тому, що для графічних процесорів не потрібні спеціальні драйвери.

Специфічні для гри драйвери є частиною маркетингових зусиль виробників GPU, щоб спробувати отримати перевагу перед іншими виробниками GPU. Якщо вони можуть показати кращі показники в популярних іграх, налаштувавши свої драйвери на конкретні ігри, то (теорія іде) вони залучають більше гравців цих ігор.

Це майже все, що там є.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.