
vkd3d, là lớp dịch Direct3D 12 sang Vulkan của Wine
Dự án Wine được công bố vài ngày trước phát hành phiên bản mới của gói vkd3d 1.11, một phiên bản đã được giới thiệu những cải tiến trong việc sử dụng tiện ích mở rộng Vulkan, cũng như hỗ trợ các cải tiến, chức năng mới và hơn thế nữa.
Đối với những người chưa biết về Vkd3d, bạn nên biết rằng đây là gói cung cấp triển khai Direct3D 12 bằng cách sử dụng lệnh gọi tới API đồ họa Vulkan và bao gồm một số thư viện chính. Thư viện libvkd3d chứa các triển khai Direct3D 12, bao gồm nhiều chức năng như tính toán và đồ họa, hàng đợi lệnh và danh sách, mã định danh, cùng nhiều chức năng khác.
Thư viện libvkd3d-shader cũng được cung cấp cung cấp trình dịch cho mô hình đổ bóng 4 và 5 sang biểu diễn SPIR-V trung gian. Thư viện này hỗ trợ các trình đổ bóng đỉnh, pixel, tessellation, tính toán và hình học đơn giản, cũng như tuần tự hóa và giải tuần tự hóa chữ ký gốc.
Có gì mới trong vkd3d 1.11?
Vkd3d 1.11 giới thiệu một hỗ trợ ban đầu để biên dịch mã byte Direct3D kế thừa trong một biểu diễn trung gian của bộ đổ bóng SPIR-V, cũng như shỗ trợ ban đầu với trình biên dịch HLSL pđể biên soạn hồ sơ hiệu ứng.
Một cải tiến khác được trình bày trong phiên bản mới này là hỗ trợ thử nghiệm để biên dịch DXIL (Ngôn ngữ trung gian DirectX) trong biểu diễn SPIR-V, cung cấp các tùy chọn mới để phát triển ứng dụng Direct3D. Tính năng này yêu cầu biên dịch vkd3d với tùy chọn 'tiền xử lý'-DVKD3D_SHADER_UNSUPPORTED_DXIL' và được coi là thử nghiệm.
Ngoài ra việc sử dụng các nhóm và bộ mô tả đã được tối ưu hóa khi có tiện ích mở rộng VK_EXT_mutable_descriptor_type và VK_EXT_shader_viewport_index_layer, được cung cấp để cải thiện hiệu quả làm việc với nhóm mô tả và tăng tốc độ hiển thị các mảng tessellation và vertex shader.
c đã được thực hiệnHỗ trợ các màu viền tiêu chuẩn, chẳng hạn như đen và trắng và phương pháp đã được thực hiện GetResourceAllocationInfo1() của giao diện ID3D12Device4, cũng như hỗ trợ giao diện ID3D12Device7 và ID3D12Resource2.
Một số truy vấn tính năng mới được hỗ trợ, bao gồm D3D12_FEATURE_D3D12_OPTIONS6 a D3D12_FEATURE_D3D12_OPTIONS13.
Đã được thực hiện tùy chọn xây dựng mới: VKD3D_SHADER_COMPILE_OPTION_FEATURE có thể được sử dụng cho
chỉ định các tính năng có sẵn trong môi trường mục tiêu, trong khi VKD3D_SHADER_COMPILE_OPTION_FEATURE_INT64 cho biết khả năng tương thích với
các loại số nguyên 64-bit trong môi trường mục tiêu SPIR và VKD3D_SHADER_COMPILE_OPTION_FEATURE_FLOAT64 cho biết khả năng tương thích với
Các loại dấu phẩy động 64-bit trong môi trường mục tiêu SPIR-V.
Của những thay đổi khác nổi bật của phiên bản mới này:
- Hiện tại, các bản cập nhật bộ mô tả diễn ra không đồng bộ trên một luồng công việc nội bộ, cải thiện hiệu suất trong các ứng dụng cập nhật nhiều bộ mô tả trên mỗi khung.
- Các tính năng mới đã được thêm vào cho loại mục tiêu SPIR-V, bao gồm hỗ trợ cho các chế độ xem truy cập không theo thứ tự nhất quán trên toàn cầu, các rào cản chế độ xem truy cập không theo thứ tự của nhóm luồng, v.v.
- Giao diện ID3D12Device7 được hỗ trợ.
- Phiên bản bắt buộc tối thiểu của Vulkan-Headers cho phiên bản này là phiên bản
1.3.228. - Giao diện ID3D12Resource2 được hỗ trợ.
- Một số truy vấn tính năng mới được hỗ trợ:
– D3D12_FEATURE_D3D12_OPTIONS6
– D3D12_FEATURE_D3D12_OPTIONS7
– D3D12_FEATURE_D3D12_OPTIONS8
– D3D12_FEATURE_D3D12_OPTIONS9
– D3D12_FEATURE_D3D12_OPTIONS10
– D3D12_FEATURE_D3D12_OPTIONS11
– D3D12_FEATURE_D3D12_OPTIONS12
– D3D12_FEATURE_D3D12_OPTIONS13 - Các hàm nội tại acos(), asin(), atan() và atan2() đã được hỗ trợ.
- Ánh xạ đăng ký rõ ràng bằng từ khóa 'register()'
- Chuyển đổi từ kiểu số nguyên sang dấu phẩy động trong cấu hình mô hình đổ bóng 1-3.
Dành cho những ai muốn tìm hiểu thêm về nó, bạn nên biết rằng mã dự án được phân phối theo LGPL 2.1 và bạn có thể tham khảo chi tiết về bản phát hành mới này Trong liên kết sau đây.
Làm cách nào để cài đặt vkd3d 1.11?
vì quan tâm đến việc có thể cài đặt vkd3d Họ phải biết rằng họ phải biên dịch mã nguồn, vì vậy chúng tôi phải lấy nó trước, điều quan trọng cần đề cập là Vkd3d phụ thuộc vào SPIRV-Headers và Vulkan-Headers (>= 1.3.228).
Việc biên dịch khá đơn giản và để thực hiện điều này, chúng ta phải mở một terminal trong đó chúng ta sẽ gõ lệnh sau:
git clone https://gitlab.winehq.org/wine/vkd3d.git
Chúng tôi tiến hành nhập thư mục nơi nó được tải xuống với:
cd vkd3d
Và chúng ta tiến hành biên dịch bằng cách thực hiện các lệnh sau:
./configure make make install
Si bạn muốn biết thêm về phần tổng hợp của vkd3d bạn có thể kiểm tra chi tiết trong liên kết này.