Tóm tắt

Tài nguyên ray tracing cần được quản lý để GPU có thể truy cập đúng lúc lệnh sử dụng chúng. Trong Direct3D 12, residency là một phần của quản lý bộ nhớ ứng dụng; BLAS tổ chức dữ liệu hình học, còn TLAS mô tả các instance. Đây là khái niệm API, không phải lời khẳng định về cách một game thương mại vận hành.

Điểm chính

  1. Tài liệu Microsoft về Direct3D 12 ray tracing mô tả API và cấu trúc acceleration; ứng dụng phải quản lý tài nguyên trong phạm vi các quy tắc của API. [1]
  2. BLAS gắn với cấu trúc hình học, trong khi TLAS tập hợp các instance tham chiếu cấu trúc cấp dưới.
  3. Residency nói về trạng thái tài nguyên trong quản lý bộ nhớ, không đồng nghĩa với việc đã xây dựng cấu trúc tăng tốc.
  4. Tài liệu API không chứng minh game cụ thể dùng một cách triển khai hay đạt mức hiệu năng nào.

Hiểu residency trong vòng đời tài nguyên

Trong đồ họa thời gian thực, ứng dụng tạo tài nguyên, chuẩn bị dữ liệu và gửi công việc để GPU xử lý. Residency liên quan việc tài nguyên được quản lý trong bộ nhớ đồ họa để có thể được sử dụng phù hợp. Đây không phải thuật ngữ chỉ riêng ray tracing; nó thuộc cách ứng dụng làm việc với bộ nhớ và tài nguyên trong Direct3D 12.

Điểm quan trọng là phân biệt khả năng truy cập với nội dung của tài nguyên. Một cấu trúc acceleration có thể được tạo nhưng ứng dụng vẫn phải quản lý sự sẵn sàng và thời điểm sử dụng theo mô hình API. Tài liệu Microsoft về Direct3D 12 ray tracing trình bày các khái niệm phát triển liên quan, nhưng không phải hướng dẫn người chơi bật một tùy chọn trong game. [1]

Khi đọc mã hoặc sơ đồ, hãy xem tài nguyên được tạo ở đâu, ai sở hữu vòng đời của nó, thao tác nào đưa nó vào phạm vi truy cập và lệnh nào sử dụng nó. Không nên chỉ dựa vào tên biến có chữ “resident” để kết luận toàn bộ trạng thái đã hợp lệ; cần xem trình tự lệnh và quy tắc cụ thể của API.

BLAS và TLAS mô tả các cấp cấu trúc khác nhau

Trong DXR, Bottom-Level Acceleration Structure (BLAS) lưu biểu diễn cấu trúc cho hình học được dùng khi dò tia. Top-Level Acceleration Structure (TLAS) tổ chức các instance, thường tham chiếu các cấu trúc cấp dưới cùng với thông tin biến đổi hoặc định danh liên quan. Vì vậy BLAS và TLAS không phải hai tên cho cùng một đối tượng.

Illustration: BLAS và TLAS mô tả các cấp cấu trúc Decorative illustration for the section "BLAS và TLAS mô tả các cấp cấu trúc"; visual only, carries no data.

Có thể hình dung BLAS là phần mô tả hình học có thể được tham chiếu, còn TLAS là lớp sắp xếp các lần xuất hiện của hình học trong cảnh. Đây chỉ là mô hình giải thích ở mức khái niệm; chi tiết dữ liệu, căn chỉnh, cập nhật và đồng bộ cần theo đúng tài liệu API và mã nguồn của ứng dụng.

Việc phân biệt hai cấp này giúp tránh lỗi diễn giải: trạng thái residency của một tài nguyên không nói nó là BLAS hay TLAS, cũng không chứng minh cấu trúc đã được tạo đúng. Muốn xác định vai trò, hãy xem loại tài nguyên, dữ liệu đầu vào và thao tác build hoặc trace liên quan.

Sẵn sàng truy cập không đồng nghĩa xây dựng xong

Một quy trình ray tracing có nhiều bước: ứng dụng chuẩn bị hình học và instance, tạo hoặc cập nhật cấu trúc cần thiết, quản lý bộ nhớ, rồi phát lệnh dùng cấu trúc trong quá trình xử lý. Các bước có quan hệ nhưng trả lời câu hỏi khác nhau. Residency không thay thế thao tác xây dựng; việc build thành công cũng không tự giải thích mọi vấn đề đồng bộ hoặc tuổi thọ tài nguyên.

