Tin công nghệ › Phần cứng

Valve muốn loại bỏ tình trạng giật hình khi chơi game trên chip Arm

Valve đang phát triển giải pháp tích hợp bộ nhớ đệm FEX vào tính năng Pre-Caching của Steam. Mục đích là dịch trước mã lệnh x86 sang Arm ngay cả trước khi người dùng khởi động trò chơi, qua đó hạn chế tối đa hiện tượng giật hình.

PCWorld00:09 08/11/20267 phút đọc2 lượt đọc

Ảnh: PCWorld

Valve muốn loại bỏ tình trạng giật hình khi chơi game trên chip Arm trước khi bạn kịp bấm nút Chơi

Một cỗ máy chơi game mạnh mẽ đôi khi vẫn có thể gặp tình trạng giật hình tồi tệ. Giờ đây, hãy tưởng tượng bộ xử lý của bạn phải dịch các câu lệnh của trò chơi ngay trong lúc bạn đang trải nghiệm.

Đó là một trong những thách thức mà Valve phải đối mặt trong nỗ lực đầy thú vị nhằm mang các tựa game Windows lên các dòng chip Arm. Và hãng đang có một kế hoạch thông minh để giải quyết vấn đề này ngay cả trước khi bạn bấm nút Chơi.

Kỹ sư phần mềm của Valve, Pierre-Loup Griffais, chia sẻ trong một cuộc phỏng vấn với PCWorld rằng việc lưu đệm mã FEX đóng vai trò cốt lõi đối với sự ổn định của thời gian khung hình. Trong tương lai, tính năng này cũng sẽ được tích hợp với hệ thống Pre-Caching của Steam, giúp mã đã dịch sẵn sàng có mặt ngay cả trước lần chạy cục bộ đầu tiên của ứng dụng.

Đây là một thủ thuật khéo léo khi bạn đang cố gắng làm cho hàng nghìn trò chơi Windows chạy trên các bộ xử lý vốn không được thiết kế cho chúng. Điều này cũng đồng điệu với nỗ lực chung của ngành nhằm xóa sổ một trong những vấn đề gây bực bội nhất của game thủ PC.

Dịch game mà không bị vấp ngập

FEX là một mảnh ghép tối quan trọng trong nỗ lực đầy tham vọng của Valve nhằm giải thoát Steam khỏi các cỗ máy chơi game truyền thống. Hầu hết các tựa game Windows được xây dựng cho bộ xử lý x86 từ AMD và Intel. Chip Arm sử dụng một ngôn ngữ tập lệnh khác, vì vậy FEX sẽ dịch mã x86 thành các tập lệnh Arm khi game chạy.

May mắn thay, FEX không phải dịch mọi thứ.

Khi được cung cấp một môi trường thực thi ARM phù hợp, chẳng hạn như khi tích hợp với Proton ARM, FEX chỉ dịch mã CPU của ứng dụng, Griffais giải thích.

Proton, lớp tương thích Windows của Valve, có thể chuyển sang chế độ thực thi nguyên bản trên nền tảng Arm tại ranh giới API Win32. Hệ điều hành và trình điều khiển đồ họa cũng chạy nguyên bản, để lại nhiệm vụ cho FEX tập trung vào các tập lệnh CPU của riêng trò chơi.

Griffais cho biết chi phí hiệu năng từ việc dịch mã thường ở mức vừa phải, đặc biệt trong các tựa game bị nghẽn GPU. Tuy nhiên, một trò chơi chạy ở tốc độ 60 khung hình/giây chỉ có khoảng 16,7 mili-giây để hoàn thành mỗi khung hình. Nếu FEX gặp phải mã lạ và cần dịch nó giữa lúc chơi game, công việc bổ sung đó có thể ngốn hết quỹ thời gian của khung hình và gây ra hiện tượng khựng hình.

Hệ thống lưu đệm của FEX giúp né tránh vấn đề đó. Mã đã được dịch có thể được lưu lại và tái sử dụng thay vì phải biên dịch lại từ đầu.

Vào tháng 9, các nhà phát triển FEX đã giới thiệu bộ nhớ đệm JIT lưu trên đĩa liên tục, giúp bảo lưu mã đã dịch giữa các phiên chơi. Sau đó, Valve đã bật tính năng này trong Proton Experimental cho Arm, với việc Griffais chỉ ra những cải thiện tiềm năng đối với tỷ lệ khung hình thấp 1% (1% low), đặc biệt trong các lần chạy lại.

Những khoảng thấp đó giúp vạch trần các khung hình chậm mà con số FPS trung bình có thể che giấu. Chúng không nói lên tất cả về hiện tượng giật hình, nhưng rõ ràng trực quan hơn một con số khung hình trung bình hào nhoáng.

Tích hợp Pre-Caching theo kế hoạch của Steam sẽ đẩy ý tưởng này đi xa hơn. Thay vì chờ đợi một trò chơi chạy cục bộ và tự xây dựng bộ nhớ đệm, Valve muốn mã đã dịch được chuẩn bị sẵn sàng trước lần khởi chạy đầu tiên.

