Mengapa GPU membutuhkan driver khusus game?

31

Pembaruan driver GPU PC sering mengutip peningkatan yang dibuat untuk kinerja game tertentu yang baru saja dirilis. Mengapa pembaruan khusus game ini diperlukan? Bagaimana perubahan spesifik game berinteraksi dengan kode game?

ApoorvaJ
sumber

Jawaban:

31

Sebagai seseorang dengan beberapa tahun pengembangan driver, saya melihat ini sebagai dua masalah terpisah.

Driver grafis adalah binatang yang sangat rumit. Untuk mengimplementasikan segala sesuatu dengan cara yang optimal akan menjadi tugas yang sangat mustahil; itu adalah rintangan yang cukup besar hanya untuk membuat pengemudi yang benar-benar mengikuti spesifikasi - dan spesifikasi terus semakin kompleks. Jadi, Anda mengembangkan driver Anda berdasarkan spesifikasi, dan beberapa aplikasi pengujian (seperti, dalam banyak kasus, belum ada perangkat lunak nyata ).

Seiring datang permainan nyata (atau patokan, atau beberapa kasus penggunaan lainnya untuk pengemudi, seperti decoding video) yang memaparkan kemacetan pada pengemudi. Dalam perjalanan Anda, mencari tahu cara memuluskan hal-hal dan membuat penggunaan case lebih cepat. Anda dapat dengan mudah melaporkan bahwa game XYZ adalah 27,3% lebih cepat, tetapi pada kenyataannya setiap aplikasi yang mengatakan kasus penggunaan (katakanlah, pembaruan tekstur dinamis) menjadi lebih cepat.

Lalu ada sisi jelek, optimalisasi per aplikasi nyata, di mana pengemudi mendeteksi aplikasi apa yang sedang dijalankan (atau mana shader sedang dikompilasi) dan melakukan sesuatu yang non-generik. Ada banyak kasus yang dipublikasikan tentang ini, di mana, misalnya, mengganti nama 3dmark yang dapat dieksekusi tiba-tiba mengubah hasilnya.

Saya merasa optimisasi semacam ini adalah buang-buang waktu semua orang - Anda berbohong kepada pelanggan Anda dalam hal tolok ukur, dan Anda dapat mengubah cara shader berperilaku dari apa yang sebenarnya diinginkan pengembang. Saya ingat kasus di mana shader diubah dari pencarian tekstur ke perhitungan in-shader (yang hanya bekerja untuk perangkat keras pabrikan tersebut) yang dekat, tetapi hasilnya tidak persis sama, dan pengembang menolak keras bahwa ini bukan legal optimasi.

Jari Komppa
sumber
2
+1 dan ini harus menjadi jawaban yang diterima; itu melakukan pekerjaan yang bagus untuk menggambarkan situasi yang tepat dan dari sudut pandang orang dalam. Saya rasa saya tahu kasus yang Anda sebutkan - perhitungan specular, mungkin? ;)
Maximus Minimus
14

Di dunia yang ideal mereka tidak akan melakukannya.

Namun ini bukan dunia yang ideal, jadi peningkatan kinerja khusus game mungkin berasal dari satu atau lebih hal berikut ini (tidak dimaksudkan sebagai daftar lengkap):

  • Gim ini melakukan kombinasi operasi A, B, dan C dengan pengaturan X, Y, dan Z. Pengemudi dapat membuat asumsi berdasarkan ini dan mendorong hal-hal ke jalur kode yang lebih optimal.

  • Permainan tidak pernah melakukan operasi I, J atau K. Sekali lagi, pengemudi mungkin dapat memilih jalur kode yang lebih optimal berdasarkan pada kemampuan untuk menganggap bahwa operasi ini tidak pernah dilakukan.

  • Permainan melakukan beberapa hal dengan cara yang sedikit (atau tidak begitu sedikit) secara suboptimal. Pengemudi mengetahui hal ini, menyadap panggilan, dan mengonversinya menjadi sesuatu yang (semoga!) Setara yang akan bekerja lebih baik dengannya.

  • Pengorbanan khusus game dapat dilakukan; misalnya itu OK jika ini kombinasi membuat negara berjalan lambat karena itu lebih penting bahwa bahwa kombinasi berjalan lebih cepat jadi mari kita mengoptimalkan ini sesuai.

