Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การแก้ไขปัญหา >> ข้อผิดพลาด Windows

วิธีแก้ไขข้อผิดพลาด "Unreal Engine is exiting due to D3D device being lost"

ผู้ใช้เจอข้อความ Unreal Engine is exiting due to D3D device being lost เมื่อ Unreal ไม่สามารถเชื่อมต่อกับอุปกรณ์ D3D บนคอมพิวเตอร์ ข้อผิดพลาดนี้พบบ่อย และอาจเกิดกับผู้ใช้ที่ไม่มีปัญหาอื่นๆ

วิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

ตามนักพัฒนา Unreal Engine ปัญหานี้มักเกิดเมื่อกราฟิก/ฮาร์ดแวร์ของคอมพิวเตอร์ไม่ซิงโครไนซ์กับ Unreal Engine อย่างถูกต้อง ทำให้ทำงานกับ D3D device ไม่ได้ บทความนี้จะอธิบายสาเหตุและวิธีแก้ไขทั้งหมด

สาเหตุของข้อผิดพลาด Unreal Engine is exiting due to D3D device being lost

จากรายงานผู้ใช้และการทดสอบ สาเหตุหลักมีดังนี้:

  • Unreal Engine ล้าสมัย: Engine ไม่ได้อัปเดตเป็น build ล่าสุด ไม่สื่อสารกับคอมโพเนนต์ระบบที่อัปเดตใหม่ (หรือกลับกัน)
  • แอนตี้ไวรัส: แอนตี้ไวรัสบางตัวบล็อก Unreal Engine (False positive) แก้ได้โดยเพิ่ม Whitelist หรือปิดใช้งาน
  • ไดรเวอร์อุปกรณ์ล้าสมัย: ไดรเวอร์เสียหายหรือเก่า ติดตั้งใหม่หรืออัปเดตจะช่วย
  • ไฟล์ Steam ไม่ครบ/เสียหาย: Steam ทำงานกับ Unreal Engine หากไฟล์เกมหรือการติดตั้งเสียหาย จะเกิดข้อผิดพลาดนี้
  • การตั้งค่า NVIDIA GeForce Experience: โมดูลเหล่านี้ขัดแย้งกับเกม ปิดโมดูลหรือตั้งค่าเฉพาะมักแก้ไขได้
  • Overclocking: Overclocking ให้ประสิทธิภาพแต่ก่อให้เกิดขัดแย้งกับแอปที่ใช้ทรัพยากรหนัก ปิด Overclocking อาจช่วย
  • การ์ดจอออนบอร์ด (Default Graphics): การ์ดจอออนบอร์ดปกติจะปิดตัวเองเมื่อมีการ์ดจอ Dedicated ทำงาน แต่บางกรณีทำงานพร้อมกันทำให้ขัดแย้ง

ก่อนเริ่ม ตรวจสอบว่าเป็นแอดมิน และมีอินเทอร์เน็ต

วิธีแก้ไข 1: อัปเดต Unreal Engine, Windows และ Steam

หากคอมโพเนนต์ใดล้าสมัย จะสื่อสารไม่ได้ เกมเล่นไม่ได้ ปัญหาซ้ำๆ ที่มักถูกมองข้าม

อัปเดต Unreal Engine ค่อนข้างยาว แต่ Windows และ Steam เร็ว ให้ทำตามลำดับ เริ่มจาก Unreal Engine

  1. เปิด Launcher ไปที่ Library
  2. ใน Library ด้านบนจะเห็น Engine version หากมีอัปเดต จะมีไอคอน Plus (+) ถัดไป
  3. คลิก Add versions จะมีพรอมต์ให้ติดตั้ง Engine ใหม่ ดาวน์โหลดเวอร์ชันใหม่ แล้วกด Updateวิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

ต่อไปอัปเดต Windows:

  1. กด Windows + S พิมพ์ update เปิดผลลัพธ์ Update
  2. คลิก Check for updates Windows จะตรวจสอบอัปเดตอัตโนมัติวิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

