DXGI_ERROR_DEVICE_REMOVED: علل، راه‌حل‌ها و راهنمای فنی کامل

آخرین به‌روزرسانی: ۰۱/۰۲/۲۰۲۴
نویسنده: دانیل تراسا

  • این خطا نشان‌دهنده‌ی از کار افتادن یا تنظیم مجدد پردازنده‌ی گرافیکی (GPU) است؛ و نیاز به ایجاد مجدد دستگاه و منابع دارد.
  • سایه‌ها، پوشش‌ها، AA تهاجمی، DSR و درایورهای ناپایدار اغلب باعث ایجاد آن می‌شوند.
  • تنظیمات TDR (TdrDelay/TdrDdiDelay یا TdrLevel) به علاوه درایورهای پاک‌کننده، پایداری را بهبود می‌بخشند.
  • در D3D11 شما باید خطا را پس از Present/ResizeBuffers ثبت کنید و HandleDeviceLost را مدیریت کنید.
خطای DXGI_ERROR_DEVICE_REMOVED

اگر روی کامپیوتر بازی می‌کنید، احتمالاً دیر یا زود با این پیام مواجه خواهید شد. خطای DXGI_ERROR_DEVICE_REMOVEDاین خطا ظاهراً به‌طور تصادفی ظاهر می‌شود، بازی را روی دسکتاپ متوقف می‌کند و شما را در وسط مسابقه با یک نگاه خالی رها می‌کند. اگرچه ممکن است ناامیدکننده به نظر برسد، اما چندین علت شناخته‌شده و تعداد زیادی راه‌حل وجود دارد که می‌توانید امروز پیاده‌سازی کنید.

در این راهنما، با جزئیات کامل و بدون اغراق، توضیح می‌دهم که این خطا به چه معناست، چرا اتفاق می‌افتد و چگونه می‌توان آن را از زوایای مختلف برطرف کرد: تنظیمات سیستم، درایورها، رجیستری ویندوز، پیکربندی بازی، و برای کسانی که با Direct3D 11 برنامه نویسی می‌کنند، کد کنترل قوی برای بازسازی دستگاه. همچنین موارد مربوط به بازیکنان واقعی، دستورالعمل‌های تشخیصی و هشدارهای مهم برای جلوگیری از خرابکاری را مشاهده خواهید کرد.

خطای DXGI_ERROR_DEVICE_REMOVED چیست و چرا نمایش داده می‌شود؟

اشتباه خطای DXGI_ERROR_DEVICE_REMOVED این نشان می‌دهد که پردازنده گرافیکی (GPU) دیگر برای برنامه در دسترس نیست، یا به این دلیل که سیستم آن را مجدداً راه‌اندازی کرده است (TDR)، یا درایور به‌روزرسانی شده است، یا کامپیوتر ... از گرافیک مجتمع به گرافیک اختصاصی تغییر یافته است یا به معنای واقعی کلمه، دستگاه قطع شده است. در Direct3D 11، حالت قدیمی "قطع شدن دستگاه" از D3D9 دیگر وجود ندارد، اما موجودی آداپتور ممکن است هنوز تغییر کند و دستگاه باید دوباره ساخته شود.

از جمله رایج‌ترین سناریوها می‌توان به موارد زیر اشاره کرد: ریست شدن پردازنده گرافیکی به دلیل خرابی درایور، به‌روزرسانی فوری درایور، تعویض فعال پردازنده گرافیکی در لپ‌تاپ‌ها، وقفه‌های زمانی به دلیل بارهای سنگین یا مشکلات پایداری به دلیل اورکلاک/دما. حتی چیزی به سادگی تغییر مانیتور یا تغییر اندازه یک پنجره می‌تواند وضعیت "قطع شدن دستگاه" را نشان دهد.

خطای DXGI_ERROR_DEVICE_REMOVED

علائم و پیام‌های معمولی که مشاهده خواهید کرد

نشانه معمول، خرابی دسکتاپ با کادر محاوره‌ای موتور بازی مانند این است: خطای مهلک – خطای موتور و رشته‌ی «:0x887A0005». در بعضی بازی‌ها این هشدار در حالت تمام صفحه پنهان است؛ بازی را اجرا کنید. حالت پنجره‌ای این می‌تواند به تجسم آن کمک کند. نمایش پیام‌های عمومی مانند موارد زیر در Event Viewer غیرمعمول نیست. «فیلتر سیستم فایل 'EasyAntiCheat_EOSSys' (...) با موفقیت بارگیری شد» که ریشه مشکل نیستند.

