เริ่มต้นวันนี้ด้วยโค้ด Mesa 23.2-devel ใหม่ล่าสุด ตัวเลือกตัวแปรสภาพแวดล้อม AMD_DEBUG=useaco พร้อมใช้งานแล้วสำหรับการบอกไดรเวอร์ RadeonSI Gallium3D ให้ใช้แบ็คเอนด์คอมไพเลอร์ ACO shader ของ Valve แทนแบ็คเอนด์คอมไพเลอร์ AMDGPU LLVM shader สำหรับประเภท shader ที่รองรับ.

Valve ใช้เวลาหลายปีในการทำงานกับแบ็คเอนด์คอมไพเลอร์ ACO ซึ่งเป็นทางเลือกที่เร็วกว่าคอมไพเลอร์เชดเดอร์ที่ใช้ LLVM อย่างเป็นทางการของ AMD ที่ใช้โดย RadeonSI เดิมคือ RADV และ ROCm compute stack เป็นต้น แบ็คเอนด์คอมไพเลอร์ ACO มีความสำคัญต่อความสำเร็จของไดรเวอร์ RADV และทำให้เป็นไดรเวอร์ที่ยอดเยี่ยมสำหรับนักเล่นเกม Linux บน Steam Deck และผู้ที่อยู่บนเดสก์ท็อป Linux ที่เพลิดเพลินกับกราฟิก Radeon แบบโอเพ่นซอร์ส

มีการพูดถึงการนำ ACO มาสู่ RadeonSI เป็นเวลาหลายปี และกำลังเกิดขึ้นอย่างช้าๆ ขอบคุณ คำขอรวมนี้โดย Qiang Yu ปริศนาชิ้นล่าสุดที่รวบรวมเข้าด้วยกันทำให้เปิดใช้งาน คอมไพเลอร์ ACO พร้อมตัวเลือก AMD_DEBUG=useaco สำหรับประเภท shader ที่รองรับ

แต่ด้วยการรวมเริ่มต้นนี้ คอมไพเลอร์ ACO ที่สนับสนุน RadeonSI เป็นเพียงสำหรับตัวสร้างพิกเซลแบบเสาหินเท่านั้น Qiang อธิบายไว้ใน MR:

“สามารถเปิดใช้งานการคอมไพล์ ACO ด้วย AMD_DEBUG=useaco ขณะนี้รองรับเฉพาะ PS แบบเสาหิน การเปลี่ยนเฉดสีทั้งหมดเป็น ACO ในคราวเดียวจะเป็นการเปลี่ยนแปลงครั้งใหญ่ ดังนั้นแผนของฉันจึงเปิดใช้งานทีละรายการเพื่อให้ตรวจสอบและแก้ไขจุดบกพร่องได้ง่ายขึ้น”

เขาทำงานผ่านการถดถอยที่ทราบซึ่งแต่เดิมมีสำหรับคอมไพเลอร์ ACO ที่มีตัวแรเงาพิกเซล เปรียบเทียบกับแบ็กเอนด์คอมไพเลอร์ LLVM

เป็นเรื่องดีที่ได้เห็นโค้ด ACO + RadeonSI ชุดล่าสุดที่มีโค้ดใหม่หลายร้อยบรรทัด หวังว่าประเภท shader อื่น ๆ จะเริ่มใช้งานได้เร็ว ๆ นี้สำหรับ ACO กับ RadeonSI ดูงาน ACO อื่นๆ ที่รอดำเนินการสำหรับ Mesa ได้ทางแบบสอบถาม GitLab นี้

Categories: IT Info