การทำงานไดรเวอร์ VGEM ใน Rust ใหม่

Maíra Canal จาก Igalia นำเสนอโปรเจ็กต์เพื่อเขียนไดรเวอร์ VGEM (Virtual GEM Provider) ใหม่ใน Rust VGEM ประกอบด้วยโค้ดประมาณ 400 บรรทัดและจัดเตรียมแบ็กเอนด์ GEM (Graphics Execution Manager) ที่ไม่เชื่อเรื่องฮาร์ดแวร์ ซึ่งใช้เพื่อแชร์การเข้าถึงบัฟเฟอร์ไปยังไดรเวอร์อุปกรณ์ 3D ของซอฟต์แวร์ เช่น LLVMPipe เพื่อปรับปรุงประสิทธิภาพการแรสเตอร์ของซอฟต์แวร์

VGEM จะเป็นไดรเวอร์กราฟิก Rust ตัวที่สองที่ทำงานในระดับเคอร์เนล (ตัวแรกคือไดรเวอร์ Asahi DRM (Direct Rendering Manager) สำหรับ Apple AGX GPU ที่ใช้ในชิป Apple M1/M2) การพัฒนาจำเป็นต้องสร้างการเชื่อมโยงใหม่เพื่อให้ทำงานจากโค้ด Rust กับอุปกรณ์แพลตฟอร์ม ประเภท XArray และนามธรรมที่เกี่ยวข้องกับ DMA เช่น รั้ว DMA ในขั้นตอนการพัฒนาปัจจุบัน ไดรเวอร์เกือบจะพร้อมแล้ว และผ่านการทดสอบ IGT ส่วนใหญ่ ยกเว้นการตรวจสอบสองครั้ง (vgem_slow และ vgem_basic@unload) แต่ต้องมีการปรับปรุงการรองรับ IOCTL

ที่มา: opennet.ru

เพิ่มความคิดเห็น