Reset Device?!!

This question is more about internal of the GL vs. D3D implementation.

While working on a project that uses both APIs, when resizing the rendering window too fast in D3D it crashes at Reset device. This does not happen in OpenGL, where there’s no Reset.
I’m wondering what’s the point of Reset device/resources explicitly while I beleive this can be done implicitly by the driver, like in OpenGL. Correct me if I’m wrong but this can create stability issues…

Is there an equivalent of Reset device in GL I’m not aware of?

Does this mean D3D is more suited for single full screen window rendering like in video games?


D3D takes this approach: you’re short on RAM, reset-device happens rarely, so the developer should reload things from file; there’s also the option to have D3D manage (keep a copy in RAM) a texture/etc.
“Direct” is the keyword in Direct3D :slight_smile:

OpenGL manages everything for you, regardless if you like it or not:
-it will take more RAM that you could have saved otherwise,
-it could delay upload of a texture/buffer
… but it’s not like games/apps have over 1GB of texture-data; and users nowadays increasingly switch between game’s screen and another app.

But this “Direct” Reset command is deprecated in D3D10 and 11 :slight_smile:

Does this mean D3D is becoming less “Direct” and adopting OpenGL mechanism?

Yup, along with the extra FIFO. DX10+ virtualize VRAM, just/almost like GL has been doing; afaik.