Tóm tắt

Khi đồ thị frame time xuất hiện răng cưa, nhiều người vội kết luận thiết bị yếu, nhưng nguyên nhân có thể nằm ở nhịp present không đều chứ không phải thời gian dựng khung hình. Tài liệu Frame Pacing Sample của Microsoft mô tả khía cạnh điều phối present, còn tài liệu về DXGI swap chain bàn về cơ chế giảm độ trễ ở phía hàng đợi khung hình. Bài viết này giúp bạn đặt đúng câu hỏi trước khi đo: trò chơi nào, API nào, phiên bản nào và mốc đo nào đang được dùng.

Điểm chính

  1. Frame time đo thời gian dựng khung hình, còn nhịp present cho biết khung hình được đưa lên màn hình đều hay không; hai khái niệm này không thay thế nhau.
  2. Tài liệu Frame Pacing Sample mô tả cơ chế và điều kiện hỗ trợ, không phải cam kết hiệu năng trên mọi cấu hình. [1]
  3. Tài liệu DXGI swap chain giải thích vai trò của hàng đợi khung hình trong việc giảm độ trễ, cần đọc như kiến thức nền tảng. [2]
  4. Nội dung vendor mang tính mô tả tính năng và giới thiệu, không thay thế phép đo độc lập trên cấu hình của chính bạn.
  5. Trước khi kết luận, hãy ghi lại trò chơi, API đồ họa, phiên bản phần mềm và mốc đo để ai cũng có thể kiểm tra lại.

Frame time và mốc present khác nhau thế nào

Frame time ghi lại khoảng cách thời gian giữa các khung hình được hoàn thành, còn mốc present ghi lại thời điểm khung hình thực sự được chuyển cho hệ thống hiển thị. Một chuỗi frame time trông ổn vẫn có thể đi kèm nhịp present giật cục nếu khâu điều phối present bị dồn hoặc trễ. Vì vậy, chỉ nhìn một đồ thị duy nhất rồi kết luận toàn bộ đường ống hiển thị là cách đọc thiếu một nửa dữ kiện. [1]

Illustration: Frame time và mốc present khác nhau Decorative illustration for the section "Frame time và mốc present khác nhau"; visual only, carries no data.

Ngược lại, nhịp present đều cũng chưa chứng tỏ mọi thứ hoàn hảo, bởi nó không cho biết chất lượng hình ảnh hay độ ổn định của logic trò chơi. Cách tiếp cận đúng là xem hai lớp dữ kiện song song: lớp dựng khung hình và lớp trình diễn khung hình. Khi hai lớp này lệch nhau, hướng điều tra nên nhắm vào khâu điều phối và hàng đợi, thay vì vội vàng đổ lỗi cho phần cứng.

Tài liệu Frame Pacing Sample cho biết điều gì

Tài liệu mẫu về frame pacing của Microsoft trình bày cách tổ chức nhịp present sao cho đều hơn trong điều kiện được hỗ trợ, kèm theo bối cảnh mã nguồn minh họa để nhà phát triển tham khảo. Phạm vi của nó là mô tả cơ chế và điều kiện áp dụng, chứ không đưa ra con số hiệu năng phổ quát cho mọi trò chơi hay mọi thiết bị. Đọc tài liệu này như một bản đặc tả cách làm, không phải như một bảng xếp hạng hiệu năng. [1]

Điểm cần giữ lại sau khi đọc là danh sách điều kiện: nền tảng nào, API nào và mô hình present nào được minh họa. Nếu cấu hình của bạn nằm ngoài các điều kiện đó, ví dụ từ kết quả quan sát được không thể suy ngược rằng tài liệu sai. Mỗi môi trường có một đường ống hiển thị riêng, và tài liệu vendor chỉ bao phủ lát cắt mà nó tuyên bố.

Vai trò của DXGI swap chain trong câu chuyện độ trễ

Tài liệu về DXGI swap chain của Microsoft giải thích cách hàng đợi khung hình ảnh hưởng tới độ trễ từ lúc khung hình sẵn sàng đến lúc xuất hiện trên màn hình. Hiểu cơ chế này giúp bạn phân biệt đâu là độ trễ do xếp hàng chờ present, đâu là độ trễ do khâu dựng hình. Đây là kiến thức nền cần có trước khi diễn giải bất kỳ con số đo nào, bởi cùng một con số có thể mang ý nghĩa khác nhau tùy mô hình hàng đợi. [2]

