Cụ thể hơn, vào tháng 9 tới, Microsoft sẽ phát hành bộ công cụ AgilitySDK. Theo tuyên bố của Microsoft, với AgilitySDK, thời gian kể từ khi tải xuống trò chơi đến lúc có thể bắt đầu chơi có thể giảm tới 85%.
Tiêu chuẩn hóa shader
Shader, những dòng code hướng dẫn để hiển thị pixel khi chúng di chuyển qua quy trình xử lý được tối ưu hóa cho cấu hình phần cứng cụ thể của anh em. Một trò chơi vận hành trên máy Xbox hay PS5 “biết” cụ thể cấu hình bên trong của máy console đó, vì cả triệu máy đều có chung một cấu hình. Đối với game PC, shader phải được tối ưu hóa cho từng cấu hình cụ thể, bao gồm cả trò chơi, GPU và cả phiên bản driver của GPU.
Đây là một trong những tính năng Microsoft đang thêm vào ROG Xbox Ally và Ally X. Vì cấu hình của những chiếc máy PC handheld này là cố định, shader có thể được tải xuống như một phần của trò chơi. Microsoft gọi điều này là “cung cấp shader nâng cao”.
Để làm được điều này, Microsoft đang làm một việc, thu thập dữ liệu shader từ một trò chơi ở định dạng chuẩn hóa, được gọi là State Object Database – SODB. Microsoft cho biết họ đã hợp tác với các đối tác phần cứng quan trọng để tách trình biên dịch shader khỏi trình điều khiển đồ họa và kết hợp dữ liệu trò chơi trong SODB với trình biên dịch trên đám mây để tạo thành Precompiled Shader Database – PSDB.
Cơ sở dữ liệu này sẽ được tải xuống cùng với trò chơi, do đó trò chơi về cơ bản có thể “tra cứu” các shader cần thiết trong cơ sở dữ liệu và khởi chạy chúng ngay lập tức.
“Bây giờ, khi một trò chơi chạy lần đầu tiên, nó sẽ thấy tất cả các shader cần thiết đã có sẵn trong bộ nhớ đệm của Windows và có thể bỏ qua bước biên dịch đó trên thiết bị chơi game”, Microsoft nói. “Nếu một thiết bị nhận được bản cập nhật driver, chúng tôi sẽ phát hiện được điều đó, và tự động cập nhật bộ nhớ đệm shader.”
Thế shader là gì?
Hiểu một cách cơ bản, shader là những khối code lập trình. Trong thế giới đồ họa 3D, mỗi shader là một phần mềm nho nhỏ thiết kế phục vụ một nhiệm vụ rất cụ thể. Nó có thể dùng thay đổi hình dáng hoặc vị trí một đa giác, lên bố cục texture nền phủ lên một vật thể, hay tính toán những giá trị để phục vụ các shader khác.
Quảng cáo
Khi những API đồ họa như Direct3D hay OpenGL bắt đầu hỗ trợ shader, thời điểm game đồ họa 3D bắt đầu phổ biến, những shader này rất thô sơ và đơn giản. Lấy ví dụ những pixel shader ra mắt trên PC hơn 20 năm về trước, chỉ có đủ không gian viết 4 lệnh phủ texture lên vật thể, và 8 lệnh tính toán. Còn bây giờ, với những phiên bản API mới, shader không hề có giới hạn trong tổng số lệnh được viết trong những dòng code lập trình.
Mỗi API lại dùng một khái niệm riêng khi mô tả các shader, nhưng có thể quy chúng vào 7 dạng chính. Bốn dạng đầu, vertex, geometry, hull và domain đảm nhiệm việc xử lý đa giác, tạo ra những bộ khung sườn thế giới ảo, trước khi áp texture hay màu sắc lên.
Kế đến, phủ màu cho thế giới ảo 3D là pixel shader, và gần đây là ray shader. Chúng làm những phép tính phức tạp để xác định cách ánh sáng được mô phỏng trong game, hay texture vật thể và ánh sáng khi kết hợp với nhau sẽ tạo hiệu ứng ra sao. Cuối cùng là compute shader, một dạng code tính toán logic đa dụng, không phụ thuộc cố định vào nhu cầu xử lý đồ họa.
Vì sao giờ mở game phải ngồi đợi biên dịch shader?
Quảng cáo
Với một trò chơi đồ họa 3D hiện đại, mọi thứ khác hoàn toàn. Di chuyển trong thế giới mở rộng lớn và đầy chi tiết, hay chuyển sang một màn chơi khác, hay chiến đấu với một đối thủ mới toanh đều bắt trò chơi tải những shader mới từ ổ cứng, rồi compile chúng để CPU và GPU biết phải làm gì tiếp theo. Hiện tại, một trò chơi cần tới hàng nghìn shader khác nhau.
Game trên máy console như PS5 và Xbox Series X, do cấu hình không có chút thay đổi gì giữa hàng chục triệu máy, nên máy đều thực hiện quá trình shader compilation trước cả khi anh em bắt đầu chơi. Console làm được điều này vì cả chục triệu máy bán ra thị trường đều giống nhau chằn chặn, không có một chút sai khác gì về cấu hình phần cứng bên trong cả. Các hãng làm game cho console chỉ việc tối ưu trò chơi cho một dạng CPU và GPU duy nhất, driver vận hành chúng cũng không thay đổi và nâng cấp quá thường xuyên.
Điều này trên PC là hoàn toàn bất khả thi.
Không một dàn PC nào có linh kiện giống nhau 100%, từ CPU, chipset, GPU cho đến cả RAM và ổ cứng. Đấy còn chưa kể tới khác biệt về hệ điều hành nữa. Hoàn toàn không thể compile sẵn shader cho một game PC, vì chạy ổn trên cấu hình này sẽ gặp lỗi trên cấu hình khác.
Nguồn: Tinhte.vn