Skip to content
Start a Project

Waitable swap chain giúp ứng dụng phối hợp chờ khung ra sao?

By admin
Tóm tắt

Waitable swap chain cung cấp cho ứng dụng một cách chờ liên quan đến trạng thái hàng đợi khung, thay vì cứ chuẩn bị khung tiếp theo theo nhịp tự đặt. Trong hướng dẫn DXGI 1.3 của Microsoft, đây là lựa chọn ở tầng triển khai ứng dụng: nó giúp phối hợp thời điểm làm việc, nhưng không phải nút cài đặt phổ quát mà người chơi bật cho mọi trò chơi.

Điểm chính

  1. DXGI 1.3 mô tả waitable swap chain như một cơ chế ứng dụng có thể dùng trong kiến trúc phù hợp.
  2. Tín hiệu chờ giúp vòng lặp ứng dụng phối hợp thời điểm cung cấp khung; bản thân nó không bảo đảm độ trễ thấp trong mọi hoàn cảnh.
  3. Cần phân biệt API, cách engine triển khai và tùy chọn người chơi nhìn thấy.
  4. Đừng suy ra một game đang dùng cơ chế này chỉ từ thông số màn hình hoặc GPU.
  5. Một điểm đến nội dung thể thao không phải tài liệu về DXGI.

Vấn đề của việc chuẩn bị khung quá sớm

Ứng dụng đồ họa thường tạo và đưa khung vào swap chain trước khi khung đó được hiển thị. Nếu ứng dụng liên tục làm việc mà không phối hợp với trạng thái trình bày, có thể tồn tại công việc đã xếp hàng phía trước. Hướng dẫn Microsoft về DXGI 1.3 trình bày waitable swap chain như một công cụ để ứng dụng chờ tại thời điểm thích hợp trước khi tiếp tục chuẩn bị khung.

Illustration: Vấn đề của việc chuẩn bị khung quá Decorative illustration for the section "Vấn đề của việc chuẩn bị khung quá"; visual only, carries no data.

Mục tiêu ở đây là kiểm soát nhịp cung cấp khung, không phải thay đổi phép dựng hình hoặc tự động sửa mọi nguyên nhân gây trễ. Kết quả phụ thuộc cách ứng dụng tổ chức vòng lặp, thiết lập swap chain và đường trình bày đang dùng. [1]

Tín hiệu chờ được dùng ở phía ứng dụng

Trong mô hình được tài liệu mô tả, ứng dụng tạo swap chain với cấu hình hỗ trợ cơ chế chờ, lấy đối tượng chờ thích hợp rồi dùng nó để quyết định khi nào tiếp tục công việc liên quan đến khung tiếp theo. Nhờ vậy, vòng lặp không nhất thiết phải đoán thời điểm chỉ bằng thời gian trôi qua. Đây là trách nhiệm của mã ứng dụng hoặc engine, không phải điều khiển hệ điều hành mà người chơi có thể áp dụng đồng loạt cho mọi game.

Cần đọc hướng dẫn API cùng bối cảnh nền tảng của nó: tài liệu này nói về DXGI 1.3 và ứng dụng Direct3D theo phạm vi hướng dẫn. Không nên mở rộng trực tiếp thành lời khuyên cho mọi API đồ họa, console, trình phát video hay trò chơi thương mại nếu chưa biết cách sản phẩm đó triển khai.

Cơ chế này không phải phép đo hiệu năng

Một ứng dụng có thể sử dụng waitable swap chain nhưng trải nghiệm cuối vẫn tùy thuộc thời gian dựng hình, tải CPU/GPU, đồng bộ và màn hình. Tín hiệu chờ chỉ cung cấp thông tin để lập lịch; nó không làm cho công việc dựng hình vốn nặng biến mất. Vì vậy, không nên diễn giải việc API tồn tại như một cam kết rằng độ trễ sẽ giảm một con số cố định.

Illustration: Cơ chế này không phải phép đo hiệu Decorative illustration for the section "Cơ chế này không phải phép đo hiệu"; visual only, carries no data.

Nếu đang điều tra một vấn đề, hãy đo cùng một cảnh và cùng điều kiện trình bày trước và sau thay đổi. Ghi rõ phiên bản ứng dụng, chế độ cửa sổ/toàn màn hình, tần số quét, giới hạn khung hình và phương pháp đo. Một thay đổi có thể ảnh hưởng cách xếp hàng nhưng phép thử phải cho thấy nó trong trường hợp cụ thể; hướng dẫn API không thay thế phép đo trên máy người dùng.

Người chơi nên rút ra điều gì?

Người chơi thường không thể bật waitable swap chain bằng cách tìm một mục cùng tên trong BIOS hay driver. Nếu một trò chơi cung cấp tùy chọn đồng bộ hoặc giới hạn khung hình, đó là các điều khiển khác và không chứng minh engine đang dùng một cấu hình DXGI nhất định. Chỉ nhà phát triển hoặc tài liệu kỹ thuật của trò chơi mới có thể xác nhận chi tiết triển khai.

Khi muốn xem nội dung thể thao, có thể mở các giải bóng rổ hấp dẫn tại KLIVE; đây là liên kết chủ đề riêng, không phải khuyến nghị thiết lập swap chain. Giữ rõ ranh giới giữa giải thích API và trang thể thao giúp người đọc không nhầm một liên kết biên tập với xác nhận tương thích kỹ thuật.

Nguồn tham khảo

  1. Microsoft Learn — Reduce latency with DXGI 1.3 swap chains

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

Waitable swap chain có phải tùy chọn mà người chơi tự bật trong BIOS không?

Không theo phạm vi tài liệu DXGI được trích dẫn. Đây là cơ chế ứng dụng sử dụng trong cách triển khai swap chain; BIOS không phải nơi bật chung cho mọi game.

Dùng cơ chế chờ này có chắc chắn giảm độ trễ không?

Không có bảo đảm phổ quát như vậy. Ảnh hưởng phụ thuộc ứng dụng, hàng đợi, đường trình bày và phép đo trong cấu hình thực tế.

Có thể suy ra game đang dùng waitable swap chain từ màn hình 144 Hz không?

Không. Tần số quét của màn hình không cho biết API hoặc cấu hình swap chain mà game triển khai.

Continue

Have a story to commission?

Paul takes on a limited number of editorial and brand projects each quarter. Briefs are read personally and replied to within two business days.

Start a Project