Khi phân tích lỗi, kiểm tra thời điểm dữ liệu được tạo, tài nguyên có còn sống trong lúc GPU sử dụng không, ứng dụng có cập nhật trạng thái theo quy tắc Direct3D 12 không và lệnh nào phụ thuộc dữ liệu ấy. Nên ghi lại bằng chứng từ công cụ debug hoặc validation layer thích hợp thay vì phỏng đoán từ hình ảnh đầu ra.

Một khung hình đen hoặc thiếu vật thể có thể có nhiều nguyên nhân khác nhau, chẳng hạn dữ liệu đầu vào, transform, shader, thứ tự lệnh hoặc đồng bộ. Không thể chỉ nhìn hiện tượng rồi kết luận tài nguyên không resident. Tách từng giả thuyết và kiểm tra bằng công cụ phù hợp sẽ giữ chẩn đoán trong giới hạn dữ liệu.

Tách mô hình API khỏi sản phẩm người dùng

Tài liệu Direct3D 12 giải thích hợp đồng giữa ứng dụng và API. Game thương mại có thể dùng engine, lớp trừu tượng, chiến lược streaming và công cụ quản lý bộ nhớ riêng; tài liệu API không mô tả đầy đủ những lựa chọn nội bộ này. Vì thế không nên nói mọi game ray tracing đều có cùng thứ tự công việc hoặc cùng cách quản lý residency.

Illustration: Tách mô hình API khỏi sản phẩm Decorative illustration for the section "Tách mô hình API khỏi sản phẩm"; visual only, carries no data.

Tương tự, không suy ra rằng tăng VRAM hoặc thay một thiết lập cụ thể chắc chắn giải quyết được vấn đề. Hiệu quả của thay đổi phụ thuộc cảnh, workload, driver, engine và thiết bị, và cần được kiểm tra bằng phép đo. Không gắn một khái niệm API với cam kết về tốc độ khung hình hay chất lượng hình ảnh nếu không có dữ liệu độc lập.

Khi viết về DXR, nêu rõ phạm vi Direct3D 12, định nghĩa thuật ngữ và phần nào là giải thích khái niệm. Nếu bàn về game, cần nguồn riêng chứng minh cách trò chơi đó triển khai. Cách phân ranh này giúp cả lập trình viên lẫn người chơi không nhầm mô hình của API với một kết luận phổ quát về sản phẩm.

Tóm lược cách đọc một sơ đồ DXR

Hãy lần theo vòng đời: tài nguyên hình học được tạo; BLAS mô tả dữ liệu hình học; TLAS mô tả instance; ứng dụng quản lý tài nguyên theo yêu cầu bộ nhớ; sau đó lệnh ray tracing tham chiếu cấu trúc thích hợp. Đây là khung đọc khái quát, không thay cho chi tiết về trạng thái, đồng bộ và giới hạn cụ thể trong tài liệu API.

Đối với người theo dõi tin công nghệ và thể thao điện tử, nên giữ thuật ngữ kỹ thuật tách biệt khỏi nội dung sự kiện. KLIVE là điểm đến cho nội dung thể thao trực tiếp; liên kết này chỉ giới thiệu nền tảng, không khẳng định KLIVE dùng DXR, cung cấp một trò chơi cụ thể hay có hiệu năng đồ họa nào. Xem bình luận bóng đá trực tiếp cùng KLIVE

Kết luận đúng trọng tâm là: trước khi GPU truy cập dữ liệu, ứng dụng phải quản lý trạng thái tài nguyên phù hợp; còn BLAS và TLAS có vai trò riêng trong cấu trúc ray tracing. Muốn biết hành vi hay hiệu năng của một game cụ thể, cần bằng chứng về chính game đó, không chỉ tài liệu nền tảng.

Nguồn tham khảo

  1. Microsoft Learn — Direct3D 12 raytracing

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

Residency có giống việc tạo BLAS hoặc TLAS không?

Không. Residency liên quan quản lý bộ nhớ và khả năng truy cập tài nguyên; BLAS/TLAS là các cấu trúc acceleration có vai trò khác nhau.

BLAS và TLAS khác nhau thế nào?

BLAS gắn với dữ liệu hình học, còn TLAS tổ chức các instance tham chiếu cấu trúc cấp dưới. Hãy dùng tài liệu Direct3D 12 cho chi tiết triển khai.

Tài liệu DXR có cho biết một game thương mại sẽ chạy nhanh hơn không?

Không. Tài liệu API mô tả giao diện và khái niệm phát triển; hiệu năng game phải được xác định bằng dữ liệu của đúng trò chơi và cấu hình.