Bắt đầu từ hôm nay với mã phát triển Mesa 23.2 mới nhất, tùy chọn biến môi trường AMD_DEBUG=useaco hiện khả dụng để yêu cầu trình điều khiển RadeonSI Gallium3D sử dụng back-end trình biên dịch đổ bóng ACO của Valve thay vì back-end trình biên dịch đổ bóng AMDGPU LLVM cho các loại shader được hỗ trợ.
Valve đã dành nhiều năm làm việc trên back-end của trình biên dịch ACO như một giải pháp thay thế nhanh hơn cho trình biên dịch shader dựa trên LLVM chính thức của AMD được RadeonSI, trước đây là RADV sử dụng, và cả ngăn tính toán ROCm, v.v. Back-end của trình biên dịch ACO đã rất quan trọng đối với sự thành công của trình điều khiển RADV và làm cho nó trở thành trình điều khiển tuyệt vời cho các game thủ Linux trên Steam Deck và những người trên máy tính để bàn Linux thưởng thức đồ họa Radeon mã nguồn mở.
Trong nhiều năm, người ta đã bàn tán về việc đưa ACO lên RadeonSI và nó đang dần diễn ra. Nhờ có yêu cầu hợp nhất này của Qiang Yu, mảnh ghép mới nhất được kết hợp với nhau cho phép kích hoạt Trình biên dịch ACO với tùy chọn AMD_DEBUG=useaco cho các loại trình đổ bóng được hỗ trợ.
Nhưng với sự hợp nhất ban đầu này, trình biên dịch ACO hỗ trợ với RadeonSI chỉ dành cho các trình đổ bóng pixel nguyên khối. Qiang đã giải thích trong MR:
“Có thể bật tính năng biên dịch ACO với AMD_DEBUG=useaco. Hiện tại chỉ hỗ trợ PS nguyên khối. Sẽ là một thay đổi lớn nếu chuyển tất cả các shader sang ACO cùng một lúc, vì vậy kế hoạch của tôi là bật từng cái một để xem xét và gỡ lỗi dễ dàng hơn.”
Anh ấy đã làm việc thông qua các phép hồi quy đã biết ban đầu dành cho trình biên dịch ACO với trình đổ bóng pixel so với back-end của trình biên dịch LLVM.
Thật tuyệt khi thấy lô mã ACO + RadeonSI mới nhất này có hàng trăm dòng mã mới. Hy vọng rằng nhiều loại shader sẽ sớm bắt đầu hoạt động cho ACO với RadeonSI. Bạn có thể tìm thấy công việc ACO đang chờ xử lý khác cho Mesa qua truy vấn GitLab này.