Phát hành ổn định Wine 5.0

Sau một năm phát triển và 28 phiên bản thử nghiệm trình bày bản phát hành ổn định của việc triển khai mở API Win32 - Rượu vang 5.0, bao gồm hơn 7400 thay đổi. Những thành tựu chính của phiên bản mới bao gồm việc cung cấp các mô-đun Wine tích hợp ở định dạng PE, hỗ trợ cấu hình nhiều màn hình, triển khai API âm thanh XAudio2 mới và hỗ trợ API đồ họa Vulkan 1.1.

trong rượu vang đã xác nhận hoạt động đầy đủ của các chương trình 4869 (một năm trước 4737) cho Windows, các chương trình 4136 (một năm trước 4045) khác hoạt động hoàn hảo với các cài đặt bổ sung và các tệp DLL bên ngoài. 3635 chương trình có vấn đề nhỏ về hiệu suất nhưng không ảnh hưởng đến việc sử dụng các chức năng ứng dụng cơ bản.

Chìa khóa đổi mới Rượu 5.0:

  • Mô-đun ở định dạng PE
    • Với trình biên dịch MinGW, hầu hết các mô-đun Wine hiện được xây dựng ở định dạng tệp thực thi PE (Portable Executable, được sử dụng trên Windows) thay vì ELF. Việc sử dụng PE giải quyết các vấn đề liên quan đến việc hỗ trợ các sơ đồ bảo vệ bản sao khác nhau nhằm xác minh danh tính của các mô-đun hệ thống trên đĩa và trong bộ nhớ;
    • Các tệp thực thi PE hiện được sao chép vào thư mục ~/.wine ($WINEPREFIX) thay vì sử dụng các tệp DLL giả, khiến nội dung này giống với các bản cài đặt Windows thực hơn, nhưng lại tốn thêm dung lượng ổ đĩa;
    • Các mô-đun được chuyển đổi sang định dạng PE có thể sử dụng tiêu chuẩn wchar Hàm và hằng số C có Unicode (ví dụ: L"abc");
    • Thời gian chạy Wine C đã bổ sung hỗ trợ liên kết với các tệp nhị phân được tích hợp trong MinGW, được sử dụng theo mặc định thay vì thời gian chạy MinGW khi xây dựng các tệp DLL;
  • Hệ thống con đồ họa
    • Đã thêm hỗ trợ để làm việc với nhiều màn hình và bộ điều hợp đồ họa, bao gồm khả năng thay đổi cài đặt linh hoạt;
    • Trình điều khiển cho API đồ họa Vulkan đã được cập nhật để tuân thủ thông số kỹ thuật Vulkan 1.1.126;
    • Thư viện WindowsCodecs cung cấp khả năng chuyển đổi các định dạng raster bổ sung, bao gồm các định dạng có bảng được lập chỉ mục;
  • Direct3D
    • Khi chạy các ứng dụng Direct3D toàn màn hình, lệnh gọi trình bảo vệ màn hình sẽ bị chặn;
    • DXGI (Cơ sở hạ tầng đồ họa DirectX) đã bổ sung hỗ trợ thông báo cho ứng dụng khi cửa sổ của nó được thu nhỏ, cho phép ứng dụng giảm hiệu suất của các hoạt động sử dụng nhiều tài nguyên khi thu nhỏ cửa sổ;
    • Đối với các ứng dụng sử dụng DXGI, giờ đây có thể chuyển đổi giữa chế độ toàn màn hình và chế độ cửa sổ bằng cách sử dụng tổ hợp Alt+Enter;
    • Khả năng triển khai Direct3D 12 đã được mở rộng, ví dụ: hiện có hỗ trợ chuyển đổi giữa chế độ toàn màn hình và cửa sổ, thay đổi chế độ màn hình, chia tỷ lệ đầu ra và quản lý khoảng thời gian thay thế bộ đệm kết xuất (khoảng thời gian hoán đổi);
    • Cải thiện khả năng xử lý các tình huống đường biên khác nhau, chẳng hạn như sử dụng các giá trị đầu vào ngoài phạm vi để kiểm tra độ trong suốt và độ sâu, hiển thị với kết cấu và bộ đệm được phản ánh cũng như việc sử dụng các đối tượng DirectDraw không chính xác thớt, tạo thiết bị Direct3 cho các cửa sổ không chính xác, sử dụng các vùng hiển thị có giá trị tham số tối thiểu bằng giá trị tối đa, v.v.
    • Direct3D 8 và 9 cung cấp khả năng theo dõi chính xác hơn"bẩn thỉu» các khu vực có kết cấu được tải;
    • Kích thước của không gian địa chỉ cần thiết khi tải họa tiết 3D được nén bằng phương pháp S3TC đã giảm xuống (thay vì tải toàn bộ, họa tiết được tải theo từng khối).
    • Giao diện được triển khai ID3D11Đa luồng để bảo vệ các phần quan trọng trong các ứng dụng đa luồng;
    • Nhiều cải tiến và sửa lỗi khác nhau liên quan đến tính toán ánh sáng đã được thực hiện cho các ứng dụng DirectDraw cũ hơn;
    • Đã triển khai các lệnh gọi bổ sung để lấy thông tin về trình đổ bóng trong API ShaderPhản ánh;
    • wined3d hiện hỗ trợ sự cay đắng Dựa trên CPU để xử lý tài nguyên nén;
    • Cơ sở dữ liệu về card đồ họa được nhận dạng trong Direct3D đã được mở rộng;
    • Đã thêm khóa đăng ký mới HKEY_CURRENT_USER\Software\Wine\Direct3D: “shader_backend” (phụ trợ để làm việc với trình đổ bóng: “glsl” cho GLSL, “arb” cho đỉnh/đoạn ARB và “none” để tắt hỗ trợ trình đổ bóng), “strict_shader_math” ( 0x1 - bật, 0x0 - tắt chuyển đổi trình đổ bóng Direct3D). Không dùng khóa "UseGLSL" (nên sử dụng "shader_backend");
  • D3DX
    • Hỗ trợ cơ chế nén kết cấu 3D S3TC (Nén kết cấu S3) đã được triển khai;
    • Đã thêm cách triển khai chính xác các thao tác như điền kết cấu và các bề mặt không thể ánh xạ được;
    • Nhiều cải tiến và sửa lỗi khác nhau đã được thực hiện đối với khung tạo hiệu ứng hình ảnh;
  • Hạt nhân (Giao diện hạt nhân Windows)
    • Hầu hết các chức năng được sử dụng trong Kernel32 đã được chuyển sang
      KernelBase, theo sau những thay đổi trong kiến ​​trúc Windows;

    • Khả năng trộn các tệp DLL 32 và 64 bit trong các thư mục được sử dụng để tải. Đảm bảo rằng các thư viện không khớp với độ sâu bit hiện tại sẽ bị bỏ qua (32/64), trong trường hợp xa hơn dọc theo đường dẫn, có thể tìm thấy thư viện chính xác cho độ sâu bit hiện tại;
    • Đối với trình điều khiển thiết bị, việc mô phỏng các đối tượng kernel đã được cải thiện;
    • Đã triển khai các đối tượng đồng bộ hóa hoạt động ở cấp hạt nhân, chẳng hạn như khóa xoay, đột biến nhanh và các biến được gắn vào tài nguyên;
    • Đảm bảo rằng các ứng dụng được thông báo chính xác về trạng thái pin;
  • Giao diện người dùng và tích hợp máy tính để bàn
    • Các cửa sổ thu nhỏ hiện được hiển thị bằng thanh tiêu đề thay vì biểu tượng kiểu Windows 3.1;
    • Đã thêm kiểu nút mới TáchNút (nút có danh sách hành động thả xuống) và Liên kết lệnh (các liên kết trong hộp thoại dùng để chuyển sang giai đoạn tiếp theo);
    • Các liên kết tượng trưng đã được tạo cho các thư mục 'Tải xuống' và 'Mẫu', trỏ đến các thư mục tương ứng trên hệ thống Unix;
  • Thiết bị đầu vào
    • Khi khởi động, trình điều khiển thiết bị Plug & Play cần thiết sẽ được cài đặt và tải;
    • Cải thiện hỗ trợ cho bộ điều khiển trò chơi, bao gồm cần điều khiển nhỏ (công tắc mũ), vô lăng, bàn đạp ga và phanh.
    • Hỗ trợ cho API cần điều khiển Linux cũ được sử dụng trong nhân Linux trước phiên bản 2.2 đã bị ngừng;
  • NET.
    • Công cụ Mono đã được cập nhật để phát hành 4.9.4 và hiện bao gồm các phần của khung Windows Present Foundation (WPF);
    • Đã thêm khả năng cài đặt các tiện ích bổ sung với Mono và Gecko trong một thư mục chung, đặt các tệp trong hệ thống phân cấp /usr/share/wine thay vì sao chép chúng sang tiền tố mới;
  • Tính năng kết nối mạng
    • Công cụ trình duyệt Wine Gecko, được sử dụng trong thư viện MSHTML, đã được cập nhật để phát hành 2.47.1. Hỗ trợ cho các API HTML mới đã được triển khai;
    • MSHTML hiện hỗ trợ các phần tử SVG;
    • Đã thêm nhiều hàm VBScript mới (ví dụ: các trình xử lý lỗi và ngoại lệ, các hàm Giờ, Ngày, Tháng, Chuỗi, LBound, RegExp.Replace, РScriptTypeInfo_* và ScriptTypeComp_Bind*, v.v.);
    • Cung cấp khả năng duy trì trạng thái mã trong VBScript và JScript (kiên trì tập lệnh);
    • Đã thêm triển khai ban đầu của dịch vụ HTTP (WinHTTP) và API liên quan (HTTPAPI) cho các ứng dụng máy khách và máy chủ gửi và nhận yêu cầu bằng giao thức HTTP;
    • Đã triển khai khả năng nhận cài đặt proxy HTTP qua DHCP;
    • Đã thêm hỗ trợ chuyển hướng yêu cầu xác thực thông qua dịch vụ Microsoft Passport;
  • Mật mã học
    • Đã triển khai hỗ trợ cho các khóa mật mã đường cong elip (ECC) khi sử dụng GnuTLS;
    • Đã thêm khả năng nhập khóa và chứng chỉ từ các tệp ở định dạng PFX;
    • Đã thêm hỗ trợ cho sơ đồ tạo khóa dựa trên mật khẩu PBKDF2;
  • Văn bản và phông chữ
    • Việc triển khai API DirectWrite đã bổ sung hỗ trợ cho các tính năng OpenType liên quan đến định vị hình tượng, được bật theo mặc định cho kiểu Latin, bao gồm cả kerning;
    • Cải thiện tính bảo mật khi xử lý dữ liệu phông chữ bằng cách kiểm tra tính chính xác của các bảng dữ liệu khác nhau trước khi sử dụng chúng;
    • Giao diện DirectWrite đã được đưa vào phù hợp với SDK mới nhất;
  • Âm thanh và video
    • Việc triển khai API âm thanh mới đã được đề xuất XAudio2, được xây dựng trên cơ sở dự án âm thanh. Sử dụng FAudio trong Wine cho phép bạn đạt được chất lượng âm thanh cao hơn trong trò chơi và sử dụng các tính năng như trộn âm lượng và hiệu ứng âm thanh nâng cao;
    • Một số lượng lớn lệnh gọi mới đã được thêm vào quá trình triển khai khung Media Foundation, bao gồm hỗ trợ cho hàng đợi không đồng bộ tùy chỉnh và tích hợp sẵn, API Source Reader, Phiên truyền thông, v.v.
    • Bộ lọc quay video đã được chuyển sang sử dụng API v4l2 thay vì API v4l1, điều này đã mở rộng phạm vi máy ảnh được hỗ trợ;
    • Bộ giải mã AVI, MPEG-I và WAVE tích hợp đã bị loại bỏ, thay vào đó là hệ thống GStreamer hoặc QuickTime hiện được sử dụng;
    • Đã thêm một tập hợp con API cấu hình VMR7;
    • Đã thêm hỗ trợ điều chỉnh âm lượng của từng kênh cho trình điều khiển âm thanh;
  • Quốc tế hóa
    • Bảng Unicode được cập nhật lên phiên bản 12.1.0;
    • Đã triển khai hỗ trợ chuẩn hóa Unicode;
    • Cung cấp cài đặt tự động vùng địa lý (HKEY_CURRENT_USER\Control Panel\International\Geo) dựa trên ngôn ngữ hiện tại;
  • RPC/COM
    • Đã thêm hỗ trợ cho các cấu trúc và mảng phức tạp vào typelib;
    • Đã thêm triển khai ban đầu của thư viện thời gian chạy Windows Script;
    • Đã thêm triển khai ban đầu của thư viện ADO (Đối tượng dữ liệu Microsoft ActiveX);
  • Trình cài đặt
    • Hỗ trợ phân phối các bản vá (Tệp vá) đã được triển khai cho trình cài đặt MSI;
    • Tiện ích WUSA (Trình cài đặt độc lập Windows Update) hiện có khả năng cài đặt các bản cập nhật ở định dạng .MSU;
  • nền tảng ARM
    • Đối với kiến ​​trúc ARM64, hỗ trợ giải nén ngăn xếp đã được thêm vào ntdll. Đã thêm hỗ trợ để kết nối các thư viện libunwind bên ngoài;
    • Đối với kiến ​​trúc ARM64, hỗ trợ proxy liền mạch đã được triển khai cho giao diện đối tượng;
  • Công cụ phát triển / Winelib
    • Đã thêm khả năng sử dụng trình gỡ lỗi từ Visual Studio để gỡ lỗi từ xa các ứng dụng chạy trong Wine;
    • Thư viện DBGENG (Công cụ gỡ lỗi) đã được triển khai một phần;
    • Các tệp nhị phân được biên dịch cho Windows không còn phụ thuộc vào libwine nữa, cho phép chúng chạy trên Windows mà không cần phụ thuộc thêm;
    • Đã thêm tùy chọn '--sysroot' vào Trình biên dịch tài nguyên và Trình biên dịch IDL để xác định đường dẫn cho các tệp tiêu đề;
    • Đã thêm tùy chọn ‘—target’, ‘—wine-objdir’, ‘—wine-objdir’ vào winegcc
      ‘—winebuild’ và ‘-fuse-ld’, giúp đơn giản hóa việc thiết lập môi trường để biên dịch chéo;

  • Ứng dụng nhúng
    • Đã triển khai tiện ích CHCP để định cấu hình mã hóa bảng điều khiển;
    • Tiện ích MSIDB để thao tác cơ sở dữ liệu ở định dạng MSI đã được triển khai;
  • Tối ưu hóa hiệu suất
    • Nhiều chức năng định giờ khác nhau đã được di chuyển để sử dụng các chức năng hẹn giờ của hệ thống hiệu suất cao, giảm chi phí trong vòng lặp kết xuất của nhiều trò chơi;
    • Đã thêm khả năng sử dụng Ext4 trong FS chế độ làm việc không phân biệt chữ hoa chữ thường;
    • Hiệu suất xử lý một số lượng lớn phần tử trong hộp thoại hiển thị danh sách hoạt động ở chế độ LBS_NODATA đã được tối ưu hóa;
    • Đã thêm triển khai nhanh hơn các khóa SRW (Slim Reader/Writer) cho Linux, được dịch sang Futex;
  • Phụ thuộc bên ngoài
    • Để lắp ráp các mô-đun ở định dạng PE, trình biên dịch chéo MinGW-w64 được sử dụng;
    • Việc triển khai XAudio2 yêu cầu thư viện FAudio;
    • Để theo dõi các thay đổi của tệp trên hệ thống BSD
      thư viện Inotify được sử dụng;

    • Để xử lý các ngoại lệ trên nền tảng ARM64, cần có thư viện Unwind;
    • Thay vì Video4Linux1, thư viện Video4Linux2 hiện được yêu cầu.

Nguồn: opennet.ru

Thêm một lời nhận xét