Re: [osg-users] Application Verifier failure (on Windows) with getSampleOpenGLContext(...)

2010-09-23 Thread Jesper D. Thomsen
I did a further bit of testing, and it seems to be a driver-related problem.
On the single ATI machine (winXP) I have available osgviewer runs fine under 
application verifier. On my main development machine (Vista64, FX2700M) I am 
able to get osgviewerd.exe to pass Application Verifier if I drop the Nvidia 
driver down to 179.76 (Dell ISV certified), but any driver after that (tested 
with 186.03 and up) seems to give the error in AppVerifier. As far as I can 
tell, there's no way to use OSG without calling ::ChoosePixelFormat and 
::SetPixelFormat, which are the two specific calls in getSampleOpenGLContext 
which are failing. If anyone has tried running AppVerifier successfully with a 
later nvidia driver revision, I would really like to hear about it.

Regards,

Jesper D. Thomsen
AnyBody Technology A/S
Denmark

From: osg-users-boun...@lists.openscenegraph.org 
[mailto:osg-users-boun...@lists.openscenegraph.org] On Behalf Of Jesper D. 
Thomsen
Sent: 21. september 2010 16:12
To: OpenSceneGraph Users (osg-users@lists.openscenegraph.org)
Subject: [osg-users] Application Verifier failure (on Windows) with 
getSampleOpenGLContext(...)

Hi all, I've just updated our OSG usage from 2.6.1 to 2.8.3 in the hopes of 
getting application verifier to accept our OSG usage. We previously had a 
problem with Application Verifier and OpenThreads in 2.6.1 but this has been 
fixed in 2.8.3, but we now experience a new problem.
Luckily it seems to happen with all OSG examples and not just our own 
application.

The setup:
I'm using Application Verifier (which we need our application to pass) on 
Windows Vista 64 SP2, Dell M6500 workstation with Quadro FX2700M graphics and 
driver revision 258.96. OSG has been built from source with Visual studio 2005 
SP1.
I'm testing osgviewerd.exe with Application Verifier default basic settings.

Observed problem:
Application Verifier breaks into the debugger during the call of 
CreateGraphicsContext() with last function call in OSG being
int pixelFormatIndex = ::ChoosePixelFormat(hdc, pixelFormat);
in osgViewer::Win32WindowingSystem::getSampleOpenGLContext().

All the OSG applications I have tested with Application Verifier breaks in 
ChoosePixelFormat, but I don't know if this could be an OSG problem, a hdc 
usage problem or an Nvidia driver problem.
I have also tried Application Verifier with osgviewerd.exe in OSG 2.9.8 with 
the same behavior.

The complete callstack for the breakpoint is:

 ntdll.dll!773a0004()
 [Frames below may be incorrect and/or missing, no 
symbols loaded for ntdll.dll]
ntdll.dll!77407c5c()
 
vfbasics.dll!AVrfpVectoredExceptionHandler(_EXCEPTION_POINTERS * 
ExceptionPointers=0x00dad994)  Line 460
ntdll.dll!773ea4df()
 ntdll.dll!773d4461()
 ntdll.dll!773d4505()
 ntdll.dll!773ae49f()
 nvoglv32.dll!69d786c1()
 nvoglv32.dll!69d786c1()
 ntdll.dll!773ba957()
 ntdll.dll!773baaad()
 ntdll.dll!774319fe()
 osgviewerd.exe!mainCRTStartup()  Line 414  
 C
ntdll.dll!7741c1da()
 ntdll.dll!7741c20b()
 ntdll.dll!7741c20b()
 ntdll.dll!7741c449()
 vfbasics.dll!AVrfLogInTracker(_AVRF_TRACKER * 
Tracker=0x, unsigned short EntryType=1, void * EntryParam1=0x04ba6d40, 
void * EntryParam2=0x0080, void * EntryParam3=0x04ba, void * 
EntryParam4=0x6935bd2e, void * ReturnAddress=0x69351556)  Line 300 + 0x10 bytes
vfbasics.dll!AVrfpRtlAllocateHeap(void * 
Heap=0x69351137, unsigned long Flags=1765138528, unsigned long Size=769)  Line 
256
00dadf98()
vfbasics.dll!AVrfpTlsGetValue(unsigned long 
dwTlsIndex=4294967295)  Line 426
nvoglv32.dll!69b2561d()
 nvoglv32.dll!69b2a5e0()
 nvoglv32.dll!69d42336()
 verifier.dll!6bd559c9()
 
vrfcore.dll!VfCoreStandardDllEntryPointRoutine(void * DllHandle=0x6950, 
unsigned long Reason=1, _CONTEXT * Context=0x)  Line 558 + 0xc bytes
vfbasics.dll!AVrfpStandardDllEntryPointRoutine(void 
* DllHandle=0x6950, unsigned long Reason=1, _CONTEXT * Context=0x)  
Line 787 + 0xa bytes
ntdll.dll!773d919c()
 ntdll.dll!773c48e7()
 ntdll.dll!773ef7eb()
 ntdll.dll!773c446d()
 ntdll.dll!773c3f00

