Hai cập nhật nhắm vào hai kiểu chờ khác nhau
DirectX Raytracing là giao diện lập trình đồ họa của Microsoft giúp trò chơi tính toán đường đi của tia sáng để tạo phản chiếu và bóng đổ chân thực, đồng thời quản lý dữ liệu cảnh vật cần thiết cho những hiệu ứng đó. Microsoft vừa công bố các cải tiến dò tia trong DirectX 12 Agility SDK 1.722 Preview, được xem là đợt mở rộng lớn nhất của DXR kể từ khi ra mắt năm 2018. Cùng lúc, Unreal Engine 5.8 đã hỗ trợ Advanced Shader Delivery (ASD), giải pháp tiền biên dịch shader nhằm giảm thời gian chờ khi khởi động game. Hai thay đổi này không phải một phép tăng tốc chung: DXR cải thiện cách GPU xử lý cảnh có dò tia, còn ASD chuyển công đoạn biên dịch shader khỏi thời điểm người chơi muốn vào game.
Sự phân biệt ấy quan trọng vì người chơi thường gộp mọi lần chờ hoặc khựng thành vấn đề hiệu năng GPU. Nhưng thời gian xây dựng cấu trúc dò tia, thời gian biên dịch shader khi khởi động và hiện tượng giật trong lúc chơi là những nút thắt khác nhau. Cập nhật SDK mở thêm công cụ cho nhà phát triển, chứ không tự biến mọi trò chơi hiện có thành game nhanh hơn. Lợi ích chỉ xuất hiện khi trò chơi tích hợp đúng công nghệ và phần cứng, trình điều khiển tương thích có thể khai thác nó.

