- เขียนเรนเดอเรอร์สำหรับ Linux ใหม่โดยอิง wgpu เพื่อนำไลบรารีกราฟิก Blade เดิมออก
- Blade เดิม ก่อให้เกิดปัญหาหลายอย่างทั้งกับผู้ใช้ Zed และแอปของบุคคลที่สาม ขณะที่ wgpu เป็นมาตรฐานของ ecosystem Rust ที่ให้ความเข้ากันได้กว้างกว่าและมีโอกาสพัฒนาต่อได้มากกว่า
- การติดตั้งใช้งานใหม่ช่วยแก้หลายปัญหา รวมถึง อาการค้างในสภาพแวดล้อม NVIDIA และ Wayland และปิดบั๊กรายงานที่เกี่ยวข้องจำนวนมาก
- ระหว่างกระบวนการรีวิวได้มีการ ปรับแต่งการใช้หน่วยความจำและประสิทธิภาพ ทำให้การใช้ CPU ดีขึ้นราว 20% ส่วนเวลา GPU ยังคงอยู่ในระดับใกล้เคียงเดิม
- การเปลี่ยนแปลงครั้งนี้ช่วยยกระดับ เสถียรภาพและความสามารถในการบำรุงรักษากราฟิกของ Zed บน Linux อย่างมาก
การเปลี่ยน Linux renderer ไปใช้ wgpu
- ปัญหาเกิดขึ้นกับ Zed และแอปที่สร้างบน GPUI เนื่องจาก ความซับซ้อนและข้อผิดพลาดของไลบรารีกราฟิก Blade เดิม
- มีรายงานการแครชและอาการค้างไม่เฉพาะจากผู้ใช้ Zed แต่รวมถึงแอป 3rd-party อื่น ๆ ด้วย
- การติดตั้งใช้งานใหม่ใช้ wgpu ซึ่งเป็นกราฟิก API มาตรฐานของ ecosystem Rust
- ใช้พื้นฐานเทคโนโลยีเดียวกับโปรเจ็กต์หลักอย่าง Bevy และ Iced จึงสามารถรับประโยชน์จากการพัฒนาในอนาคตร่วมกันได้
- ประเด็นที่เกี่ยวข้องรวมถึง #44814, #40481, niri-wm/niri#2335, zortax/zlaunch#15 เป็นต้น
ประเด็นด้านประสิทธิภาพและความเข้ากันได้
- นักพัฒนาบางส่วนชี้ให้เห็นว่า wgpu มี การใช้หน่วยความจำเพิ่มขึ้น
- ในสภาพแวดล้อม Windows มีรายงานว่าเมื่อเปิดหน้าต่างเปล่า wgpu ใช้ประมาณ 100MB ขณะที่ gpui renderer เดิมใช้ราว 10MB
- ทางฝั่งผู้พัฒนาอธิบายว่า wgpu มี การใช้หน่วยความจำเริ่มต้นเพิ่มขึ้นจากการจองบัฟเฟอร์ล่วงหน้า แต่เมื่อเรนเดอร์จริงแล้วความแตกต่างไม่ได้มากนัก
- ในการพูดคุยเรื่องการใช้หน่วยความจำ GPU ผู้ใช้บางรายรายงานว่า VRAM เพิ่มขึ้นราว 30MB แต่ในสภาพแวดล้อมอื่นก็พบว่าไม่มีความแตกต่าง
ขอบเขตการใช้งานตามแพลตฟอร์ม
- บน Mac และ Windows จะยังคง ใช้ native renderer เดิมต่อไป
- reflectronic ระบุว่า “native renderer บนแพลตฟอร์มเหล่านี้ให้ประสิทธิภาพและความเข้ากันได้ดีกว่า”
- zortax โต้แย้งว่า wgpu รองรับ backend ได้หลากหลาย เช่น Vulkan, DirectX12, ANGLE(OpenGL ES) จึงอาจช่วยขยายความเข้ากันได้มากขึ้นแทน
- maddythewisp เสนอว่าอาจใช้ คุณสมบัติข้ามแพลตฟอร์มของ wgpu เพื่อเปิดใช้งานแบบเลือกได้บน Mac และ Windows เช่นกัน
การปรับแต่งและเบนช์มาร์ก
- reflectronic เพิ่มคอมมิตปรับแต่งหลายรายการ เช่น การนำบัฟเฟอร์เดี่ยวกลับมาใช้ซ้ำ, การสร้าง bind group ล่วงหน้า, การรวมบัฟเฟอร์ส่วนกลาง
- จากคอมมิตล่าสุด (f988a34) พบว่า เวลา CPU สำหรับการวาดดีขึ้นราว 20% ส่วนเวลา GPU ใกล้เคียงเดิม
- ค่า CPU median ลดลงจาก 301µs → 238µs
- มีรายงานว่าการใช้หน่วยความจำก็ดีขึ้นเมื่อเทียบกับ Zed Stable
การรวมโค้ดและข้อสรุป
- หลังรีวิวขั้นสุดท้าย reflectronic อนุมัติว่า “ทุกอย่างพร้อมแล้ว” และ ถูกรวมเข้า main branch เมื่อวันที่ 13 กุมภาพันธ์ 2026
- backend ของ Blade จะ “ไม่ถูกใช้งานใน Zed อีกต่อไป และไม่มีแผนจะบำรุงรักษาต่อ”
- การเปลี่ยนครั้งนี้ทำให้ Linux graphics stack ของ Zed ถูกรวมศูนย์บนพื้นฐาน wgpu และช่วยเสริมความเชื่อมโยงทางเทคนิคกับ ecosystem Rust ในอนาคต
ยังไม่มีความคิดเห็น