Phương pháp đúng để chọn thẻ video của người dùng?


8

Trò chơi của tôi sử dụng DirectX 10 và tôi gặp sự cố khi người dùng báo cáo rằng trò chơi của tôi không chọn card đồ họa của họ. Thay vào đó, nó thích chạy trên thẻ Intel tích hợp của họ, làm hỏng hiệu suất. Có thể điều này có liên quan đến Windows 8. Nó cũng có thể liên quan đến thẻ di động.

Cho đến thời điểm hiện tại, tôi đã tạo thiết bị DirectX 10 không có bộ điều hợp được chỉ định (như tôi đã thấy trong tất cả các ví dụ / bản demo cho đến nay), để cho phép DirectX chọn bộ điều hợp riêng. Rõ ràng tôi sẽ phải thay đổi điều đó.

Tôi đã có một chức năng chạy qua tất cả các bộ điều hợp có sẵn và chọn một bộ có bộ nhớ chuyên dụng cao nhất. Điều đó làm việc tuyệt vời để sửa lỗi, nhưng nói chung nó có đúng không?

Thật không may, tôi không thể dựa vào thẻ có đầu ra video hợp lệ (ví dụ: màn hình được nối) vì các máy bị ảnh hưởng bởi sự cố này báo cáo không có đầu ra cho thẻ mong muốn.

Tôi có thể sử dụng thuật toán nào để chọn đúng bộ chuyển đổi nào sẽ sử dụng với DirectX?


bạn đang tìm kiếm? msdn.microsoft.com/en-us/l

Câu trả lời:


11

Chọn bộ điều hợp có bộ nhớ chuyên dụng cao nhất có thể hoạt động trong nhiều trường hợp, nhưng trong một số trường hợp, GPU có sức mạnh xử lý ít hơn có thể có bộ nhớ chuyên dụng hơn và trò chơi của bạn vẫn chạy trên bộ điều hợp "sai".

Điều này đưa tôi đến một câu hỏi ngược lại, bộ chuyển đổi phù hợp là gì? Một trong những sức mạnh tính toán nhất? Người có nhiều bộ nhớ nhất? Một trong đó màn hình chính được gắn vào? Một trong những tiêu thụ ít năng lượng nhất? Tất cả những câu hỏi này có thể có câu trả lời khác nhau cho mỗi người dùng. Ai đó sử dụng máy tính xách tay có thể thích thời lượng pin dài hơn đồ họa tốt hơn. Thay vào đó, ai đó có thể thích chơi trên màn hình phụ của mình (ví dụ: TV).

Do đó, rất nhiều trò chơi cho phép người dùng quyết định GPU nào họ muốn sử dụng. Hầu hết các nhà sản xuất GPU đều có bảng điều khiển nơi có thể chọn GPU ưa thích (thậm chí trên mỗi ứng dụng). Một số trò chơi có hộp thoại khởi động cho phép người dùng chọn rõ ràng GPU ưa thích. Hộp thoại khởi động này thường chỉ được hiển thị trong lần chạy đầu tiên hoặc sau khi gặp sự cố, vì vậy nó cũng có thể hoạt động như một công cụ khôi phục tốt.

Nvidia ưa thích lựa chọn GPU , AMD lựa chọn GPU ưa thích , Flatout 2 lựa chọn GPU ưa thích


Cuối cùng tôi nghĩ rằng đây là những gì tôi phải làm. Tôi vẫn còn thiếu một điều quan trọng ở đây - các trò chơi khác dường như chọn bộ điều hợp phù hợp trong khi trò chơi của tôi không thành công - nhưng tôi nghĩ điều tốt nhất để làm ngay bây giờ chỉ là kiểm soát người chơi.
Raptormeat

3
@Raptormeat: trình điều khiển thường bao gồm "hồ sơ" mà họ sử dụng để chọn thiết bị mặc định cho ứng dụng cho các trò chơi đã biết, đó là một lý do khiến các trò chơi khác hoạt động như mong đợi nhưng bạn thì không. Ngoài ra còn có các bản hack như stackoverflow.com/questions/10535950/, nhưng chỉ hoạt động với NVIDIA (và các nhà cung cấp GPU khác không có tương đương).
Sean Middleditch

1
Một cách tiếp cận khác là chạy một vài khung đại diện (sử dụng Flushvà mục tiêu giả thay vì Presenttrên chuỗi trao đổi) trên mỗi khung và chọn bất kỳ khung nào hoàn thành nhanh nhất làm mặc định. Tuy nhiên, bạn vẫn nên cho phép người dùng chọn, vì họ có thể chọn hy sinh tốc độ khung hình để có thời lượng pin tốt hơn.
MooseBoys

3

Tôi sẽ cho phép người chơi chọn thẻ video nào sẽ sử dụng, tức là thông qua danh sách thả xuống trong menu tùy chọn. Bạn có thể sử dụng GPU với VRAM được phát hiện cao nhất, tốc độ xung nhịp, v.v. làm mặc định lành mạnh. Bạn có thể đi xa hơn và nhắc người chơi chọn giữa "hiệu suất cao" và "tiết kiệm năng lượng" (chọn thẻ thông số kỹ thuật thấp nhất) để mặc định khi trò chơi được khởi động lần đầu tiên, sau đó để chúng cụ thể hơn với lựa chọn của họ trong menu tùy chọn.

Đây là một giải pháp đơn giản cũng sẽ không gây khó chịu cho người chơi nếu nó chọn card màn hình không mong muốn, vì nó đủ dễ để họ thay đổi nếu chọn sai.


2

Nếu bạn chọn bộ điều hợp dựa trên bộ có nhiều bộ nhớ nhất, bạn có thể gặp khó khăn khi phát hiện chính xác dung lượng bộ nhớ được sử dụng bởi Intel HD Graphics. Intel HD Graphics có quyền truy cập vào hai ngân hàng bộ nhớ; một dành riêng và một chia sẻ với CPU. Kích thước của hai ngân hàng được phản ánh trong cấu trúc DXGI_ADAPTER_DESC dưới dạng ExpertVideoMemory và SharedSystemMemory. Đối với mục đích so sánh với các bộ điều hợp khác, bạn có thể chỉ sử dụng ngân hàng chuyên dụng hoặc bạn có thể sử dụng cả hai.

Intel có một mẫu phát hiện GPU cũng cho thấy cách đo cả hai ngân hàng bộ nhớ.

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.