یکی دیگر از علائم رایج این است که بعد از ۱ تا ۴ ساعت بازی شدید، بازی به سادگی بسته می‌شود و وقتی دوباره آن را باز می‌کنید، همه چیز در Device Manager عادی به نظر می‌رسد. و در گزارش‌های کنترلر، هیچ خطای بحرانی آشکاری وجود ندارد. در برخی موارد، خطاهای اضافی نیز ظاهر می‌شوند نقض دسترسی استثناییکه باید به عنوان یک مسئله جداگانه از DXGI در نظر گرفته شود.

علل رایجی که باید در نظر بگیرید

اگرچه این فهرست کامل نیست، اما موارد زیر بیشترین تکرار را دارند: درایورهای ناپایدار یا ناسازگار، اورکلاک پردازنده گرافیکی/حافظه ویدیویی/پردازنده دمای بالاعملکردهای ضبط/سایه‌زنی پس‌زمینه، تنظیمات گرافیکی تهاجمی (AA، DSR، 4K@165 Hz)، برنامه‌نویسی بازی (دسته‌ای از دستورات که درایور را هنگ می‌کنند) و در لپ‌تاپ‌ها، تغییرات در آداپتور فعال. ترکیبی از چندین عامل معمولاً باعث ... می‌شود. تایم اوت یا کنترلر "قطع" شود.

محتوای اختصاصی - اینجا را کلیک کنید  اینتل برای تقویت تولید، همکاری با TSMC را بررسی می‌کند

سیستم نیز نقشی ایفا می‌کند: ویژگی زمانبندی GPU با شتاب سخت‌افزاری (HAGS) گاهی اوقات این مشکل پایداری سیستم را بدتر می‌کند، بنابراین غیرفعال کردن آن اولین قدم خوب است. و توجه داشته باشید که به‌روزرسانی درایور در پس‌زمینه می‌تواند بدون اینکه شما متوجه شوید، باعث این خطا شود. درست پس از راه‌اندازی مجدد یا بازگشت از حالت خواب.

GeForce Experience نمی‌تواند بازی‌های شما را پیدا کند

راه حل های سریع که ارزش امتحان کردن را دارند

قبل از پرداختن به هر چیز جدی، خرافات را کنار بگذارید و با اصول اولیه و راه‌حل‌های ایمن شروع کنید. برخی از اقدامات ساده عبارتند از: غیرفعال کردن پوشش درون بازی (ShadowPlay/پوشش درون بازی GeForce Experience)محدود کردن FPS یا کاهش مشخصات گرافیکی به میزان یک واحد، نتایج شگفت‌انگیزی به همراه دارد:

  • غیرفعال کردن پوشش درون بازی de تجربه جی‌فورسGeForce Experience را به عنوان مدیر باز کنید، به بخش عمومی بروید و گزینه «In-Game Overlay/Share» را غیرفعال کنید.
  • سعی کنید بازی کنید حالت پنجره‌ای یا بدون حاشیه برای مشاهده پیام خطا و کاهش تغییرات حالت صفحه نمایش.
  • موقتاً کاهش می‌دهد وضوح تصویر، نرخ تازه‌سازی و حذف DSR اگر شما رزولوشن ۳۸۴۰ در ۲۱۶۰ را روی یک مانیتور ۱۰۸۰p اعمال می‌کنید، به این دلیل است که این کار به روند پردازش فشار می‌آورد.
  • غیرفعال کردن HAGS: تنظیمات ویندوز > سیستم > نمایشگر > گرافیک > تنظیمات پیش‌فرض گرافیک > برنامه‌نویسی GPU با شتاب‌دهی سخت‌افزاری در حالت خاموش.

اگر اوضاع به این شکل تثبیت شد، می‌دانید چه اتفاقی دارد می‌افتد؛ اگر نه، وقتشه آستین بالا بزنیم و بخش های بعدی را ادامه دهید.

تنظیمات رجیستری TDR: دو رویکرد ایمن (با احتیاط)

