Starting PVRTraceGUI broke Ogre3D + PowerVR OpenGL ES 2.0 emulation?
So you’re probably not going to believe me, but I have done this twice: once accidentally and once on purpose.
For the past few months, I have been working on a project using Ogre3D 1.9 with the PowerVR OpenGL ES 2.0 emulation libraries (Additional environment details: windows 7, visual c++ 10).
A couple of days ago, I was working on a shader using PVRShaman. After encountering a problem, I decided to try PVRTraceGUI for the first time. Just started the program, hit cancel on the update prompt, clicked around the menus, opened up tools->remote controller, tools->preferences, but didn’t start/change anything. I didn’t end up even trying a trace, because I was looking more for a shader debugger than tracing api calls.
The next day, my project using Ogre3D/PowerVR no longer worked properly: basically eglChooseConfig returns 0 configs and then eglCreateWindowSurface gets passed a null config and cannot create a surface. But I hadn’t made any changes to it since it last worked.
At this point, I should mention that I currently have PowerVR SDK 3.1 installed, but I compiled Ogre3D with a previous version of the SDK: not sure which one: 3.0 or 2.X…
So I do a lot of debugging, uninstall recent windows patches, turn off my anti-virus, etc… and I can’t figure out what changed to my environment to cause my project to no longer work.
I have a 2 month old clone of my PC on another hard disk. So I boot up on this hard disk, try my current project, and it runs without errors.
In the back of my mind, I had been suspecting the PVRTraceGUI might be involved somehow. So after checking that my project works properly in this environment a few times, I close vc10, start PVRTraceGUI (on this hard disk it is the first time I am starting it), do the same sequence of benign commands listed above, close PVRTraceGUI, open up vc10, run my project and BAM! it no longer works. Again eglChooseConfig returns 0 configs and then eglCreateWindowSurface cannot create a surface.
So my conclusion is that starting PVRTraceGUI for the first time had some sort of side effect on my environment, which caused my project to no longer work with the older emulation libraries. Like maybe it adds a registry entry or installs a dll somewhere, which creates a conflict with the older emulation libraries…
I’d really appreciate it if anyone could tell me what this side effect might be and how I could undo it…
I tried uninstalling PowerVR SDK 3.1, but that did not help.
Thanks for any help,
MAV
Well after a bit of time and effort I managed to recompile Ogre3D using the 3.1 SDK and now everything works again.
Hi,
Sorry to hear you hit this problem. You are correct to assume that PVRTraceGUI can affect your PVRVFrame configuration. When PVRTraceGUI launches, it changes PVRVFrame’s device profile to “Host (OpenGL)” to ensure the required features will be supported. When PVRTraceGUI closes, it should revert your PVRVFrame device Profile. However, there were some known bugs in this reverting process which have since been fixed in our latest release. I’d recommend using PVRVFrame GUI to ensure the selected device Profile is valid & also suggest moving to our latest version of PVRTraceGUI
Regards,
Joe