Tại sao GPU yêu cầu trình điều khiển cụ thể của trò chơi?


31

Các bản cập nhật trình điều khiển GPU PC thường trích dẫn các cải tiến được thực hiện cho hiệu năng của các trò chơi được phát hành gần đây. Tại sao cần cập nhật cụ thể trò chơi này? Làm thế nào để thay đổi cụ thể trò chơi tương tác với mã trò chơi?

Câu trả lời:


31

Là một người có vài năm phát triển trình điều khiển, tôi thấy đây là hai vấn đề riêng biệt.

Một trình điều khiển đồ họa là một con thú rất phức tạp. Để thực hiện mọi thứ một cách tối ưu sẽ là một nhiệm vụ đơn giản là không thể; đó là một trở ngại đủ lớn chỉ để tạo ra một trình điều khiển thực sự tuân theo thông số kỹ thuật - và thông số kỹ thuật ngày càng phức tạp hơn. Vì vậy, bạn phát triển trình điều khiển của mình dựa trên thông số kỹ thuật và một số ứng dụng thử nghiệm (như trong nhiều trường hợp, chưa có phần mềm thực sự nào).

Cùng với đó là một trò chơi thực sự (hoặc điểm chuẩn hoặc một số trường hợp sử dụng khác cho trình điều khiển, như giải mã video) để lộ một nút cổ chai trong trình điều khiển. Theo bạn, hãy tìm ra cách làm cho mọi thứ trở nên trơn tru hơn và làm cho trường hợp sử dụng đó nhanh hơn. Bạn có thể dễ dàng báo cáo rằng XYZ trò chơi nhanh hơn 27,3%, nhưng trong thực tế, mọi ứng dụng đã nói trường hợp sử dụng (giả sử, cập nhật kết cấu động) sẽ nhanh hơn.

Sau đó, có mặt xấu, tối ưu hóa trên mỗi ứng dụng thực, trong đó trình điều khiển phát hiện ứng dụng nào đang được chạy (hoặc trình đổ bóng nào đang được biên dịch) và thực hiện một cái gì đó không chung chung. Có rất nhiều trường hợp công khai về điều này, ví dụ, trong đó đổi tên 3dmark thực thi đột nhiên thay đổi kết quả.

Tôi cảm thấy các loại tối ưu hóa này là một sự lãng phí thời gian của mọi người - bạn nói dối với khách hàng của mình trong trường hợp điểm chuẩn và bạn có thể thay đổi cách một shader hành xử theo những gì nhà phát triển thực sự muốn. Tôi nhớ lại một trường hợp trong đó một shader đã được thay đổi từ một tra cứu kết cấu thành một phép tính trong shader (chỉ hoạt động đối với phần cứng của nhà sản xuất đã nói), nhưng không chính xác, và nhà phát triển đã cho rằng đây không phải là hợp pháp tối ưu hóa.


2
+1 và đây phải là câu trả lời được chấp nhận; nó làm một công việc tuyệt vời để mô tả tình huống chính xác và từ góc độ bên trong. Tôi nghĩ rằng tôi biết trường hợp mà bạn đề cập - tính toán cụ thể, có lẽ? ;)
Maximus Minimus

14

Trong một thế giới lý tưởng, họ sẽ không.

Tuy nhiên, đây không phải là một thế giới lý tưởng, do đó, các cải tiến hiệu suất dành riêng cho trò chơi có thể đến từ một hoặc nhiều điều sau đây (không có ý định là một danh sách đầy đủ):

  • Trò chơi đang thực hiện kết hợp các thao tác A, B và C với các trạng thái X, Y và Z được đặt. Trình điều khiển có thể đưa ra các giả định dựa trên điều này và đẩy mọi thứ đến một đường dẫn mã tối ưu hơn.

  • Trò chơi không bao giờ thực hiện các thao tác I, J hoặc K. Một lần nữa, người lái xe có thể chọn đường dẫn mã tối ưu hơn dựa trên việc có thể cho rằng các thao tác này không bao giờ được thực hiện.

  • Trò chơi thực hiện một số điều theo cách tối ưu một chút (hoặc không quá nhẹ). Người lái xe biết điều này, chặn các cuộc gọi và chuyển đổi chúng thành một cái gì đó (hy vọng!) Sẽ hoạt động tốt hơn với nó.

  • Sự đánh đổi dành riêng cho trò chơi có thể được thực hiện; ví dụ: không sao nếu sự kết hợp các trạng thái kết xuất này bị chậm vì điều quan trọng hơn sự kết hợp đó diễn ra nhanh hơn vì vậy hãy tối ưu hóa cho phù hợp.

Điều quan trọng cần lưu ý ở đây là không ai trong số này thực sự phải là "bắt buộc". Miễn là cả trình điều khiển và cách sử dụng API của trò chơi đều tuân thủ, mọi thứ sẽ hoạt động. Nhưng đôi khi sự đánh đổi trong trường hợp đặc biệt để có thể trích xuất hiệu suất tối đa có thể được xem là phù hợp. Tôi sẽ không bình luận về việc đó có phải là một điều tốt hay không.


