Unity Error - Failed to present D3D11 swapchain due to device reset/re,oved.this error can happen..

Unity Error – Failed to present D3D11 swapchain due to device reset/re,oved.this error can happen..

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

درمورد این خطا راه حل های مختلفی گفته شده،مثل غیر فعال کردن درایور گرافیک تا آپدیت درایورش و تغییر کلیدی داخل رجیستری که پایینتر توضیح میدم و ..

اما دو راه حل رو که بنظرم ارزش امتحان رو دارن معرفی میکنم(روش دوم روشیه که برام جواب داد) و ممکنه مشکل شما رو هم در این باره حل کنه.

روش دوم نیاز داره که داخل API های گرافیکی یونیتی بتونید API دایرکت اکس 11 رو اضافه کنید که احتمالا نیاز به پشتیبانی کارت گرافیکتون داشته باشه.

راه حل احتمالی اول ارور D3D11 swapchain

مورد اول اینکه با تغییر یک کلید داخل رجیستری مشکل رو رفع کنیم،کلیدی که باعث میشه یونیتی زمان بیشتری رو صبر کنه تا پردازش گرافیکی انجام بشه و خطای توقف نده،البته این روش برای من جواب نداد! اما در هر حال ممکنه براتون مفید باشه:

آدرس اون کلید رجیستری ویندوز اینه که مقدارش رو میشه به اعدادی بالاتر مثل 15 تغییر داد:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\TdrDelay

راه حل احتمالی دوم D3D11 swapchain (پیشنهادی)

و مورد دوم و چیزی که دوای این مشکل بوده تغییر API گرافیکی پروژه به دایرکت اکس 12 (DirectX 12) بجای بود

برای این کار وارد تنظیمات Player پروژه بشید:

Edit > Project Settings > Player

نکته: حتما و حتما توجه داشته باشید که این تنظیم روی پلتفرم کامپیوتر اعمال شه و این تغییر رو روی تنظیمات بیلد Android یا IOS اجرا نکنید

 

بعد از قسمت Other Settings تیک Auto Graphics API رو بر دارید و داخل لیستی که ایجاد میشه گزینه Direct3D12 رو اضافه کنید و اون رو به بالای لیست ببرید،بعد ادیتور نیاز به ریستارت پیدا میکنه که ریستارتش کنید و مجددا امتحان کنید!

 

نکته:

اگر انجین گرافیکی در حال حاضر برای پروژه شما روی DX12 بوده (که بنظرم احتمالش کمه چون فکر میکنم این ارور مختص نسخه 11 باشه) اون رو روی نسخه های گرافیکی مختلف تست کنید

 

موفق باشید 🙂