🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Device removed after reseting renderer on low-end laptop. How to purge?

Started by
1 comment, last by lubbe75 3 years, 2 months ago

I have this peculiar error. In my renderer (built on Dx12 via SharpDX) I upload vertex data, textures etc to the GPU via command lists. Typically by calling commandList.CopyBufferRegion() followed by commandList.Close().

I could give you more specific code but the problem seems general.

When I start the renderer everything works fine. When I reset the renderer (disposing the device and all, but without killing the app itself), followed by uploading the data again, it also works fine on a fairly modern machine. Everything initiates fine and I can continue rendering. But when I do the same on an old laptop with some integrated Iris GPU I often get an exception telling me that the device was removed when I reach the commandList.Close() part. Checking the reason why the device was removed, it says it was an internal error. It doesn't happen every time, but most of the time. It can also happen when I try to upload texture data after the reset.

There is no driver update for this laptop, and it is quite old. Yet, it seems to run ok until I attempt to reset the renderer. I'm thinking that somehow things / states on the GPU are not cleared properly every time. That said I'm lost for ideas on how to solve this. Is there a proper way to make sure a GPU is "purged" when reseting a renderer?

Advertisement

Could it be some resource conflict that doesn't occur on discrete GPUs with its own dedicated memory? At least that would explain why it only happens after it has done some rendering, only sometimes, and only on the old laptop.

This topic is closed to new replies.

Advertisement