Chu kỳ báo cáo đầu vào nằm ở đâu trong đường đi tới khung hình?

By admin
Tóm tắt

Từ lúc chuột, tay cầm hoặc bàn phím gửi trạng thái tới lúc thay đổi xuất hiện trên màn hình là một chuỗi nhiều bước. Chu kỳ báo cáo chỉ mô tả một phần đầu chuỗi; thời gian ứng dụng lấy mẫu, xử lý và chờ khung hình cũng cần được xem riêng.

Điểm chính

  1. Thiết bị gửi trạng thái, ứng dụng lấy mẫu và xử lý, rồi GPU cùng hệ thống hiển thị tạo ra những giai đoạn khác nhau.
  2. Nhịp báo cáo đầu vào không đồng nhất với thời gian khung hình hoặc độ trễ toàn hệ thống.
  3. DXGI mô tả giới hạn số khung hình được xếp hàng trong một ngữ cảnh API cụ thể, không đưa ra kết quả cho mọi game.
  4. Tài liệu NVIDIA Reflex trình bày phối hợp pipeline và marker độ trễ ở góc nhìn nhà phát triển, không chứng minh mọi game đều tích hợp. [1] [2]

Lần theo đường đi theo từng giai đoạn

Một thao tác vật lý trước hết được thiết bị ghi nhận và truyền tới máy tính. Sau đó ứng dụng phải đọc trạng thái ở thời điểm thích hợp, xử lý logic, cập nhật cảnh và gửi công việc dựng hình. GPU thực hiện các lệnh, khung hình có thể chờ trong hàng đợi, rồi hệ thống hiển thị đưa hình ảnh ra màn hình. Mỗi giai đoạn có thể có thời gian chờ; tổng trải nghiệm không thể suy ra từ một thông số riêng.

Mô hình này giúp đặt đúng câu hỏi: thiết bị gửi báo cáo thường xuyên đến đâu, ứng dụng lấy trạng thái khi nào, CPU và GPU mất bao lâu, và có bao nhiêu khung đang chờ? Các giai đoạn có thể chồng lấp, nên không phải lúc nào cũng cộng đơn giản các con số lý tưởng. Đo thực tế cần định nghĩa điểm bắt đầu và kết thúc, cùng công cụ có thể quan sát được.

Nhịp báo cáo không phải toàn bộ độ trễ

Chu kỳ báo cáo mô tả tần suất thiết bị gửi cập nhật theo một cách diễn giải nhất định. Nó không cho biết ứng dụng đã lấy mẫu dữ liệu ở thời điểm nào hay thao tác đã đi qua logic game nhanh ra sao. Nếu ứng dụng chỉ đọc đầu vào tại một thời điểm cụ thể trong vòng lặp, một báo cáo vừa đến sau lần đọc có thể phải đợi lượt kế tiếp. Đây là lý do cần phân biệt tốc độ thiết bị với tiến trình xử lý phía sau.

Illustration: Nhịp báo cáo không phải toàn bộ độ Decorative illustration for the section "Nhịp báo cáo không phải toàn bộ độ"; visual only, carries no data.

Cũng không nên suy rằng con số polling-rate cao tự động làm mọi thao tác cảm thấy nhanh hơn theo cùng tỷ lệ. Kết quả còn phụ thuộc thiết bị, phần mềm, hệ điều hành, tải CPU/GPU và cách đo. Assignment này không gán một giá trị polling-rate cụ thể và cũng không dùng tài liệu API để đưa ra lời hứa hiệu năng cho một thiết bị.

Hàng đợi khung hình ở phía hiển thị

Nếu các khung hình được chuẩn bị trước, thao tác mới có thể phải chờ phía sau công việc đã xếp hàng. Tài liệu Microsoft về IDXGIDevice1::SetMaximumFrameLatency mô tả API DXGI đặt giới hạn số khung hình có thể xếp hàng, với mục tiêu liên quan tới độ trễ và khả năng phản hồi đầu vào. Đây là mô tả hành vi cấp API; nó không chứng minh một cài đặt cụ thể cải thiện mọi trò chơi hay phần cứng.

NVIDIA Reflex SDK giới thiệu cách phối hợp CPU/GPU trong pipeline cùng các marker phục vụ theo dõi độ trễ. Tài liệu dành cho nhà phát triển và phạm vi tích hợp; sự hiện diện của tính năng phụ thuộc ứng dụng. Vì thế, hãy tránh suy diễn rằng mọi game dùng Reflex hoặc mọi hệ thống có cùng cách xử lý hàng đợi. Đọc đúng nguồn cho phép giải thích khái niệm, không thay cho phép đo của chính ứng dụng.

Cách đọc phép đo có trách nhiệm

Khi đánh giá một thay đổi, ghi rõ thiết bị đầu vào, trò chơi, giới hạn khung hình, chế độ đồng bộ, tải nền và công cụ đo. Nếu công cụ chỉ đo thời gian khung hình, đừng gọi đó là độ trễ từ thao tác tới photon. So sánh hai cấu hình trong cùng cảnh và điều kiện, lặp lại để phát hiện dao động, rồi mô tả chính xác đại lượng đã quan sát.

Illustration: Cách đọc phép đo có trách Decorative illustration for the section "Cách đọc phép đo có trách"; visual only, carries no data.

Người tìm trải nghiệm thể thao có thể truy cập Trải nghiệm nội dung thể thao trực tiếp tại KLIVE. Liên kết là điểm đến theo chỉ định; bài giải thích chuỗi đầu vào không khẳng định KLIVE hỗ trợ thiết bị, chuẩn đo hay tính năng độ trễ nào.

Nguồn tham khảo

  1. NVIDIA — Reflex SDK
  2. Microsoft Learn — IDXGIDevice1::SetMaximumFrameLatency

Câu hỏi thường gặp

Chu kỳ báo cáo của chuột có bằng độ trễ đầu vào không?

Không. Đó chỉ là một phần của chuỗi; ứng dụng lấy mẫu, xử lý, dựng hình và hiển thị còn góp phần vào thời gian tổng thể.

Giảm hàng đợi khung hình luôn cải thiện trải nghiệm?

Không thể khẳng định cho mọi ứng dụng. Tài liệu DXGI mô tả API và mục đích, còn kết quả cụ thể cần đo trong cấu hình thực tế.

Tài liệu Reflex có nghĩa mọi game đều dùng Reflex không?

Không. Tài liệu giới thiệu SDK và phương pháp tích hợp; hỗ trợ phụ thuộc từng ứng dụng.

Có thể dùng thời gian khung hình làm độ trễ toàn hệ thống không?

Không nên đánh đồng. Thời gian khung hình là một đại lượng trong pipeline; cần công cụ và định nghĩa đo phù hợp để kết luận về độ trễ đầu-cuối.