รอเสร็จสิ้น หากโปรมต์รีสตาร์ท ให้ รีสตาร์ท แล้วทำขั้นตอนอัปเดต Steam:

  1. เปิด Steam Client ตรวจสอบอินเทอร์เน็ต
  2. Client จะตรวจสอบเซิร์ฟเวอร์และดาวน์โหลดอัปเดตล่าสุดอัตโนมัติ หลังเสร็จ รีสตาร์ทอีกครั้ง

หลังอัปเดตทั้งหมด ลองรัน Unreal Engine ดูว่าข้อผิดพลาดหายไปหรือยัง หากยังคงอยู่ ลองวิธีต่อไป

วิธีแก้ไข 2: ปิด NVIDIA Game Booster (และฟีเจอร์เสริมอื่นๆ)

ตรวจสอบว่าไม่มีฟีเจอร์ Enhancement ใดๆ ทำงานใน NVIDIA GeForce Experience แม้จะเพิ่มประสิทธิภาพ แต่ก็มักก่อให้เกิดปัญหา

วิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

ฟีเจอร์ Enhancement มักเป็น Game Booster, Battery Optimizer ฯลฯ เปิด GeForce Experience ปิดฟีเจอร์เหล่านี้หมด หรือปิด GeForce Experience ชั่วคราวดูว่าช่วยหรือไม่ หากแน่ใจว่าไม่ใช่สาเหตุ ค่อยไปวิธีต่อไป

วิธีแก้ไข 3: เปลี่ยนการตั้งค่าการ์ดจอ Dedicated ให้ Unreal Engine

ผู้ใช้ Unreal Engine มักมีการ์ดจอ Dedicated ติดตั้งเพิ่ม นอกเหนือจากกราฟิกออนบอร์ด Intel (Intel HD/UHD) การมี 2 การ์ดจอในเครื่องเดียวกันก่อให้เกิดปัญหา ขั้นตอนนี้จะตั้งค่าใน NVIDIA Control Panel ให้ Unreal Engine ใช้เฉพาะ NVIDIA

  1. คลิกขวาบน Desktop เลือก NVIDIA Control Panel
  2. คลิก Manage 3D Settings แล้ว Program Settings
  3. ใน dropdown โปรแกรม เพิ่ม Unreal Engine และใน dropdown ที่ 2 เลือก NVIDIA (Dedicated graphics)วิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost
  4. บันทึก ออก รีสตาร์ท ลองเปิดเกม/โมดูล ดูว่าปัญหาแก้ไขหรือยัง

วิธีแก้ไข 4: ปิดการทำงานของกราฟิกออนบอร์ด (On-board Graphics)

หากเปลี่ยน Preference ไม่พอ ให้ปิดกราฟิกออนบอร์ดทั้งหมด จะไม่ส่งผลต่อประสิทธิภาพ เพียงแต่การ์ดจอ Dedicated จะทำงานเต็มที่

  1. กด Windows + R พิมพ์ devmgmt.msc กด Enter
  2. ใน Device Manager ไปที่ Display adapters เลือก On-board graphics
  3. คลิกขวาเลือก Disableวิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

หน้าจออาจดำชั่วคราว แล้วกลับมา ระบบกำลังสลับไปใช้ Dedicated graphics เต็มที่ บันทึก ลองเปิด Unreal Engine ดูว่าปัญหายังคงอยู่หรือไม่

วิธีแก้ไข 5: ปิดแอนตี้ไวรัส/ไฟร์วอลล์

แอนตี้ไวรัสตรวจสอบไฟล์ระบบและกระบวนการที่ใช้ทรัพยากร แต่บางครั้งจดจำผิด (False positive) กับกระบวนการที่ Verified แล้ว ทำให้เกมรันไม่ได้หรือไม่ได้สิทธิ์เข้าถึงทรัพยากร กรณี Unreal Engine เหมือนกัน

วิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

ลอง ปิดแอนตี้ไวรัส (ดูบทความ How to turn off Antivirus) รีสตาร์ท ลองสตรีมใหม่ หากปิดไม่ได้ผล ลอง Uninstall ดู แอนตี้ไวรัสที่รายงานว่าก่อให้เกิดปัญหา ได้แก่ Avast และ AVG แต่ควรลองปิดตัวที่ใช้อยู่ก่อน

