• Advertisement
Sign in to follow this  

Device Lost

This topic is 432 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

IDXGISwapChain::Present() may return one of error codes:

DXGI_STATUS_OCCLUDED                          (PC only?)

DXGI_ERROR_DEVICE_RESET                   (UMD reset?)

DXGI_ERROR_DEVICE_REMOVED             (PC only?)

D3DDDIERR_DEVICEREMOVED                  (PC only?)

 

I assume that only UMD (user mode driver) error can issue error while normal gameplay, because kernel errors will bring BSOD.

 

Question1: How is it possible to trigger this events on my machine?

Is there a simpler way, than drivers update/physical device removal?

 

Question2:  It seems that XBO can return S_OK and DXGI_ERROR_DEVICE_RESET.

Is this correct?

 

Question3: Do AAA games handle this situation?

My current design: throw exception, and recreate entire device with resources (game state and renderer are independent from each other).

Is there a better way?

 

 

A little bit off-topic, but related to error in Present():

In my experience, AMD video cards have a lot of driver issues (I used 2 x5450 cards in order to use 4 monitors), and on my day-to-day office job (not 3D), I had several UMD resets a day until I replaced them with NVidia.

Quesion4: how good are last AMD cards and drivers now (like RX 460/480)?

 

Quesion5: on XBO, how good AMD drivers are there?

How rare is it not to receive S_OK from Present()?

 

Thanks in advance!

Edited by Happy SDE

Share this post


Link to post
Share on other sites
Advertisement
AMD is still crap most of it, and there is no amd driver on Xbox One, it is pure Microsoft code here :)

But it seems weird you get device removal, it is something most games does not even care to handle

Share this post


Link to post
Share on other sites

Question1: How is it possible to trigger this events on my machine?
Is there a simpler way, than drivers update/physical device removal?

Go to the Device Manager. Select the secondary GPU (i.e. I have a Radeon HD 7770 GPU and the Intel HD Integrated one), right click->Disable this device.

You must've created your D3D11 device to use the Intel HD card of course.
 

Question3: Do AAA games handle this situation?
My current design: throw exception, and recreate entire device with resources (game state and renderer are independent from each other).
Is there a better way?

AAA games usually don't care about this situation but other apps do.
For example we have a dev programmer who writes AR furniture software for your PC/tablet/Windows Phone and GPU resets are quite common for him. Sometimes it's crappy Windows Phone drivers, sometimes it's because of monitors getting literally unplugged (either via Windows + P key or by physically removing the cable), sometimes it's because of driver updates happening while the app is running, sometimes it's because the device switched power profiles (i.e. from discrete GPU to integrated GPU), sometimes it's because the phone/tablet entered suspension mode.
Obviously for an app that is used very often; such scenarios are very frequent and need to be addressed. It hurts his sales and reputation.
AAA games sit in a comfy place where they can ignore these issues because gamers are usually more tech savvy than average, will always choose the most powerful GPU, latest drivers, and will run your game exclusively (i.e. no Alt+Tabbing to other apps like Chrome which may crash your GPU).
 

A little bit off-topic, but related to error in Present():
In my experience, AMD video cards have a lot of driver issues (I used 2 x5450 cards in order to use 4 monitors), and on my day-to-day office job (not 3D), I had several UMD resets a day until I replaced them with NVidia.
Quesion4: how good are last AMD cards and drivers now (like RX 460/480)?

You were running pre-GCN cards; and their drivers sucked hard.
AMD has gotten much better at it. In fact I get more issues from NVIDIA users than from AMD.

Edited by Matias Goldberg

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement