Texture Cache hoạt động như thế nào trong GPU kết xuất dựa trên ô xếp


9

Làm thế nào để bộ đệm hoạt động với kết xuất dựa trên gạch?

Có bất cứ lời khuyên về cách cải thiện tỷ lệ nhấn bộ nhớ cache cho nó? .


1
Bạn có ý nghĩa gì bởi bố cục dọc và ngang của tam giác?
Mokosha

@Mokosha xin lỗi, điều này bằng cách nào đó đã không được chú ý đến tôi. Tôi chỉ thấy nó bây giờ. Đây là một câu hỏi lý thuyết hơn là câu hỏi thực tế và tôi thậm chí không biết nếu điều này có ý nghĩa bây giờ. Dù sao, ý tôi là, giả sử một hình tam giác cắt nhau (x, y) và (x + 1, y) và hai ô này được xử lý lần lượt. Điều đó sẽ tốt hơn cho bộ đệm kết cấu so với Nếu tôi có một tam giác cắt nhau (x, y) và (x, y + 1)? (Do các pixel viền và bố cục của các hình tam giác không cùng hướng với quá trình xử lý gạch)
Felipe Lira

Câu trả lời:


19

Cho dù đó là GPU dựa trên gạch hay không thực sự không ảnh hưởng đến kiến ​​trúc bộ đệm kết cấu. Bố cục bộ nhớ của kết cấu sẽ trông giống như một số hương vị của thứ tự Morton hoặc đường cong Hilbert trong tất cả các GPU.

Kết quả là, hiệu quả hơn để hiển thị các hình tam giác gần với hình tam giác đều bởi vì hệ thống bộ nhớ GPU tìm nạp các dòng bộ đệm của texels.

Vì vậy, rõ ràng trên các đường viền gạch, có thể xảy ra rằng bạn phải tìm nạp texels hai lần. Điều này có chi phí nhỏ vì viền gạch chỉ có "vài" pixel.

Các GPU máy tính để bàn có thể cho phép hoạt động giống hệt với các GPU dựa trên nền tảng như các thử nghiệm như minh chứng sau: http://www.g-truc.net/post-0597.html

Kích thước của gạch khác nhau nhưng cả kiến ​​trúc thực sự xử lý các mảnh thành một hệ thống phân cấp của gạch có kích thước khác nhau.

Khi mã hóa cho GPU dựa trên gạch, khuyến nghị của tôi là luôn luôn ghi nhớ:

  1. Đừng chuyển đổi các đối tượng bộ đệm khung trừ khi bạn thực sự cần.
  2. Khi liên kết một đối tượng bộ đệm khung mới, nếu bạn không cần lưu nội dung của bộ đệm khung hiện tại, hãy loại bỏ nó. Nếu không muốn tải nội dung của bộ đệm khung mới, thì bạn nên xóa bộ đệm khung.

Tôi đã cập nhật mục thứ hai vì ý chỉnh sửa không phải là ý tôi. Nếu không, nó trông thật tuyệt!
Barshe

Xin chào, bạn có nghĩa là "tam giác" bằng nhau chứ không phải là "isosceles"? Thay vì "Hilbert" tôi đã nói thứ tự "Morton" vì việc đánh địa chỉ dễ dàng hơn nhiều trong phần cứng.
Simon F

@Christophe cảm ơn! Điều này thực sự hữu ích. Vì vậy, đối với các pixel viền, không phải là vấn đề bộ đệm kết cấu? Đó là loại mà tôi đã tự hỏi. Vì vậy, nếu tôi có một hình tam giác cắt các ô (x, y) và (x + 1, y) và GPU chỉ rasterized ngói (x, y). Giả sử lát xếp (x + 1, y) sẽ là tiếp theo, ngay cả khi một Đơn vị thực thi khác xử lý nó, tôi sẽ không được hưởng lợi từ bộ đệm kết cấu khi lấy mẫu texels cho tam giác này chứ?
Felipe Lira

Ngoài ra, tôi đã tò mò về mẫu Hilbert. Tôi luôn cho rằng điều này đúng với kết cấu nén khối. Điều này có đúng với mọi kết cấu không? PS: Tôi cũng không theo dõi đoạn cuối.
Felipe Lira

PVRTC mã hóa các khối kết cấu theo thứ tự
vữa
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.