0
votes

I have an application that doesn't start with some Intel HD graphics drivers, as the crash (in ig4icd32.dll) can come before our 3D engine is initialized the safer way to show a popup to request to the user to update his driver is do it before the OpenGL is created.

So my question is how can I retrieve the driver information (vendor and version number) before the window is created?

PS: It only impact few users on thousand that use a very old version of driver that have a bug, with more recent driver there is no issue. The popup is intend to warn the user to make sure that he will update drivers.

Update: I took a look to dxdiag and device manager, the driver version they give for my Nvidia card doesn't match the one which is return by Nvidia with OpenGL

1
If your application crashes with a Intel OpenGL implementation that's a bug in your program. Don't shoehorn some kludge on it to show an error. Fix the bug in your program! - datenwolf
Sorry but it crash in ig4icd32.dll and updating the driver fix the issue. We found this issue with some specific chipsets and driver versions. If we can have bug in our program it can also have bug in drivers. - Xavier Bigand
@XavierBigand on the other hand, it could also be the newer driver that is more clever than the old one. Thus coming back to you having to fix the bug in your program. - vallentin
@XavierBigand: Most likely you're passing a buffer that's too small or with mismatched alignment to one of glTexImage…, glTexSubImage…, glBufferData…, glBufferSubData… or glShaderSource…, or you're using mapped buffers glMapBuffer/glUnmapBuffer and are writing outside the mapped boundaries. Use a debugger to obtain the strack backtrace when the crash happens and go bug hunting along the codepath in your program, that leads to the crash. - datenwolf
I can't debug, I get minidump files from Steam and I am unable to have a stack,... I prefer when bugs are on my side simply because it is simpler for us to debug them, trust me bugs dependencies is not fun to manage. - Xavier Bigand

1 Answers

0
votes

I found the solution here, I had to use with "Win32_VideoController" instead of "Win32_OperatingSystem" in the query.

And here is the list of fields we can query.

Be careful, the version number is the one that we can find in the device manager and it doesn't necessary match one given by Nvidia or AMD to the user.

PS: It may have simpler way to retrieve same data by using other APIs.