Microsoft đã phát hành mã nguồn của lớp D3D9On12 được sử dụng để dịch các lệnh Direct3D 9 sang Direct3D 12

Tin tốt đã được phát hành từ Microsoft và nó là gần đây làm cho nó được biết đến qua một bài đăng trên blog mở mã nguồn của lớp D3D9On12 với việc triển khai thiết bị DDI (Device Driver Interface), thiết bị này sẽ chuyển các lệnh Direct3D 9 (D3D9) thành các lệnh Direct3D 12 (D3D12).

Động thái này của Microsoft giờ đây sẽ giúp các nhà phát triển chuyển đổi từ DirectX11 sang DirectX12 cho các trò chơi của họ dễ dàng hơn bao giờ hết. Lớp dịch DX12 về cơ bản là một thư viện trợ giúp để dịch các khái niệm và lệnh đồ họa từ miền kiểu DX11 sang miền kiểu DX12.

Đã lâu rồi kể từ lần cuối chúng tôi đề cập đến lớp ánh xạ D3D9On12. Là một bản cập nhật nhanh, nó ánh xạ các lệnh D3D9 sang D3D12 hoạt động như Giao diện trình điều khiển thiết bị D3D9 (DDI). Có lớp ánh xạ này cho phép các ứng dụng D3D9 cũ hơn chạy trên các hệ thống hiện đại có thể không có trình điều khiển D3D9. Kể từ bài đăng trên blog cuối cùng, chúng tôi đã thêm hỗ trợ cho các tiện ích mở rộng Alpha to Coverage, sửa một số lỗi và làm sạch cơ sở mã cho mã nguồn mở.

Đây chắc chắn là một tin tốt và đó là các dự án khác nhau hoạt động với lớp hiện có thể được hưởng lợi, vì như vậy, nó cho phép các ứng dụng kế thừa hoạt động trong môi trường chỉ hỗ trợ D3D12, tức là ví dụ điều này có thể hữu ích để triển khai D3D9 dựa trên các dự án vkd3d và VKD3D-Protonvì chúng cung cấp triển khai Direct3D 12 cho Linux hoạt động bằng cách dịch các lệnh gọi D3D12 sang API đồ họa Vulkan.

D3D9On12 là một lớp ánh xạ các lệnh đồ họa từ D3D9 đến D3D12. D3D9On12 không phải là một triển khai API D3D9, mà là một triển khai chế độ người dùng D3D9 DDI (Giao diện trình điều khiển thiết bị). Điều đó có nghĩa là nó không phải là một nhị phân được gọi là d3d9.dll, mà nó được gọi là d3d9on12.dll.

Khi một ứng dụng tạo thiết bị D3D9, họ có thể chọn làm thiết bị D3D9On12, thay vì thiết bị D3D9 gốc. Khi điều này xảy ra, d3d9on12.dll được tải bởi thời gian chạy D3D9 và được khởi tạo. Khi ứng dụng gọi các lệnh kết xuất, D3D9 sẽ xác thực các lệnh đó và sau đó chuyển đổi các lệnh đó thành DDI D3D9 và gửi đến D3D9On12, giống như bất kỳ trình điều khiển D3D9 nào.

D3D9On12 sẽ nhận các lệnh này và biến chúng thành các lệnh gọi API D3D12, được xác thực thêm bởi thời gian chạy D3D12, tùy chọn bao gồm lớp gỡ lỗi D3D12, sau đó được chuyển đổi thành D3D12 DDI và được gửi đến trình điều khiển D3D12.

Nó cũng được đề cập rằng dự án dựa trên mã của một hệ thống con tương tự có trong Windows 10. Cần lưu ý rằng việc xuất bản mã D3D9On12 sẽ cung cấp một cơ hội để các đại diện cộng đồng tham gia sửa lỗi và thêm tối ưu hóa, và nó cũng có thể là một ví dụ để nghiên cứu việc triển khai các trình điều khiển D3D9 DDI và một khuôn khổ để tạo các lớp như vậy cho các bản dịch của các API đồ họa khác nhau trong D3D12.

Tại sao mã nguồn mở?
D3D9On12 đã là một phần của Windows 10 trong vài năm nay và trong thời gian đó, nó đã phát triển về độ ổn định và khả năng sử dụng. Đặt nó thành mã nguồn mở:

Cho phép cộng đồng đóng góp thêm các bản sửa lỗi hoặc cải tiến hiệu suất.
phục vụ như một ví dụ khác về cách sử dụng D3D12TranslationLayer
cung cấp cho những người quan tâm xem triển khai DDI D3D9 trông như thế nào

Đồng thời, một gói DXBC Signer đã được phát hành cho phép khả năng ký các tệp DXBC được tạo tùy ý bởi bộ công cụ của bên thứ ba. D3D9On12 sử dụng gói này để ký các DXBC được tạo bằng cách chuyển đổi các trình tạo bóng sang một mô hình mới.

Cuối cùng nếu bạn muốn biết thêm về nó, bạn có thể kiểm tra thông tin chi tiết về ấn phẩm mà Microsoft đã thực hiện trên blog của mình Trong liên kết sau đây.


Nội dung bài viết tuân thủ các nguyên tắc của chúng tôi về đạo đức biên tập. Để báo lỗi, hãy nhấp vào đây.

Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.