DXR giảm chi phí cập nhật cảnh động
Trong cảnh 3D phức tạp, GPU cần cấu trúc tăng tốc dạng BVH để tìm đường tia qua hình học. Khi vật thể di chuyển, cảnh thay đổi hoặc dữ liệu mới được tải vào, việc xây dựng lại cấu trúc có thể ngốn tài nguyên. Clustered Geometry chia hình học thành các cụm nhỏ có thể tái sử dụng, mỗi cụm chứa tối đa 256 tam giác và đỉnh. PTLAS cho phép cập nhật những vùng cảnh thay đổi thay vì dựng lại toàn bộ cấu trúc cấp cao nhất; Microsoft cũng bổ sung cơ chế để GPU điều khiển quá trình xây dựng và cập nhật.
Kết quả thử nghiệm cho thấy tiềm năng rất lớn nhưng không phải lời hứa cho mọi game: trên Radeon RX 9070, dự án mẫu tăng từ 1,2 lên 79 FPS khi chuyển từ BLAS truyền thống sang Clustered Geometry, còn thời gian dựng cấu trúc giảm từ 788 xuống 3,11 mili giây. Đây là minh họa trong một cảnh thử nghiệm cụ thể, không phải mức tăng có thể áp dụng thẳng vào trò chơi thương mại. Dung lượng cấu trúc tăng tốc giảm gần 90%, nhưng nhu cầu bộ nhớ tạm lại tăng đáng kể. Vì vậy, cách tổ chức cảnh và đặc tính công việc vẫn quyết định DXR tiết kiệm được bao nhiêu.
Nếu được triển khai tốt, các cụm hình học có thể giúp nhà phát triển dùng mô hình chi tiết hơn cho cả raster hóa lẫn dò tia GPU, thay vì phải giảm độ phức tạp của hình học để kiểm soát chi phí. Điều đó có thể cải thiện phản chiếu và bóng đổ mà không buộc GPU xây dựng lại mọi dữ liệu mỗi khi cảnh biến đổi. Nhưng đây là cơ hội cho game tương lai, không phải bản vá tự động cho thư viện game hiện tại: nhà phát triển phải tích hợp các phương pháp mới, và driver tương thích vẫn là điều kiện cần.
Advanced Shader Delivery xử lý thời gian chờ lúc khởi động
ASD nhắm vào một trải nghiệm dễ nhận ra hơn: chờ game biên dịch shader trước khi chơi. Shader và các đối tượng trạng thái đường ống đồ họa cần được biên dịch phù hợp với GPU và driver; nếu việc này diễn ra trên máy người chơi khi mở game, màn hình chờ có thể kéo dài, còn biên dịch trong lúc chơi có thể gây khựng. Với Unreal Engine 5.8, nhà phát triển có thể dùng ASDTool tạo cơ sở dữ liệu shader tiền biên dịch từ bản dựng Windows. Dữ liệu được chuẩn bị cho phần cứng tương ứng và chuyển thành cơ sở dữ liệu shader tiền biên dịch để phân phối qua cửa hàng tương thích.
Theo mô tả về ASD, quá trình tiền biên dịch vốn có thể mất vài phút khi khởi động được rút xuống còn vài giây. Đây là thay đổi về thời điểm và nơi xử lý công việc, không phải thủ thuật giúp GPU dựng nhiều khung hình hơn. Nếu driver đổi, bộ nhớ đệm phù hợp có thể được làm mới; đồng thời Epic khuyến nghị vẫn bật PSO Precaching khi dùng ASD. Vì vậy, ASD có thể giảm màn hình chờ và hạn chế khựng do shader, nhưng không thay thế tối ưu hiệu năng trong chính cảnh chơi.
Mức độ hữu ích còn tùy trò chơi có tích hợp ASD hay không, cửa hàng có hỗ trợ phân phối dữ liệu hay không, và cơ sở dữ liệu có khớp với GPU cùng driver của người chơi hay không. Đây là lý do hỗ trợ Unreal Engine 5.8 có ý nghĩa với nhà phát triển, nhưng chưa đủ để bảo đảm mọi game dùng Unreal đều tải nhanh hơn. Tiền biên dịch chỉ rút ngắn chờ đợi khi quy trình phát hành và cấu hình máy được hỗ trợ đầy đủ.
Cải thiện đến tay người chơi với điều kiện nào?
Người chơi sẽ cảm nhận DXR rõ nhất trong game có cảnh động, nhiều hình học chi tiết và hiệu ứng dò tia được triển khai theo cách tận dụng các cấu trúc mới. Hiệu quả thực tế phụ thuộc khối lượng công việc, cách nhà phát triển tích hợp và kiến trúc GPU; kết quả dự án mẫu không thể đại diện cho mọi cấu hình. Các tính năng mới cũng cần driver tương thích. Dù Microsoft không đòi hỏi năng lực phần cứng hoàn toàn mới ngoài hỗ trợ dò tia hiện có, sự hỗ trợ cụ thể vẫn khác nhau giữa GPU và phiên bản trình điều khiển.
Với ASD, thước đo dễ thấy hơn là thời gian từ lúc mở game đến lúc vào chơi, cùng mức độ khựng do biên dịch shader. Nhưng lợi ích phụ thuộc nhà phát triển tạo dữ liệu tiền biên dịch, nền tảng phân phối hỗ trợ ASD và cấu hình của người dùng nằm trong phạm vi tương thích. Còn với DXR, câu hỏi không chỉ là GPU có hỗ trợ dò tia hay không, mà là game có dùng Clustered Geometry, PTLAS và cách cập nhật cấu trúc phù hợp hay chưa.
Bởi vậy, cập nhật SDK lần này đáng chú ý như một bước cải thiện công cụ phát triển hơn là lời hứa nâng tốc độ tức thì cho toàn bộ game PC. DXR có thể giúp giảm chi phí xử lý cảnh dò tia; ASD có thể biến những phút chờ biên dịch shader thành vài giây. Khi nào game thương mại áp dụng rộng rãi các phương pháp DXR mới vẫn chưa rõ. Người chơi chỉ thực sự thấy khác biệt khi trò chơi, driver, GPU và quy trình phân phối cùng phối hợp đúng.