Penting untuk dicatat di sini bahwa tidak ada yang benar-benar harus "diperlukan". Selama pengemudi dan penggunaan API gim tersebut sesuai, semuanya akan berfungsi. Tetapi kadang-kadang pengorbanan kasus khusus untuk dapat mengekstraksi kinerja maksimal mungkin dianggap tepat. Saya akan menahan diri dari mengomentari apakah itu hal yang baik atau tidak.

Maximus Minimus
sumber
1
Saya diberi tahu bahwa para penulis driver GPU kadang-kadang juga akan mengintip shaders untuk game-game populer dan menulis versi mereka sendiri yang dioptimalkan untuk perangkat keras mereka, yang mana driver akan secara diam-diam menggantikan shader asli.
Nathan Reed
9
@NathanReed Sekali waktu, ia melangkah lebih jauh dari itu. Kembali ketika Anisotropic Filtering dan kompresi tekstur mahal, perusahaan GPU akan keluar dari jalan mereka untuk menurunkan kualitas visual dari produk akhir, ketika dijalankan secara real-time, untuk membuatnya lebih cepat tanpa memperingatkan siapa pun dengan monitor murah bahwa permainan terlihat jauh lebih buruk. Mereka bahkan mencegat panggilan ke PrintScreen, dan melakukan render berkualitas penuh untuk gambar.
Norguard
8
Pabrikan GPU juga suka menipu di tolok ukur yang populer. Saya ingat perbandingan benchmark dari majalah PC di mana mereka menjalankan benchmark yang sama dua kali dengan pengaturan yang sama pada sistem yang sama. Tetapi suatu kali mereka mengganti nama executable dari benchmark sehingga pengemudi tidak akan mengenalinya. Anehnya, skor pada executable yang diganti nama menjadi lebih buruk - untuk kartu ATI dan nvidia.
Philipp
8

Pengembang game mendorong batasan GPU. Kita bisa membuat analogi dengan game dan mesin game. Semakin maju persyaratan game, semakin canggih mesin game untuk mendukungnya. Ini sama dengan kartu grafis.

Game komputer dan pabrikan GPU adalah teman tidur yang baik. Adalah kepentingan terbaik mereka untuk bekerja sama untuk meningkatkan GPU, sehingga meningkatkan game. Ini adalah perangkat lunak klasik yang bekerja dengan hubungan perangkat keras. Kedua belah pihak memiliki sesuatu untuk ditambahkan ketika datang untuk merancang antarmuka antara perangkat lunak dan perangkat keras. Antarmuka itu adalah driver.

Pembaruan ini mungkin termasuk perbaikan bug yang ditemukan orang-orang perangkat lunak, atau perbaikan yang dilakukan orang-orang perangkat keras untuk mendukung persyaratan orang-orang perangkat lunak. Anda akan menemukan hubungan ini di mana-mana.

Kemungkinan alasan di balik termasuk game tertentu dalam catatan rilis pembaruan driver adalah PR. Ini tidak hanya menunjukkan bahwa produsen kartu X akan bekerja dengan sangat baik dengan game Y, tetapi juga menunjukkan bahwa game Y akan menjadi lebih baik daripada sebelumnya.

MichaelHouse
sumber
6

Masuk akal bahwa tim pengembangan game mengalami bug driver GPU yang akan menyebabkan game tidak berfungsi dengan benar jika bug driver tidak diperbaiki.

Ini juga terkadang merupakan trik pemasaran . Sebagai contoh, ATI / AMD baru-baru ini menggabungkan salinan Dirt 3 dengan GPU mereka yang lebih baru dan mendorong gagasan bermain dengan Eyefinity dengan 3 monitor pada game ini.

Jadi ada sedikit simbiosis di sana.

Vendor GPU: Hei! Fitur baru ini! Tidak ada yang menggunakannya!

Pengembang game: Kita bisa menggunakannya! Bundel game kami dengan GPU Anda yang menggunakan fitur ini?

Vendor GPU: Ya ampun!

bobobobo
sumber
1

Yang benar adalah bahwa GPU tidak memerlukan driver khusus game.

Penggerak khusus gim adalah bagian dari upaya pemasaran oleh pabrikan GPU untuk mencoba mendapatkan keunggulan dibandingkan pabrikan GPU lainnya. Jika mereka dapat menunjukkan kinerja yang lebih baik di game-game populer dengan mengatur driver mereka untuk game-game tertentu, maka (teorinya) mereka menarik lebih banyak pemain dari game-game itu.

Cukup banyak yang ada untuk itu.

Trevor Powell
sumber