Imagination PowerVR SDK Blog

PVR: Failed to set pixel format for dummy PFD


#1

I’m trying to create a project based on OGLES2HelloTriangle for the OpenGL ES 2.0 windows emulator. The OGLES2HelloTriangleproject works fine, but if I create a new project with the same code I get this exception thrown, before WinMain is even called.

First-chance exception at 0x7c919fca in racoon2_0.exe: 0xC0000005: Access violation writing location 0x00000010.
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32MSCTF.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32opengl32.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32glu32.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32ddraw.dll’
‘racoon2_0.exe’: Loaded 'C:WINDOWSsystem32dciman32.dll’
First-chance exception at 0x7c919fca in racoon2_0.exe: 0xC0000005: Access violation writing location 0x00000010.
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32opengl32.dll’
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32ddraw.dll’
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32dciman32.dll’
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32glu32.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32opengl32.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32glu32.dll’
‘racoon2_0.exe’: Loaded ‘C:WINDOWSsystem32ddraw.dll’
‘racoon2_0.exe’: Loaded 'C:WINDOWSsystem32dciman32.dll’
First-chance exception at 0x7c919fca in racoon2_0.exe: 0xC0000005: Access violation writing location 0x00000010.
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32opengl32.dll’
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32ddraw.dll’
‘racoon2_0.exe’: Unloaded ‘C:WINDOWSsystem32dciman32.dll’
‘racoon2_0.exe’: Unloaded 'C:WINDOWSsystem32glu32.dll’
PVR: Failed to set pixel format for dummy PFD
First-chance exception at 0x7c812afb in racoon2_0.exe: Microsoft C++ exception: std::runtime_error at memory location 0x0012f89c…
First-chance exception at 0x7c967406 in racoon2_0.exe: 0xE06D7363: Microsoft C++ Exception.
Unhandled exception at 0x7c967406 in racoon2_0.exe: 0xE06D7363: Microsoft C++ Exception.
The program ‘[4072] racoon2_0.exe: Native’ has exited with code 0 (0x0).


Anyone know what I’m doing wrong?





#2

I finally figured out how to reproduce the bug.
Put the following lines in the InitView method in any of the training projects:

#include <shlobj.h>

    char buffer[MAX_PATH];
    SHGetSpecialFolderPath(NULL, buffer, CSIDL_APPDATA, false);

now you will get an exception thrown before WinMain is even called

This seems like a bug in the Windows emulator.







#3

Hey,
I have a similar problem but with Nokia’s Simulator running code compiled in QTCreator. Any chance for a fix? ANY OpenGLES applications (demos / non demos) will fail with the same error.




#4

Unfortunately, I never found a solution. I just switched to using GLEW instead


#5

Hi Lefty, tkastlunger

Sorry for the really late reply on this, we tried reproducing the problem but haven’t been able to. I can think of maybe one thing that could cause the error but I have no way of verifying it at the moment:

If you’re using a different Visual Studio, it could potentially throw an error, because VFrame uses the same libraries as you’ve called but from a different revision of VS. We use Visual Studio 2010 SP1 to compile the VFrame libraries, if you use a non-patched VS2010 (or possibly VS2012) this may throw the exception you see.

I believe this can also occur if a header redefines system operators (such as “operator new”) which could explain your problem tkastlunger; try moving the include file alternately before/after other include files - I believe Qt headers redefine new, so should generally be the last files you include.

Regards,
Tobias




#6

I am using VS 2008. I don’t use Qt.
I tried change order of includes, but it makes no difference




#7

Hi lefty,

Ah right, then it’ll just be that you’re using VS2008, I thought VS would give a better error message than that, but apparently not. Upgrading to VS2010 would solve the problem, otherwise I’m not sure there’s anything else we can do at the minute. It’s unfortunately a limitation of Visual Studio with the way we’ve built it. It might be possible to solve this in future revisions though, so I’ll raise a bug and see if there’s something we can do in future to alleviate this.

Thanks,
Tobias




#8

Ok, thanks for the answer