ویندوز مکانیزمی به نام TDR (تشخیص و بازیابی زمان اتمام) که اگر زمان پاسخگویی پردازنده گرافیکی (GPU) خیلی طولانی شود، آن را مجدداً راه‌اندازی می‌کند. می‌توانیم زمان‌بندی آن را تنظیم کنیم تا بارهای سنگین را تحمل کند. دو رویکرد توسط انجمن و راهنماهای فنی گزارش شده است: افزایش زمان‌بندی با TdrDelay و TdrDdiDelayیا تنظیم کنید TdrLevelمهم: تغییر رجیستری ریسک دارد؛ قبل از تغییر هر چیزی، یک نسخه پشتیبان تهیه کنید.

هشدار مهم: اگر از کاری که انجام می‌دهید مطمئن نیستید، ادامه ندهید.یک تغییر نادرست در رجیستری می‌تواند ویندوز را از کار بیندازد. قبل از ادامه، با استفاده از این دستور در خط فرمان به عنوان مدیر، یک کپی از آن تهیه کنید:

reg export "HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers" "%USERPROFILE%\Desktop\GraphicsDrivers.reg" /y

روش ۱: افزایش زمان با TdrDelay و TdrDdiDelay

ترفندی که کل جلسات را برای بیش از یک نفر ذخیره کرده است، شامل اضافه کردن دو مقدار DWORD (32 بیتی) در زیر است HKLM\SYSTEM\CurrentControlSet\Control\GraphicsDrivers با مقدار هگزادسیمال 3c (60)این روش به افرادی که قبلاً بعد از ۳-۴ دقیقه از بازی خارج می‌شدند، اجازه داده است تا ساعت‌ها بازی کنند. اگرچه سایر خرابی‌ها مانند «نقض دسترسی استثنا» را برطرف نمی‌کند..

  1. منوی استارت را باز کنید، تایپ کنید رجیستر و وارد ویرایشگر رجیستری شوید.
  2. در نوار آدرس پیست کنید: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers.
  3. در پنل سمت راست، کلیک راست کنید > جدید > مقدار DWORD (32 بیتی)، نام ببرید TdrDdiDelay.
  4. آن را باز کنید، مبنای هگزادسیمال را انتخاب کنید و قرار دهید 3c به عنوان داده‌های ارزشی (معادل ۶۰ ثانیه).
  5. تکرار ایجاد TdrDelay با همان ارزش 3c.
  6. تأیید کنید که هر دو وجود دارند و رایانه خود را مجدداً راه اندازی کنید تا تغییرات اعمال شود.
محتوای اختصاصی - اینجا را کلیک کنید  AMD قابلیت FSR Redstone و FSR 4 Upscaling را فعال می‌کند: این قابلیت، بازی را در کامپیوتر تغییر می‌دهد

ایده این است که ویندوز قبل از اینکه پردازنده گرافیکی را به عنوان پردازنده‌ای که بیش از حد بارگذاری شده در نظر بگیرد، مدت زمان بیشتری صبر کند. در شرایط کاری بسیار سنگین، آن یک دقیقه اضافی می‌تواند از خرابی‌ها جلوگیری کند. ریست خودکار و اخراج از بازیاگر هیچ بهبودی مشاهده نکردید، تغییر را لغو کنید یا روش بعدی را امتحان کنید.

روش ۲: تنظیم TdrLevel

راهنمای دیگر پیشنهاد می‌کند که مقدار DWORD ایجاد کنید TdrLevel برای تغییر رفتار TDR، در همان مسیر رجیستری، آن را به ۰ تغییر دهید. فرآیند مشابه است اما فقط یک مقدار دارد:

  1. En Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDriversکلیک راست > جدید > DWORD (32 بیت).
  2. یه اسم براش بذار TdrLevel و مقدار را برابر با قرار می‌دهد 0.
  3. ذخیره و راه اندازی مجدد ویندوز.

هر بار فقط یک رویکرد را اعمال کنید و آن را آزمایش کنید. اگر چیزی بدتر شد، با بازیابی نسخه پشتیبان، به حالت قبل برگردید. رکورد کاری که در ابتدا انجام دادید.

تنظیمات NVIDIA: ShadowPlay و Anti-Aliasing