Illustration: Vai trò của DXGI swap chain trong Decorative illustration for the section "Vai trò của DXGI swap chain trong"; visual only, carries no data.

Khi đọc, hãy chú ý các khái niệm như độ dài hàng đợi và thời điểm lấy mẫu, vì chúng quyết định phép đo của bạn đang phản ánh khâu nào. Nếu đổi mô hình hàng đợi mà không ghi lại, hai lần đo trước và sau không còn so sánh được với nhau. Thói quen ghi chép đầy đủ mô hình swap chain giúp các lần đo có thể đối chiếu, thay vì mỗi lần một kiểu rồi tranh cãi trên những con số không cùng hệ quy chiếu.

Phân biệt mô tả tính năng với kết quả đo thực tế

Một nhầm lẫn phổ biến là coi bài viết giới thiệu tính năng của nhà cung cấp như bằng chứng rằng cấu hình của mình sẽ đạt kết quả tương tự. Thực tế, nội dung vendor thường trình bày trong điều kiện thuận lợi và với mục đích giới thiệu, còn kết quả trên máy của bạn phụ thuộc vào trò chơi, trình điều khiển, API và hàng loạt thiết lập khác. Giữa hai lớp thông tin này luôn cần một lớp xác minh độc lập bằng phép đo của chính bạn.

Sau khi hoàn tất phần đối chiếu tài liệu, nếu bạn muốn chuyển sang không gian thể thao giải trí bằng tiếng Việt, có thể mở Cùng KLIVE theo dõi bình luận viên thể thao Việt Nam sau giờ làm việc. Trang này thuộc mảng nội dung thể thao trực tiếp, không phải nguồn xác minh cho các dữ kiện kỹ thuật được bàn trong bài.

Danh sách kiểm tra trước khi kết luận

Trước khi khẳng định nhịp present có vấn đề, hãy ghi lại bốn nhóm thông tin: tên trò chơi và phiên bản, API đồ họa đang dùng, mô hình present và hàng đợi swap chain, cùng mốc đo và công cụ đo. Sau đó lặp lại phép đo ít nhất hai lần trong cùng điều kiện để loại trừ nhiễu nhất thời. Chỉ khi kết quả lặp lại ổn định và hồ sơ cấu hình đã đầy đủ, kết luận của bạn mới đủ cơ sở để chia sẻ cho người khác kiểm chứng.

Nguồn tham khảo

  1. Microsoft — Frame Pacing Sample
  2. Microsoft Learn — Reduce latency with DXGI 1.3 swap chains

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

Vì sao frame time ổn mà hình vẫn giật?

Vì frame time chỉ phản ánh khâu dựng khung hình, còn cảm nhận giật có thể đến từ nhịp present không đều ở khâu trình diễn. Cần xem thêm mốc present và mô hình hàng đợi swap chain trước khi kết luận nguyên nhân.

Tài liệu Frame Pacing Sample có bảo đảm hiệu năng không?

Không. Tài liệu mô tả cơ chế và điều kiện hỗ trợ để nhà phát triển tham khảo, chứ không cam kết con số hiệu năng trên mọi cấu hình. Mọi kỳ vọng cần được kiểm chứng bằng phép đo độc lập trên chính cấu hình của bạn.

Cần ghi lại gì khi đo để người khác kiểm chứng được?

Hãy ghi tên trò chơi và phiên bản, API đồ họa, mô hình present và hàng đợi swap chain, công cụ đo cùng mốc đo. Lặp lại phép đo trong cùng điều kiện để loại trừ nhiễu trước khi công bố kết luận.

Nội dung vendor có thay thế đo đạc độc lập không?

Không. Nội dung vendor mang tính mô tả tính năng và giới thiệu, còn kết quả thực tế phụ thuộc vào cấu hình cụ thể. Luôn cần một lớp xác minh độc lập bằng số liệu đo của chính bạn.