DirectStorage sẽ giúp game load nhanh hơn, game chạy mượt hơn, và các hãng làm game có thể tạo ra những thế giới trong game rộng hơn, phức tạp hơn.
Khi bạn chạy một game lên, game sẽ cần những dữ liệu như các họa tiết, bản đồ, các mô hình 3D của nhân vật, và cả âm thanh để tạo nên trải nghiệm chơi hoàn chỉnh. Những dữ liệu này được lưu trữ trên ổ HDD hay SSD trong máy tính của bạn. Game sẽ yêu cầu lấy những dữ liệu này thông qua một loạt các API.
Khi các hàm API này được gọi lên, chúng sẽ lấy dữ liệu từ ổ lưu trữ, đặt chúng vào RAM trước khi chuyển cho GPU để render thành hình ảnh mà bạn thấy. Tuy nhiên, dữ liệu chứa trên ổ đĩa đã được nén để tốn ít dung lượng, nên GPU không thể dùng trực tiếp mà dữ liệu phải đi qua CPU giải nén trước rồi GPU mới xài được.
Tóm lại, quy trình lấy dữ liệu của GPU sẽ như sau:
Trước khi đến với DirectStorage, bạn hãy xem game hiện tại hoạt động ra sao
Khi bạn chạy một game lên, game sẽ cần những dữ liệu như các họa tiết, bản đồ, các mô hình 3D của nhân vật, và cả âm thanh để tạo nên trải nghiệm chơi hoàn chỉnh. Những dữ liệu này được lưu trữ trên ổ HDD hay SSD trong máy tính của bạn. Game sẽ yêu cầu lấy những dữ liệu này thông qua một loạt các API.
Khi các hàm API này được gọi lên, chúng sẽ lấy dữ liệu từ ổ lưu trữ, đặt chúng vào RAM trước khi chuyển cho GPU để render thành hình ảnh mà bạn thấy. Tuy nhiên, dữ liệu chứa trên ổ đĩa đã được nén để tốn ít dung lượng, nên GPU không thể dùng trực tiếp mà dữ liệu phải đi qua CPU giải nén trước rồi GPU mới xài được.
Tóm lại, quy trình lấy dữ liệu của GPU sẽ như sau:
Giải pháp này có 2 hạn chế:
- Việc giải nén dữ liệu tốn nhiều thời gian. Dù bạn cảm giác là nó không nhiều nhưng thực ra CPU đang phải làm nhiều việc lắm, và việc này chỉ nhằm mục đích tiết kiệm dung lượng lưu trữ chứ không phục vụ trực tiếp cho trải nghiệm chơi game. Với các CPU không đủ mạnh thì thời gian load game sẽ tăng lên, bạn phải ngồi chờ lâu hơn. Ngoài ra, khi GPU yêu cầu nhiều dữ liệu mà CPU không giải nén kịp thì sẽ có hiện tượng thắt cổ chai, dẫn đến rớt số khung hình (FPS) trong game.
- Các API truy cập bộ nhớ hiện nay không thể tận dụng đầy đủ phần cứng hiện đại (ví dụ, NVMe SSD). Các API này đã có từ thời của ổ cứng, vốn chỉ có thể chuyển lượng dữ liệu nhỏ, trong khi SSD xịn ngày nay có thể stream nhiều gigabyte mỗi giây
Những thứ này sẽ làm giảm trải nghiệm chơi game của người dùng, khiến bạn cảm thấy mọi thứ load lâu hơn, và có thể bị rớt số FPS khiến game bị giật. Với những phần cứng không phải cao cấp, trải nghiệm càng bị ảnh hưởng nhiều hơn.
Giải pháp DirectStorage giúp ích như thế nào?
DirectStorage là một bộ hàm API mới dùng cho việc truy xuất dữ liệu. Khi nhà phát triển game dùng DirectStorage, quy trình lấy data sẽ như sau:
Quảng cáo
CPU bây giờ đã không còn xuất hiện trong quá trình giải nén dữ liệu, thay vào đó GPU sẽ làm chuyện giải nén. Vì không còn thông qua CPU nữa nên giảm độ trễ, cả ở khâu giải nén lẫn khâu di chuyển dữ liệu qua lại giữa các thành phần trong hệ thống. Cái này giống như việc nước ta đang cải cách hành chính, sử dụng cơ chế 1 cửa 😁, mọi thứ sẽ chạy nhanh hơn nhiều.
Thứ hai, DirectStorage tận dụng đầy đủ tốc độ cao của ổ SSD NVMe, và NVMe cũng là phần cứng bắt buộc phải có để dùng được DirectStorage. DirectStorage sẽ đọc một lượng rất lớn dữ liệu từ ổ SSD này ở mức nhiều GB/s, không phải chỉ MB/s như hàm API cũ.
Kết quả là GPU sẽ nhận một lượng lớn dữ liệu để bắt đầu quá trình giải nén, không cần phải đợi CPU đưa qua một cách chậm chạp như xưa. Ngoài ra, DirectStorage còn sử dụng các kĩ thuật giải nén dữ liệu mới dành cho GPU nên tốc độ giải nén sẽ nhanh hơn, duy trì được trong thời gian dài hơn so với việc dùng CPU để thực hiện tác vụ này.
Và bởi vì CPU giờ đã được “rảnh việc”, game có thể tận dụng CPU để làm những việc khác như xử lý âm thanh, chuẩn bị dữ liệu, điều phối hoạt động của các hệ thống mà game cần…
Tóm lại, việc chơi game sẽ được cải thiện ra sao?
Thứ nhất, tốc độ load game sẽ nhanh hơn đáng kể so với hiện nay, bạn không phải ngồi chờ game load lên ở khúc đầu nữa.
Quảng cáo
Thứ hai, CPU giờ được rảnh rỗi để xử lý tác vụ khác, nên tổng thể hiệu năng sẽ được cải thiện.
Và nhờ có DirectStorage, game giờ có thể sử dụng các bản đồ rộng hơn, thế giới rộng hơn, chi tiết hơn.
DirectStorage đã có sẵn trên Xbox Series X mới, và Microsoft đang đem nó lên Windows 10, giờ chỉ cần các nhà phát triển game sử dụng nó là được. Bản thân Microsoft cũng đang khuyến khích các hãng làm game tích hợp DirectStorage trong những tựa game mới. Hi vọng khi mà nhiều nhà sản xuất game sử dụng API này thì mọi thứ sẽ thay đổi.
Tham khảo: MakeUseOf, Microsoft