Hi guys,
After a lot of search I have been able to get the OpenCL/OpenGL Interop working with the HD4000 WITHOUT deactivating my NVidia card.
The pain is caused by the fact that Microsoft doesn't want to change the way they load OpenGL ICDs. So right now they decide somehow with no control from the ICD providers.
So in my case I was ending up with NVidia ICD loaded and no matter what I was doing the OpenGL/OpenCL interop would fail because the contexts were not on the same device.
I have found in some forum that the only way is to actually load the ICD you want BEFORE the OpenGL32.dll.
The only way I have found so far is to put any DLL using OpenGL (OpenGL itself, Glut,GLEW etc..) as delayed loaded.
Then in my App InitInstance I load the Intel ICD with LoadLibrary("ig7icd32.dll") .
OpenGL32.DLL when loading detects that the ICD is already loaded and uses the one loaded instead of the one it would be default.
And now I can work on my OpenCL with OpenGL app without having to disable the NVidia Card.
If you have encountered the same issue, then this might be a solution for you.
Laurent