วิธีแก้ไข 6: ปิด Overclocking และ SLI Technology

Overclocking ทำให้ CPU ทำงานแบบ Burst ประมวลผลสั้นๆ ให้พลังเพิ่ม แต่อุณหภูมิเพิ่ม จนถึงขีดจำกัดจะกลับสู่ปกติ ระหว่างเย็นลง จะพร้อม Burst ใหม่

วิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost

แม้ Overclocking จะมีประโยชน์ แต่มีรายงานว่า ปิด Overclocking ทั้ง CPU และการ์ดจอ แก้ปัญหาได้ Unreal Engine ไม่ได้ปรับให้รันในสภาพ Overclocked

นอกจากนี้ การปิด SLI (NVIDIA รวมพลัง 2 การ์ดจอ) ก็ช่วยแก้ปัญหาได้หลายคน Unreal Engine ก็มีปัญหาเมื่อ SLI เปิดอยู่ ให้ลองปิดดู

วิธีแก้ไข 7: อัปเดตไดรเวอร์กราฟิก (Clean Install)

ไดรเวอร์กราฟิกเป็นตัวกลางระหว่างฮาร์ดแวร์และ OS/แอป หากไดรเวอร์ผิดปกติ จะมีปัญหากับแอปที่ใช้กราฟิกหนักทุกตัว วิธีนี้จะ Uninstall ไดรเวอร์เก่า แล้วติดตั้งใหม่

  1. ดาวน์โหลดติดตั้ง DDU (Display Driver Uninstaller) จากเว็บทางการ
  2. หลังติดตั้ง DDU บูทเข้า Safe Mode (ดูบทความบูท Safe Mode)
  3. เปิด DDU เลือก Clean and restart จะลบไดรเวอร์ปัจจุบันหมดวิธีแก้ไขข้อผิดพลาด  Unreal Engine is exiting due to D3D device being lost
  4. บูทปกติ (ไม่ Safe Mode) กด Windows + R พิมพ์ devmgmt.msc Enter คลิกขวาที่ว่าง เลือก Search for hardware changes ไดรเวอร์ Default จะติดตั้ง ลองเปิด Display Capture ดูว่าแก้ปัญหาหรือไม่
    หมายเหตุ: อาจต้องทำวิธี 1 อีกครั้งหลังขั้นนี้
  5. ส่วนใหญ่ Default driver ไม่พอ ให้อัปเดตผ่าน Windows Update หรือดาวน์โหลดจากเว็บผู้ผลิต
  6. ติดตั้งไดรเวอร์ใหม่ รีสตาร์ท ตรวจสอบว่าปัญหาแก้ไขหรือยัง

วิธีแก้ไข 8: ปิดโหมด Fullscreen

ลองปิด Fullscreen ในเกมที่เล่น เพราะมีรายงานว่า Windowed mode แก้ปัญหาได้ในบางเกม Unreal Engine

วิธีแก้ไข 9: ติดตั้ง DirectX ใหม่ และเปลี่ยนตั้งค่า FreeSync

หาวิธีข้างต้นไม่ได้ผล ลองติดตั้ง DirectX ใหม่ทั้งหมด และเปลี่ยนตั้งค่า FreeSync วิธีตรงไปตรงมา แต่ต้องติดตั้ง DirectX เองหลังดาวน์โหลดจากเว็บ

  1. ติดตั้ง DirectX ใหม่ รีสตาร์ทก่อนดำเนินต่อ
  2. หากมีจอ FreeSync ไปที่ GSync settings ผ่าน GeForce Experience
  3. ในตั้งค่า FreeSync monitor เปิด Enable for Full-Screen และติ๊ก Enable settings for selected Display
  4. รีสตาร์ทสมบูรณ์หลังเปลี่ยนตั้งค่า ตรวจสอบว่าปัญหาแก้ไขหรือยัง

สามารถทดสอบกับ Windowed mode ได้เช่นกัน