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!