[osg-users] Application Verifier failure (on Windows) with getSampleOpenGLContext(...)

2010-09-21 Thread Jesper D. Thomsen
Hi all, I've just updated our OSG usage from 2.6.1 to 2.8.3 in the hopes of 
getting application verifier to accept our OSG usage. We previously had a 
problem with Application Verifier and OpenThreads in 2.6.1 but this has been 
fixed in 2.8.3, but we now experience a new problem.
Luckily it seems to happen with all OSG examples and not just our own 
application.

The setup:
I'm using Application Verifier (which we need our application to pass) on 
Windows Vista 64 SP2, Dell M6500 workstation with Quadro FX2700M graphics and 
driver revision 258.96. OSG has been built from source with Visual studio 2005 
SP1.
I'm testing osgviewerd.exe with Application Verifier default basic settings.

Observed problem:
Application Verifier breaks into the debugger during the call of 
CreateGraphicsContext() with last function call in OSG being
int pixelFormatIndex = ::ChoosePixelFormat(hdc, pixelFormat);
in osgViewer::Win32WindowingSystem::getSampleOpenGLContext().

All the OSG applications I have tested with Application Verifier breaks in 
ChoosePixelFormat, but I don't know if this could be an OSG problem, a hdc 
usage problem or an Nvidia driver problem.
I have also tried Application Verifier with osgviewerd.exe in OSG 2.9.8 with 
the same behavior.

The complete callstack for the breakpoint is:

 ntdll.dll!773a0004()
 [Frames below may be incorrect and/or missing, no 
symbols loaded for ntdll.dll]
ntdll.dll!77407c5c()
 
vfbasics.dll!AVrfpVectoredExceptionHandler(_EXCEPTION_POINTERS * 
ExceptionPointers=0x00dad994)  Line 460
ntdll.dll!773ea4df()
 ntdll.dll!773d4461()
 ntdll.dll!773d4505()
 ntdll.dll!773ae49f()
 nvoglv32.dll!69d786c1()
 nvoglv32.dll!69d786c1()
 ntdll.dll!773ba957()
 ntdll.dll!773baaad()
 ntdll.dll!774319fe()
 osgviewerd.exe!mainCRTStartup()  Line 414  
 C
ntdll.dll!7741c1da()
 ntdll.dll!7741c20b()
 ntdll.dll!7741c20b()
 ntdll.dll!7741c449()
 vfbasics.dll!AVrfLogInTracker(_AVRF_TRACKER * 
Tracker=0x, unsigned short EntryType=1, void * EntryParam1=0x04ba6d40, 
void * EntryParam2=0x0080, void * EntryParam3=0x04ba, void * 
EntryParam4=0x6935bd2e, void * ReturnAddress=0x69351556)  Line 300 + 0x10 bytes
vfbasics.dll!AVrfpRtlAllocateHeap(void * 
Heap=0x69351137, unsigned long Flags=1765138528, unsigned long Size=769)  Line 
256
00dadf98()
vfbasics.dll!AVrfpTlsGetValue(unsigned long 
dwTlsIndex=4294967295)  Line 426
nvoglv32.dll!69b2561d()
 nvoglv32.dll!69b2a5e0()
 nvoglv32.dll!69d42336()
 verifier.dll!6bd559c9()
 
vrfcore.dll!VfCoreStandardDllEntryPointRoutine(void * DllHandle=0x6950, 
unsigned long Reason=1, _CONTEXT * Context=0x)  Line 558 + 0xc bytes
vfbasics.dll!AVrfpStandardDllEntryPointRoutine(void 
* DllHandle=0x6950, unsigned long Reason=1, _CONTEXT * Context=0x)  
Line 787 + 0xa bytes
ntdll.dll!773d919c()
 ntdll.dll!773c48e7()
 ntdll.dll!773ef7eb()
 ntdll.dll!773c446d()
 ntdll.dll!773c3f00()
 ntdll.dll!773c48c6()
 ntdll.dll!773c4553()
 ntdll.dll!773c436d()
 ntdll.dll!773c24be()
 ntdll.dll!773c2757()
 ntdll.dll!773c27be()
 ntdll.dll!773baeca()
 vfbasics.dll!AVrfpLeakLogResource(void * 
Resource=0x7741c449, _RESOURCE_RECORD_TYPE ResourceType=37459248, void * 
ReturnAddress=0x0023, void * Context=0x00db)  Line 1316 + 0xd bytes
ntdll.dll!7741c20b()
 vfbasics.dll!AVrfLogInTracker(_AVRF_TRACKER * 
Tracker=0x, unsigned short EntryType=3, void * EntryParam1=0x00194ac8, 
void * EntryParam2=0x092e, void * EntryParam3=0x0014, void * 
EntryParam4=0x1018, void * ReturnAddress=0x69351668)  Line 300 + 0x10 bytes
vfbasics.dll!AVrfpRtlFreeHeap(void * 
Heap=0x0014, unsigned long Flags=0, void * Address=0x00194ac8)  Line 354
kernel32.dll!75634132()