ضبط/پوشش پس‌زمینه می‌تواند تداخل ایجاد کند. علاوه بر پوشش، یک اهرم جالب دیگر نیز وجود دارد: غیرفعال کردن Anti-Aliasing سراسری از کنترل پنل NVIDIA. از نظر بصری ایده‌آل نیست، اما به عنوان یک تست پایداری مؤثر است.

  • کنترل پنل انویدیا > مدیریت تنظیمات سه بعدی > پیکربندی سراسری.
  • غیرفعال کردن همه گزینه‌ها برای ضد آلیاسینگ (خاموش) و اعمال می‌شود.
  • بررسی کنید که آیا بازی شروع به کار را متوقف می‌کند یا خیر. دی‌اکس‌جی‌آی بعد از چند بازی پشت سر هم.

اگر این مشکل را برطرف کرد، می‌توانید AA را در حالت «برنامه کنترل‌شده» بازیابی کنید یا از ... استفاده کنید. کیفیت متوسطو آن را با محدودیت FPS ترکیب کنید تا خط لوله را تثبیت کنید.

دی دی یو

درایورها: کاملاً دوباره نصب کنید یا به نسخه قبلی برگردید

بیشتر موارد با نصب مجدد و تمیز درایور GPU حل می‌شوند. مطمئن‌ترین روش استفاده از DDU (Display Driver Uninstaller) در حالت ایمن (Safe Mode)، فایل‌های باقی‌مانده را حذف کرده و سپس درایور پیشنهادی را نصب کنید. اگر قبلاً این کار را بدون موفقیت انجام داده‌اید، یک گام مفید این است که... بازگشت به راننده قبلی از Device Manager. اگر از AMD استفاده می‌کنید، ببینید مشکلات ناشی از AMD آدرنالین که ممکن است در حین نصب اختلال ایجاد کنند.

  • مدیریت دستگاه > آداپتورهای نمایشگر > پردازنده گرافیکی شما > ویژگی‌ها > برگه درایور.
  • استفاده کنید برگشت به عقب اگر فعال باشد.
  • اگر این کار نکرد، «به‌روزرسانی درایور» > «جستجوی خودکار درایورها» را امتحان کنید، یا نسخه‌ای را به‌صورت دستی نصب کنید به خاطر ثباتش شناخته شده است.

بعد از هرگونه تغییر درایور، سیستم را مجدداً راه‌اندازی و بررسی کنید. از به‌روزرسانی درایور درست قبل از یک جلسه طولانی خودداری کنیدبهتر است به طور خلاصه آزمایش کنید و مطمئن شوید که نه DXGI و نه "Device Hung" ظاهر نمی‌شوند.

تنظیمات بازی و سیستم که تفاوت‌های زیادی ایجاد می‌کنند

فراتر از درایورها و ثبت‌نام، پیکربندی صحیح پارامترهای بازی و سیستم کلیدی است. ترکیب 4K، 165Hz و DSR در یک مانیتور Full HD یک نمونه کلاسیک از ... است. بی‌ثباتی متناوباین قابلیت، رزولوشن اصلی مانیتور را کاهش می‌دهد، FPS را محدود می‌کند و اوج بار پردازنده گرافیکی را کاهش می‌دهد.

  • استفاده کنید وضوح بومی مانیتور (مثلاً ۱۹۲۰×۱۰۸۰ اگر پنل شما ۱۰۸۰p است) و DSR را غیرفعال کنید.
  • برای جلوگیری از افزایش ناگهانی نرخ فریم، نرخ فریم را در داخل بازی یا توسط راننده (مثلاً ۱۴۴ یا ۱۲۰) محدود کنید. اوج‌ها در ۱۶۵ هرتز آنها می‌توانند صف فرمان را اشباع کنند.
  • سعی کنید از V-Sync یا G-Sync/Freesync با پیکربندی صحیح استفاده کنید؛ از تغییر مکرر حالت صفحه نمایش خودداری کنید.
  • اگر پردازنده گرافیکی/حافظه ویدیویی/پردازنده خود را اورکلاک کرده‌اید، تنظیمات را کاهش دهید. فرکانس‌های سهام یا حتی یک افت ولتاژ کوچک.
محتوای اختصاصی - اینجا را کلیک کنید  AMD Ryzen 7 9850X3D: مدعی جدید تاج و تخت بازی

