Tại sao điều quan trọng là phải có các mục tiêu kết xuất với cùng kích thước bit?


10

Tôi hiện đang nghĩ về loại GBuffer nào tôi sẽ cần cho bóng mờ bị trì hoãn, do đó tôi cũng đã cố gắng ghi lại trực tuyến về những loại phổ biến nhất và định dạng của chúng.

Hầu hết GBuffer mà tôi thấy đã sử dụng cùng kích thước bit cho mỗi mục tiêu kết xuất, cũng thường dẫn đến các kênh không được sử dụng. Tuy nhiên, như phỏng đoán đầu tiên cho GBuffer của tôi, trên giấy tờ, tôi cần hai mục tiêu 24 bit và hai mục tiêu 32 hoặc ba 24 và một 32.

Tôi hiểu rằng có cùng "kích cỡ" mỗi tệp đính kèm có thể được căn chỉnh tốt hơn, nhưng thực tế mà nói, tốt hơn là lãng phí các kênh (hoặc dự trữ chúng để sử dụng trong tương lai) và có tất cả các RT có cùng kích thước hoặc tôi chỉ nên sử dụng những gì cần thiết? Trong trường hợp trước, tại sao nó lại có lợi thế như vậy, liệu 24 bit có được đệm thành 32 không?

Câu trả lời:


9

Tôi hiểu rằng có cùng "kích cỡ" mỗi tệp đính kèm có thể được căn chỉnh tốt hơn, nhưng thực tế mà nói, tốt hơn là lãng phí các kênh (hoặc dự trữ chúng để sử dụng trong tương lai) và có tất cả các RT có cùng kích thước hoặc tôi chỉ nên sử dụng những gì cần thiết?

Có một Mục tiêu kết xuất được liên kết 32 bit thống nhất sẽ tốt hơn, ngay cả khi điều đó có nghĩa là "lãng phí" một số bộ nhớ. Điều này sẽ nhanh hơn nhiều so với việc có bộ nhớ không liên kết 32 bit. Ngoài ra, bạn sẽ không gặp khó khăn khi hỗ trợ nhiều loại bộ đệm, sao chép và kết hợp bộ đệm sẽ dễ dàng hơn vì bạn sẽ không phải chuyển đổi giữa nhiều loại.

32bit là nguồn gốc cho GPU và CPU, do đó bạn sẽ giảm số chu kỳ cần thiết để đọc bộ nhớ. GPU sẽ cố gắng đọc 32 bit một cách tự nhiên, nếu bạn đang cố đọc địa chỉ bộ nhớ không được sắp xếp, chẳng hạn như 24 bit được căn chỉnh, GPU sẽ đọc 32 bit và sau đó sẽ chuyển ra các byte không mong muốn.

Dưới đây là một bài viết chi tiết về lý do tại sao sự liên kết bộ nhớ lại quan trọng (mặc dù nó nói về CPU không phải GPU, khái niệm cấp cao vẫn được áp dụng.)

Những cái 24 bit sẽ được đệm thành 32 chứ?

Một số GPU sẽ đệm nó, nhưng nó không được đảm bảo, vì vậy nó nằm trong khu vực triển khai trình điều khiển / GPU. Vì vậy, bạn phải hồ sơ và kiểm tra kết quả.

PS: 32 bit hoặc 64 bit tùy theo kiến ​​trúc.


5
và nếu tất cả chúng đều có cùng kích thước bit, bạn có thể làm mờ chúng mà không cần phải chuyển đổi
ratchet freak
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.