ไดรเวอร์ Vulkan ใช้แบ็กเอนด์สร้าง ACO ของ Valve แล้ว

ในฐานรหัสที่ใช้ในการสร้างเวอร์ชัน Mesa 20.2 ไดรเวอร์ RADV Vulkan สำหรับชิป AMD เปลี่ยนเป็นแบ็กเอนด์ เริ่มต้นในการรวบรวม เฉดสี» ACO «พัฒนาโดย Valve เป็นทางเลือกแทนคอมไพเลอร์ LLVM shader

การเปลี่ยนแปลงที่ระบุนี้ เสร็จสิ้นในตอนท้ายของการเพิ่มประสิทธิภาพการทำงานของเกม และเวลาเปิดตัวลดลง

เปลี่ยนแปลง จากตัวควบคุม RADV ไปยังแบ็กเอนด์ใหม่ เป็นไปได้หลังจากเข้าถึงความเท่าเทียมกันในการทำงานของ ACO ด้วยแบ็กเอนด์รุ่นเก่าที่พัฒนาโดย AMD สำหรับไดรเวอร์ AMDGPU ซึ่งยังคงใช้ในไดรเวอร์ RadeonSI OpenGL

การทดสอบโดย Valve แสดงให้เห็นว่า ACO เร็วกว่าคอมไพเลอร์สร้าง AMDGPU shader เกือบสองเท่าและแสดงให้เห็นถึงการเพิ่มขึ้นของ FPS ในบางเกมเมื่อทำงานบนระบบด้วยไดรเวอร์ RADV

ไดรเวอร์ AMD OpenGL และ Vulkan ปัจจุบันใช้คอมไพเลอร์ shader ซึ่งเป็นส่วนหนึ่งของโครงการต้นน้ำ LLVM โปรเจ็กต์นั้นใหญ่มากและมีเป้าหมายที่แตกต่างกันมากมายและการรวบรวมเกมเชดเดอร์ออนไลน์ก็เป็นเพียงหนึ่งในนั้น 

สิ่งนี้สามารถนำไปสู่การแลกเปลี่ยนทางการพัฒนาซึ่งการปรับปรุงฟังก์ชันการทำงานเฉพาะเกมนั้นยากกว่าที่เป็นอยู่หรือในกรณีที่คุณลักษณะเฉพาะของเกมมักจะถูกทำลายโดยนักพัฒนา LLVM ที่ทำงานในสิ่งอื่นโดยไม่ได้ตั้งใจ

แบ็กเอนด์ของ ACO มีจุดมุ่งหมายเพื่อให้แน่ใจว่าโค้ดถูกสร้างขึ้นด้วยวิธีที่เหมาะสมที่สุด เป็นไปได้สำหรับแอปเกมและมีความเร็วในการรวบรวมสูงมาก

ACO มันเขียนใน C ++ ได้รับการพัฒนาโดยคำนึงถึงความสามารถในการรวบรวม JIT และใช้สิ่งที่รวดเร็วเพื่อทำซ้ำโครงสร้างข้อมูล หลีกเลี่ยงโครงสร้างตามตัวชี้เช่นรายการและสตริงที่เชื่อมโยงจากการใช้ def การแสดงรหัสระดับกลางขึ้นอยู่กับ SSA (Single Static Allocation) อย่างสมบูรณ์และอนุญาตให้มีการจัดสรรเรกคอร์ดคำนวณเร็กคอร์ดอย่างถูกต้องตาม Shader

การแสดงรหัสระดับกลางขึ้นอยู่กับ SSA (Single Static Allocation) อย่างสมบูรณ์และอนุญาตให้มีการจัดสรรเรกคอร์ดคำนวณเร็กคอร์ดอย่างแม่นยำตาม Shader

ขณะนี้รองรับเฉพาะพิกเซลเท่านั้น (ชิ้นส่วน) และคำนวณเฉดสีบน GPU AMD แบบแยก (dGPU VI +) อย่างไรก็ตาม ACO ได้รวบรวมเฉดสีสำหรับเกมที่ทดสอบทั้งหมดอย่างถูกต้องแล้วรวมถึงเฉดสีที่ซับซ้อนจาก Shadow of the Tomb Raider และ Wolfenstein II

ต้นแบบ ACO ที่เสนอ สำหรับการทดสอบ เร็วกว่าคอมไพเลอร์ AMDGPU shader เกือบสองเท่า และแสดงให้เห็นถึงการเพิ่มขึ้นของ FPS ในบางเกมเมื่อรันบนระบบด้วยคอนโทรลเลอร์ RADV

เพื่อทำความเข้าใจเพิ่มเติมเล็กน้อยเกี่ยวกับความเกี่ยวข้องของการนำโค้ดของ Valve มาใช้สิ่งสำคัญคือต้องอยู่เบื้องหน้า วัตถุประสงค์คือเพื่อรับประกันการสร้างรหัสที่เหมาะสมที่สุดเท่าที่จะเป็นไปได้ สำหรับแอปเกมแชเดอร์รวมถึงความเร็วในการรวบรวมที่สูงมาก

คอมไพเลอร์ shader ที่มีอยู่ใน Mesa ใช้ส่วนประกอบ LLVM พวกเขาไม่อนุญาตให้บรรลุความเร็วในการรวบรวมที่ต้องการและไม่อนุญาตให้มีการควบคุมโฟลว์การควบคุมทั้งหมดซึ่งในอดีตได้ก่อให้เกิดข้อผิดพลาดร้ายแรง

นอกจากนี้ การหลีกเลี่ยง LLVM ทำให้สามารถใช้การวิเคราะห์เชิงรุกได้มากขึ้น ความคลาดเคลื่อนและการจัดการโหลดบันทึกที่ละเอียดขึ้นทำให้การสร้างไฟล์ปฏิบัติการมีประสิทธิภาพมากขึ้น

สุดท้ายก็เป็นเช่นกัน สิ่งสำคัญคือต้องทราบว่าในขณะนี้ ACO ใช้งานได้กับตัวควบคุม Mesa RADV Vulkan เท่านั้น แต่นักพัฒนา ACO ยืนยันว่าขั้นตอนต่อไปคือการเริ่มทำงานเพื่อขยายความสามารถของ ACO เพื่อรองรับไดรเวอร์ OpenGL RadeonSI ดังนั้นในอนาคตและสำหรับไดรเวอร์นี้ ACO สามารถแทนที่คอมไพเลอร์ LLVM shader เริ่มต้นได้

เท่าไหร่ ผู้ที่ต้องการดำเนินการต่อกับแบ็กเอนด์ที่ใช้ก่อนหน้านี้ จากคอมไพเลอร์ LLVM shader พวกเขาสามารถกลับไปที่มันได้พวกเขาเพียงแค่ต้องเปลี่ยนตัวแปร

ตัวแปรสภาพแวดล้อมที่จัดเตรียมไว้เพื่อทำการเปลี่ยนแปลงนี้คือ "RADV_DEBUG = llvm"


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   วารีหนัก dijo

    และผู้ใช้จะเลือกแบ็กเอนด์ที่จะเล่นเกมได้อย่างไร? ต้องแก้ไขไฟล์อะไรบ้าง