1
Tôi đã nói với các nhà văn trình điều khiển GPU đôi khi cũng sẽ nhìn trộm các shader cho các trò chơi phổ biến và viết các phiên bản của riêng họ được tối ưu hóa cho phần cứng của họ, mà trình điều khiển sẽ âm thầm thay thế cho các shader gốc.
Nathan Reed

9
@NathanReed Ngày xửa ngày xưa, nó còn đi xa hơn thế. Quay trở lại khi Lọc Anisotropic và nén kết cấu đắt tiền, các công ty GPU sẽ tìm cách hạ thấp chất lượng hình ảnh của sản phẩm cuối, khi nó chạy trong thời gian thực, để làm cho nó nhanh hơn mà không cần cảnh báo cho bất kỳ ai bằng màn hình giá rẻ rằng trò chơi trông tệ hơn nhiều. Họ thậm chí còn chặn các cuộc gọi đến PrintScreen và thực hiện kết xuất chất lượng đầy đủ cho ảnh.
Norguard

8
Các nhà sản xuất GPU cũng thích gian lận ở các điểm chuẩn phổ biến. Tôi nhớ một điểm chuẩn so sánh từ một tạp chí PC nơi họ đã chạy cùng một điểm chuẩn hai lần với cùng các cài đặt trên cùng một hệ thống. Nhưng một lần, họ đổi tên thành thực thi của điểm chuẩn để người lái xe không nhận ra. Thật kỳ lạ, điểm số trên thực thi được đổi tên là tồi tệ hơn đáng kể - cho cả thẻ ATI và nvidia.
Philipp

8

Các nhà phát triển trò chơi đẩy các giới hạn của GPU. Chúng ta có thể tạo ra sự tương đồng với một trò chơi và một công cụ trò chơi. Các yêu cầu của trò chơi càng tiên tiến, công cụ trò chơi càng cần phải nâng cao hơn. Điều này giống với card đồ họa.

Các trò chơi máy tính và nhà sản xuất GPU là những người bạn tốt trên giường. Đó là vì lợi ích tốt nhất của họ để cùng nhau cải thiện GPU, từ đó cải thiện trò chơi. Đây là những kẻ phần mềm cổ điển làm việc với mối quan hệ kẻ phần cứng. Cả hai bên đều có một cái gì đó để thêm vào khi thiết kế giao diện giữa phần mềm và phần cứng. Giao diện đó là trình điều khiển.

Các bản cập nhật này có thể bao gồm các bản sửa lỗi mà các phần mềm đã tìm thấy hoặc các cải tiến mà các phần cứng đã thực hiện để hỗ trợ các yêu cầu của các phần mềm. Bạn sẽ tìm thấy mối quan hệ này trên tất cả.

Có khả năng lý do đằng sau bao gồm các trò chơi cụ thể trong ghi chú phát hành cập nhật trình điều khiển là PR. Nó không chỉ cho thấy nhà sản xuất thẻ X sẽ hoạt động thực sự tốt với trò chơi Y, mà còn cho thấy trò chơi Y sẽ còn tuyệt vời hơn trước đây.


6

Điều hợp lý là nhóm phát triển trò chơi đã gặp phải lỗi trình điều khiển GPU khiến trò chơi không hoạt động chính xác nếu lỗi trình điều khiển không được sửa.

Nó đôi khi cũng là một mánh lới quảng cáo tiếp thị . Ví dụ, ATI / AMD gần đây đã gói một bản sao của Dirt 3 với các GPU mới hơn của họ và thúc đẩy ý tưởng chơi với Eyefinity với 3 màn hình trong trò chơi này.

Vì vậy, đó là một chút cộng sinh ở đó.

Nhà cung cấp GPU: Này! Tính năng mới này! Không ai sử dụng nó!

Nhà phát triển trò chơi: Chúng tôi có thể sử dụng nó! Gói trò chơi của chúng tôi với GPU của bạn có sử dụng tính năng này không?

Nhà cung cấp GPU: Địa ngục ya!


1

Sự thật là GPU không yêu cầu trình điều khiển dành riêng cho trò chơi.

Các trình điều khiển dành riêng cho trò chơi là một phần trong nỗ lực tiếp thị của các nhà sản xuất GPU để cố gắng có được lợi thế so với các nhà sản xuất GPU khác. Nếu họ có thể thể hiện hiệu suất tốt hơn trong các trò chơi phổ biến bằng cách điều chỉnh trình điều khiển của họ cho các trò chơi cụ thể đó, thì (theo lý thuyết), họ sẽ thu hút nhiều người chơi của những trò chơi đó.

Đó là khá nhiều tất cả là có nó.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.