Valve đã mở trình biên dịch shader mới cho GPU AMD

Công ty van gợi ý Danh sách gửi thư của nhà phát triển Mesa có trình biên dịch đổ bóng mới ACO cho trình điều khiển Vulkan RADV, có thể định vị được như một giải pháp thay thế cho trình biên dịch đổ bóng AMDGPU được sử dụng trong trình điều khiển OpenGL và Vulkan RadeonSI và RADV cho chip đồ họa AMD.
Sau khi hoàn tất quá trình thử nghiệm và hoàn thiện chức năng, ACO dự kiến ​​sẽ được đưa vào thành phần Mesa chính.

Mã đề xuất của Valve nhằm mục đích cung cấp khả năng tạo mã tối ưu nhất có thể cho các trình đổ bóng ứng dụng trò chơi, cũng như đạt được tốc độ biên dịch rất cao. Trình biên dịch shader của Mesa sử dụng các thành phần LLVM, không cung cấp tốc độ biên dịch như mong muốn và không cho phép kiểm soát hoàn toàn luồng điều khiển, điều này từng gây ra lỗi nghiêm trọng trong quá khứ. Ngoài ra, việc loại bỏ LLVM giúp bạn có thể thực hiện phân tích sự khác biệt mạnh mẽ hơn và kiểm soát tải đăng ký tốt hơn, cho phép bạn tạo các tệp thực thi hiệu quả hơn.

ACO được viết bằng C++, được thiết kế với mục đích biên dịch JIT và sử dụng các cấu trúc dữ liệu lặp nhanh, tránh các cấu trúc dựa trên con trỏ như danh sách liên kết và chuỗi không sử dụng. Việc biểu diễn mã trung gian hoàn toàn dựa trên SSA (Gán đơn tĩnh) và cho phép phân bổ thanh ghi bằng cách tính toán trước chính xác thanh ghi tùy thuộc vào trình đổ bóng.

Hiện tại, chỉ hỗ trợ pixel (đoạn) và đổ bóng điện toán trên các GPU AMD rời (dGPU VI+). Tuy nhiên, ACO đã thu thập chính xác các shader cho tất cả các trò chơi được thử nghiệm, bao gồm cả các shader phức tạp từ Shadow of the Tomb Raider và Wolfenstein II. Nguyên mẫu ACO được đề xuất để thử nghiệm nhanh gần gấp đôi so với trình biên dịch đổ bóng AMDGPU về tốc độ biên dịch và thể hiện sự gia tăng FPS trong một số trò chơi khi chạy trên hệ thống có trình điều khiển RADV.

Valve đã mở trình biên dịch shader mới cho GPU AMD

Valve đã mở trình biên dịch shader mới cho GPU AMD

Nguồn: opennet.ru

Thêm một lời nhận xét