WDDM là gì?
Windows Display Driver Model (WDDM) là kiến trúc driver đồ họa dành cho driver card video chạy các phiên bản Microsoft Windows bắt đầu với Windows Vista.
WDDM là sự thay thế cho model driver màn hình Windows 2000 và Windows XP trước đó là XDDM/XPDM, nhằm mục đích hỗ trợ đồ họa hiệu suất tốt hơn, chức năng đồ họa mới và độ ổn định. Driver màn hình trong Windows Vista và Windows 7 có thể tuân theo WDDM hoặc XDDM. Tuy nhiên, với việc loại bỏ XDDM khỏi Windows 8, WDDM đã trở thành lựa chọn duy nhất.
WDDM cung cấp chức năng cần thiết để kết xuất desktop và các ứng dụng bằng Desktop Window Manager, một trình quản lý cửa sổ tổng hợp chạy trên Direct3D. Nó cũng hỗ trợ các giao diện DXGI mới cần thiết để quản lý và tạo thiết bị cơ bản. WDDM yêu cầu ít nhất card video hỗ trợ Direct3D 9c và driver màn hình phải triển khai các interface driver thiết bị cho Direct3D 9Ex runtime để chạy các ứng dụng Direct3D kế thừa; nó có thể tùy chọn triển khai các runtime interface cho Direct3D 10 trở lên.
Các tính năng được WDDM kích hoạt
Driver WDDM cung cấp các khu vực chức năng mới, không có trong những model driver màn hình trước đó. Chúng bao gồm:
Bộ nhớ video ảo hóa
Trong bối cảnh đồ họa, ảo hóa có nghĩa là các tiến trình riêng lẻ (ở chế độ người dùng) không thể nhìn thấy bộ nhớ của các tiến trình liền kề ngay cả bằng cách chèn những lệnh giả mạo trong dòng lệnh. Driver WDDM cho phép ảo hóa bộ nhớ video và dữ liệu video được phân chia từ bộ nhớ video vào RAM hệ thống.
Trong trường hợp bộ nhớ video khả dụng không đủ để lưu trữ tất cả dữ liệu và kết cấu video, dữ liệu hiện không sử dụng sẽ được chuyển ra RAM hệ thống hoặc vào ổ đĩa. Khi cần dữ liệu được hoán đổi, nó sẽ được tìm nạp trở lại. Ảo hóa có thể được hỗ trợ trên các model driver trước đó (chẳng hạn như XP Driver Model) ở một mức độ nào đó, nhưng là trách nhiệm của driver, thay vì được xử lý ở cấp runtime.
Lập lịch
Runtime xử lý việc lập lịch cho các ngữ cảnh đồ họa đồng thời. Mỗi danh sách lệnh được GPU đưa vào một hàng đợi để thực thi và nó có thể được ưu tiên trong runtime nếu một tác vụ quan trọng hơn đến và nếu nó chưa bắt đầu thực hiện. Điều này khác với các luồng gốc trên CPU, nơi một tác vụ không thể bị gián đoạn và do đó có thể mất nhiều thời gian hơn mức cần thiết và làm cho máy tính có vẻ phản hồi kém hơn.
Một thuật toán lập lịch kết hợp giữa các luồng gốc và luồng nhẹ sẽ đạt được sự song song liền mạch. Điều quan trọng cần lưu ý rằng lập lịch không phải là một khái niệm mới mà trước đây nó là trách nhiệm của các nhà phát triển driver cá nhân. WDDM cố gắng thống nhất trải nghiệm giữa các nhà cung cấp khác nhau bằng cách kiểm soát việc thực thi những tác vụ GPU.
Chia sẻ tiến trình chéo giữa các Direct3D surface
Direct3D graphics surface là vùng bộ nhớ chứa thông tin về các lưới kết cấu được sử dụng để hiển thị cảnh 2D hoặc 3D. WDDM cho phép những Direct3D surface được chia sẻ trên các tiến trình. Do đó, một ứng dụng có thể kết hợp một lưới được tạo bởi một ứng dụng khác vào cảnh mà nó đang hiển thị. Việc chia sẻ kết cấu giữa các tiến trình trước WDDM là rất khó khăn, vì nó sẽ yêu cầu sao chép dữ liệu từ bộ nhớ video sang bộ nhớ hệ thống và sau đó quay lại bộ nhớ video cho thiết bị mới.
Nâng cao khả năng chịu lỗi
Windows Vista cảnh báo người dùng về việc khôi phục WDDM thành công
Nếu driver WDDM bị treo hoặc gặp lỗi, ngăn xếp đồ họa sẽ khởi động lại driver. Lỗi phần cứng đồ họa sẽ được chặn và nếu cần, driver sẽ được reset lại.
Driver Windows XP có thể tự do xử lý các lỗi phần cứng khi thấy phù hợp, bằng cách báo cáo nó cho người dùng hoặc cố gắng âm thầm khôi phục. Với driver WDDM, tất cả các lỗi phần cứng đều khiến driver được reset lại và người dùng sẽ được thông báo bằng một cửa sổ pop-up (điều này được thống nhất giữa các nhà cung cấp).
Các driver trước đây được triển khai hoàn toàn trong chế độ kernel, trong khi WDDM được thực hiện một phần ở chế độ user. Nếu khu vực chế độ user bị lỗi và không thể khôi phục, thì nhiều nhất nó sẽ khiến ứng dụng thoát đột ngột thay vì tạo ra lỗi màn hình xanh như trong các model driver trước đó.
WDDM cũng cho phép reset lại phần cứng đồ họa và người dùng cập nhật driver mà không yêu cầu khởi động lại.
Hạn chế
Model driver mới yêu cầu phần cứng đồ họa ít nhất phải có hỗ trợ Shader Model 2.0, vì function pipeline cố định hiện được chuyển sang các Shader 2.0. Tuy nhiên, theo Microsoft tính đến năm 2009, chỉ có khoảng 1 - 2% phần cứng chạy Windows Vista sử dụng XDDM, phần còn lại đã có khả năng dùng WDDM.
Nó cũng yêu cầu một số tính năng phần cứng khác; do đó một số phần cứng hỗ trợ SM 2.0 như Intel GMA 900 không đạt chứng chỉ WDDM.
Một trong những hạn chế của model driver WDDM phiên bản 1.0 là nó không hỗ trợ nhiều driver trong thiết lập nhiều adapter, đa màn hình. Nếu hệ thống nhiều màn hình có nhiều adapter đồ họa cấp nguồn cho các màn hình, thì cả hai adapter đều phải sử dụng cùng một driver WDDM. Nếu nhiều driver được sử dụng, Windows sẽ vô hiệu hóa một trong số chúng. WDDM 1.1 không có hạn chế này.
WDDM 1.0/1.1 không cho phép một số chế độ đã được driver xử lý trước đó như chế độ mở rộng (kéo dài desktop trên hai màn hình) mặc dù chế độ xem kép (Dual View) vẫn có sẵn.
Cần một model driver màn hình mới
Một trong những tình huống chính mà Windows Display Driver Model kích hoạt là Desktop Windows Manager. Vì desktop và cửa sổ ứng dụng do DWM quản lý là các ứng dụng Direct3D, nên số lượng cửa sổ đang mở ảnh hưởng trực tiếp đến dung lượng bộ nhớ video cần thiết. Vì không có giới hạn về số lượng cửa sổ đang mở, bộ nhớ video khả dụng có thể không đủ, cần phải ảo hóa.
Vì nội dung cửa sổ mà DWM soạn vào màn hình cuối cùng được tạo ra bởi các tiến trình khác nhau, nên việc chia sẻ surface giữa các tiến trình là cần thiết. Ngoài ra, vì có thể có các ứng dụng DirectX khác chạy cùng DWM trên desktop do DWM quản lý, nên chúng cần phải có khả năng truy cập GPU chung, được lên lịch trước.
Mặc dù điều này đúng với việc Microsoft triển khai một desktop kết hợp trong Windows Vista, mặt khác, một desktop tổng hợp về mặt lý thuyết không yêu cầu model driver màn hình mới hoạt động như mong đợi. Việc triển khai thành công desktop tổng hợp đã được thực hiện trước Windows Vista trên các nền tảng khác như Quartz, Compiz, WindowFX.
Cách tiếp cận mà Microsoft đã thử là cố gắng đảm bảo WDDM là một trải nghiệm thống nhất trên các GPU khác nhau từ nhiều nhà cung cấp bằng cách tiêu chuẩn hóa những tính năng và hiệu suất của chúng. Các tính năng phần mềm bị thiếu trong những model driver khác có thể trở nên không quan trọng bởi có sẵn các tiện ích mở rộng hoặc một model driver khác ít hạn chế hoặc đơn giản hơn đã được đưa ra.
WDDM 3.0
WDDM 3.0 là phiên bản mới nhất của Windows Display Driver Model. WDDM 3.0 sẽ bao gồm khả năng tương thích đồ họa của các chương trình Linux trên Windows 11.
Không thể phủ nhận có rất nhiều điều để mong đợi, mặc dù nhiều người đã chê bai Windows 11 chỉ là một gói theme mới cho Windows 10. Một thứ mà chúng ta biết là Windows 11 bao gồm WDDM 3.0 (Windows Display Driver Model) và điều này có nghĩa là WSL GUI, gọi tắt là WSLg - hay nói một cách khác là các ứng dụng Linux đồ họa trong Windows.
Hỗ trợ cho WLSg không hoàn toàn mới. Nó đã có sẵn cho những người thử nghiệm beta trên chương trình Windows Insider một thời gian ngắn, nhưng việc đưa WDDM 3.0 vào Windows 11 cho thấy sự xuất hiện của hai cải tiến quan trọng đối với kiến trúc đồ họa.
WDDM 3.0 xuất hiện trên Windows 10 Insider Preview "Cobalt" build 21301. WDDM 3.0 cải thiện kiến trúc đồ họa trong Windows Subsystem for Linux bổ sung:
- Driver chế độ user được biên dịch cho Linux trong gói WSL.
- Host driver được mount trong Linux
Khả năng chạy các ứng dụng GUI của Linux trong Windows 11 có thể không phải là thứ hấp dẫn mọi người, nhưng nó là một bước phát triển quan trọng đối với bất kỳ ai làm việc trên nhiều nền tảng.