Hiện chưa có lịch trình công bố hay dữ liệu hiệu năng chi tiết nào cho việc tích hợp đó. Nhưng việc tránh được các hiện tượng khựng hình do dịch mã mà không đòi hỏi một bộ xử lý nhanh hơn? Đó thực sự là điều mà game thủ PC hoàn toàn ủng hộ.

Ngành công nghiệp PC đang vướng vấn đề giật hình

Valve không phải là công ty duy nhất cố gắng đưa công việc biên dịch tốn kém ra khỏi thời điểm diễn ra trò chơi.

Vào tháng 10, Microsoft và Nvidia đã tìm cách giải quyết hiện tượng giật hình do shader thông qua công nghệ Advanced Shader Delivery. Các tựa game được hỗ trợ có thể nhận các shader đã được biên dịch sẵn cho cấu hình phần cứng cụ thể của chúng thay vì biên dịch mọi thứ tại máy. Intel cũng đang phát triển Dịch vụ Phân phối Shader Đồ họa để giảm thiểu độ trễ liên quan đến việc biên dịch.

Mặt khác, FEX lại giải quyết một vấn đề khác biệt. Bộ nhớ đệm của nó lưu trữ mã CPU đã dịch, trong khi các hệ thống khác xử lý các shader GPU. Cả hai không thể thay thế cho nhau, và không có giải pháp nào trong số đó có thể kỳ diệu sửa chữa mọi nguyên nhân gây giật hình. Các trò chơi vẫn có thể bị khựng do quá trình truyền tải dữ liệu, nghẽn cổ chai CPU hoặc do tối ưu hóa kém.

Nhưng tư duy đằng sau chúng đều giống nhau: Hoàn thành trước công việc nặng nhọc trước khi nó làm gián đoạn trải nghiệm chơi game của bạn.

Steam đang có lợi thế lớn để hỗ trợ việc này. Valve đã vận hành sẵn nền tảng phân phối game cho người chơi và họ đã dành nhiều năm để xây dựng cơ sở hạ tầng lưu đệm shader trước cho SteamOS. Việc gộp mã CPU đã dịch vào hệ thống đó có thể giúp trải nghiệm chơi game trên Arm bớt đi cảm giác như một thử nghiệm tương thích phức tạp.

Đầy hứa hẹn nhưng không phải phép màu

Công nghệ lưu đệm liên tục của FEX vẫn đang trong quá trình phát triển. Bản phát hành đầu tiên hồi tháng 9 vẫn còn một số điểm thô ráp, bao gồm việc bộ nhớ đệm có thể tăng trưởng không kiểm soát và các mục cũ không phải lúc nào cũng được vô hiệu hóa khi tệp thay đổi.

Bản cập nhật FEX hồi tháng 10 đã giải quyết một số vấn đề đó, bổ sung giới hạn bộ nhớ đệm có thể tùy chỉnh với mặc định là 1GB, dọn dẹp các bộ nhớ đệm lỗi thời sau các bản cập nhật FEX, đồng thời cung cấp một vùng đệm bộ nhớ tùy chọn cho mã được truy cập thường xuyên.

Vẫn có những giới hạn lớn hơn. Griffais cảnh báo rằng GPU trên Arm có thể khác biệt đáng kể so với GPU máy tính để bàn mà các trò chơi PC hướng tới, qua đó có thể mang lại chi phí hiệu năng khi sử dụng các tính năng đồ họa mới hơn. Việc dịch mã CPU cũng có thể ảnh hưởng đến thời lượng pin và mức tiêu thụ điện năng, ngay cả khi tác động đến tốc độ khung hình chỉ ở mức vừa phải.

Và chúng ta vẫn chưa có các bài kiểm tra độc lập toàn diện cho thấy bộ nhớ đệm mới của FEX cải thiện trải nghiệm chơi game đến mức nào trên các dòng chip Arm khác nhau. Tích hợp Pre-Caching trên Steam do Valve lên kế hoạch cũng chưa từng được đem ra trình diễn công khai.

Dẫu vậy, Valve đã dành gần một thập kỷ để giúp FEX trưởng thành cho đến thời điểm nó có thể chạy các tựa game PC hiện đại với chi phí dịch mã tương đối nhỏ. Giờ đây, họ đang cố gắng làm cho chi phí đó trở nên ít gây chú ý hơn trong lúc chơi.

Mục tiêu không phải là để game thủ PC phải trầm trồ trước kỹ thuật dịch mã từ x86 sang Arm. Mà là để đảm bảo họ không bao giờ phải bận tâm đến nó.

Bài gốc (tiếng Anh): Valve wants Steam to squash Arm gaming stutter before you even hit play
Nguồn: PCWorld · Bản dịch tiếng Việt của VGSNews, chỉ để tham khảo.
FacebookTelegramX← Tin khác