Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Windows

Khác Biệt Giữa DirectX 11 Và DirectX 12 Là Gì?

DirectX là một tập hợp các API (giao diện lập trình ứng dụng) được phần mềm dùng để hiển thị nội dung đa phương tiện và giao tiếp với phần cứng đồ họa. Thành phần API chính của DirectX là Direct3D, xử lý giao tiếp giữa phần mềm và phần cứng đồ họa. Vì tất cả phần cứng đều khác nhau, việc sử dụng một thư viện chuẩn các hàm và lệnh để giao tiếp với card đồ họa sẽ đẩy nhanh phát triển game. Điều này được gọi là trừu tượng hóa phần cứng (hardware abstraction), và đó là nhiệm vụ chính của API.

Hãy tưởng tượng về ô tô: Nếu bạn lái được một chiếc xe, bạn có thể lái hầu như tất cả các chiếc khác. Pedal ga và phanh ở cùng vị trí, vô lăng quay cùng chiều, cửa mở ra ngoài. Có thể có vài khác biệt nhỏ về tính năng phi then chốt như radio, nhưng tổng thể bạn biết mình sẽ gặp gì. DirectX và Direct3D giống như vậy, cho phép lập trình viên giao diện với nhiều loại phần cứng khác nhau dùng cùng một bộ công cụ. Và vì hầu hết nhà phát triển game dùng thư viện chuẩn của Direct3D, bất kỳ thay đổi nào của API cũng có thể ảnh hưởng đến cả game thủ và lập trình viên.

DirectX 12 Có Gì Mới?

Khác Biệt Giữa DirectX 11 Và DirectX 12 Là Gì?

Mỗi bản cập nhật lớn của DirectX và Direct3D mang lại tính năng và phát triển mới. Tuy nhiên, Direct3D 12 mang lại những thay đổi đặc biệt quan trọng. Thực tế, nó có thể mở ra kỷ nguyên mới của các API đồ họa cấp thấp (low-level) sẽ thay đổi cách game được phát triển.

Trừu Tượng Hóa Phần Cứng Cấp Thấp Hơn

DirectX 12 cho phép lập trình viên tiếp cận gần hơn với "kim loại" (metal) của phần cứng đồ họa người dùng, cung cấp truy cập vào các tính năng trước đây không khả dụng. Phơi bày phần cứng cấp thấp hơn có nghĩa là các lập trình viên giỏi có thể viết mã hiệu quả hơn, thực thi nhanh hơn. Cụ thể, họ có thể tối ưu hóa với hiệu suất đa luồng nhanh hơn và sử dụng CPU hiệu quả hơn. Điều này có thể cho phép các tối ưu hóa cấp thấp tương tự như những gì chúng ta thấy trong game console, nơi game được tinh chỉnh cho phần cứng trung cấp cực kỳ cụ thể, đạt hiệu suất mà không có tối ưu hóa siêu cụ thể thì không thể.

Trước đây, DirectX 11 chỉ cung cấp mức trừu tượng hóa phần cứng khá cao, làm đơn giản hóa quá trình lập trình. Thực tế, đó chính là ý tưởng đằng sau sức mạnh của API phần cứng. Nhưng nó cũng đồng nghĩa với việc cơ hội tinh chỉnh mã đối với các tính năng phần cứng cụ thể ít hơn. Blog dành cho lập trình viên của Microsoft cung cấp những phân tích sâu sắc về cách chính xác DirectX 12 thực hiện điều này.

Cải Thiện Hiệu Suất Đa Nhân

Khác Biệt Giữa DirectX 11 Và DirectX 12 Là Gì?

Trong vài năm qua, game thủ đã chấp nhận rằng CPU đa nhân không hữu ích cho game lắm. Game lại phụ thuộc vào hiệu suất đơn luồng nhanh. Điều này xảy ra một phần vì DirectX 11 không cho phép nhiều song song hóa. Nhiều luồng CPU có thể gửi lệnh vẽ (draw commands) cùng lúc. Tuy nhiên, chúng vẫn được xử lý trong hàng đợi, lần lượt một. DirectX 12 gỡ bỏ giới hạn đó, cho phép CPU đa nhân gửi lệnh đồng thời đến GPU, mở ra cánh cửa cho hiệu suất lớn hơn trên bộ xử lý đa nhân.

Giảm Chi Phí Gọi Vẽ (Draw Call Overhead)

Dưới DirectX 11, một phần đáng kể sức mạnh CPU được dành cho việc diễn giải các lệnh API thay vì thực thi mã game. DirectX 12 giảm chi phí API, giải phóng tài nguyên tính toán cho chạy mã game. Điều này có nghĩa là game bị giới hạn bởi CPU có thể thấy hiệu suất tăng, vì sức mạnh CPU được giải phóng để xử lý mã game. Hầu hết game ngày nay không bị giới hạn bởi CPU, nhưng có thể game mới hơn sẽ đẩy xa hơn ranh giới này.

Explicit Multiadapter (Đa Bộ Điều Hợp Tường Minh)

Khác Biệt Giữa DirectX 11 Và DirectX 12 Là Gì?

DirectX 12 có khả năng kết hợp nhiều GPU (còn gọi là "display adapters") thành một đơn vị logic duy nhất. Tính năng này, gọi là Explicit Multiadapter, cho phép nhiều GPU được điều khiển bởi phần mềm như một GPU đơn lẻ. Ví dụ, với DirectX 12, GPU tích hợp trên máy của bạn giờ có thể phối hợp cùng GPU rời, đóng góp sức mạnh xử lý của riêng nó. Hỗ trợ API tốt hơn cũng có thể mang lại độ tin cậy và hiệu quả cao hơn trong thiết lập SLI/CrossFire đa GPU. Trong kiểm tra của Microsoft, dùng đồ họa tích hợp kết hợp với đồ họa rời cung cấp lợi thế nhỏ nhưng dễ nhận thấy trong benchmark.

DirectX 12 Quan Trọng Như Thế Nào Đối Với Game Thủ?

Giống như nhiều cải tiến tăng dần, game thủ sẽ không thấy sự khác biệt trời đất giữa DirectX 11 và DirectX 12. Các tính năng mới không mang lại tùy chọn render mới khiến người dùng say sưa. Cũng sẽ không thấy nhảy 100 FPS giữa hai chuẩn. Nhưng những bước tiến về hiệu suất này cuối cùng sẽ dẫn đến hiệu suất tốt hơn trên phần cứng kém mạnh hơn, cải thiện sức mạnh PC của bạn mà không cần nâng cấp phần cứng.