در بعضی از بازی‌ها، اجرا در حالت پنجره‌ای به شما این امکان را می‌دهد که هنگام از بین رفتن تمام صفحه، هشدار DXGI را مشاهده کنید. برای مثال، یک بازیکن بازی را اجرا کرد. «r5apex_dx12.exe» با استدلال -steam +fps_max unlimited -game R2 و فقط در پنجره می‌توانستیم خطا را بخوانیم؛ تغییرات حالت کوچک آنها در بازتولید خطا تفاوت ایجاد می‌کنند.

چک لیست بهترین شیوه‌ها برای به حداقل رساندن DXGI

بیایید با خونسردی، یک ترتیب منطقی برای مقابله با این مشکل را بدون اینکه خودتان را دیوانه کنید، بررسی کنیم. ایده این است که از کم‌تهاجمی‌ترین به فنی‌ترین بروید. آزمایش بین هر مرحله:

  • overlay/ShadowPlay و هرگونه ضبط‌کننده‌ی بلادرنگ را حذف کنید؛ HAGS را غیرفعال کنید.
  • از پنل NVIDIA از وضوح تصویر اصلی، محدودیت FPS و AA متوسط ​​یا غیرفعال استفاده کنید.
  • دما را بررسی کنید، اورکلاک‌ها را حذف کنید و در صورت عدم نیاز مبرم، از افزایش ناگهانی بار در فرکانس ۱۶۵ هرتز جلوگیری کنید.
  • درایور را با استفاده از DDU دوباره نصب کنید؛ اگر جواب نداد، یک ... را امتحان کنید درایور پایدار قبلی و اعتبار
  • فقط اگر ادامه داشت، یکی از موارد زیر را اعمال کنید تنظیمات TDR از رجیستری گرفته شده و چندین ساعت ارزیابی می‌شود.
  • اگر توسعه می‌دهید، مسیر [مربوط به] هندل دیوایس گم شد، GetDeviceRemovedReason و با dxcap -forcetdr امتحان کنید.

در حین آزمایش، بازی را در حالت پنجره‌ای یا بدون حاشیه نگه دارید تا پیام‌ها را مشاهده کنید و نسخه‌ها را یادداشت کنید. فرکانس ظاهر و تغییرات ایجاد شده. این قابلیت ردیابی باعث صرفه‌جویی در وقت شما خواهد شد.

چه زمانی مشکل را تشدید کنیم

اگر بعد از امتحان کردن همه موارد بالا، همچنان با دریافت‌های مکرر مواجه شدید، وقت آن رسیده که مشکل را پیگیری کنید. یک تیکت پشتیبانی با پشتیبانی از بازی گزارش‌ها، DxDiag، اطلاعات درایور، مراحل دقیق و اینکه آیا خطا با overlay/HAGS رخ می‌دهد یا بدون آن را ارائه دهید. همین کار را با پشتیبانی سازنده پردازنده گرافیکی اگر به نسخه خاصی از درایور مشکوک هستید. در سخت‌افزار جدید، یک مورد دیگر را نیز امتحان کنید معیار پایدار (بدون افتادن در DXGI) برای رد کردن نقص‌های فیزیکی.

در محیط‌های توسعه، a تولید می‌کند. تصویربرداری تشخیصی با استفاده از ابزارهای گرافیکی، TDR را با dxcap فعال کنید و مسیر را وصل کنید؛ این کار کار را برای مهندسی که باید آن را بازتولید کند آسان‌تر می‌کند و شانس موفقیت شما را افزایش می‌دهد. یک اصلاحیه مفید دریافت کنید.

با توجه به تمام موارد فوق، شما طیف کاملی از علل و راه‌حل‌ها را برای مقابله با ... دارید. خطای DXGI_ERROR_DEVICE_REMOVEDاز غیرفعال کردن همپوشانی‌ها و کاهش بارهای ناگهانی گرفته تا نصب مجدد یا بازگرداندن درایورها، تنظیم دقیق TDR در رجیستری و اگر برنامه‌نویسی می‌کنید، پیاده‌سازی منطق بازیابی و تشخیص دستگاه با GetDeviceRemovedReason و dxcap. هیچ راه حل جادویی وجود ندارد، اما یک راه وجود دارد. مسیر منظم برای بهبودی از جلسات طولانی و بدون اینکه در نیمه راه بمانید، ثبات را به بازی خود بازگردانید.

پیام گم شدن دستگاه در موتور Unreal
مقاله مرتبط:
توضیح پیام گم شدن دستگاه در موتور بازی‌سازی آنریل: علل و راه‌حل‌های واقعی