1 Reply Latest reply on Jan 3, 2011 7:53 AM by himanshu.gautam

    ATI Stream Bug

    vautieri
      cl::Platform::get(&allPlatforms); crashes with 2 cards, ATI/AMD and NVIDIA

       

       

      I have no idea how for back this bug goes with AMD/ATI, but if I run in the debugger I do not crash on cl:latform::get.  I have narrowed it down to this call in cl.hpp

      cl_int err = ::clGetPlatformIDs(0, NULL, &n);

      I have an HD3400 ATI/AMD card and an NVIDIA 8800.  My monitor is currently connected to the NVIDIA card, having no monitor connected to the ATI/AMD card.  Please keep in mind if I run in the VS2005 debugger, the ATI/AMD dll/ does not crash with the exception below, and I only see NVIDIA listed.  My guess is AMD/ATI is expecting a monitor to be connected.

      My code:

      std::vector<cl:latform> allPlatforms;

      std::vector<cl:latform>::iterator iter;

      cl:latform targetPlatform;

      cl:latform::get(&allPlatforms);

       

       

       Using DEPENDS/profile mode to see where it might be crashing:

      etProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCheckOcclusion") called from "ATICFX32.DLL" at address 0x6656703A and returned 0x7661610D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTWaitForIdle") called from "ATICFX32.DLL" at address 0x66567047 and returned 0x766165ED.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCheckMonitorPowerState") called from "ATICFX32.DLL" at address 0x66567054 and returned 0x765EE7CE.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCheckExclusiveOwnership") called from "ATICFX32.DLL" at address 0x66567061 and returned 0x765EE7B0.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCheckVidPnExclusiveOwnership") called from "ATICFX32.DLL" at address 0x6656706E and returned 0x7661614D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTSetDisplayPrivateDriverFormat") called from "ATICFX32.DLL" at address 0x6656707B and returned 0x7661650D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTSharedPrimaryLockNotification") called from "ATICFX32.DLL" at address 0x66567088 and returned 0x7661658D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTSharedPrimaryUnLockNotification") called from "ATICFX32.DLL" at address 0x66567095 and returned 0x766165AD.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCreateKeyedMutex") called from "ATICFX32.DLL" at address 0x665670A2 and returned 0x7661618D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTOpenKeyedMutex") called from "ATICFX32.DLL" at address 0x665670AF and returned 0x7661638D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTDestroyKeyedMutex") called from "ATICFX32.DLL" at address 0x665670BC and returned 0x766161ED.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTAcquireKeyedMutex") called from "ATICFX32.DLL" at address 0x665670C9 and returned 0x766160ED.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTReleaseKeyedMutex") called from "ATICFX32.DLL" at address 0x665670D6 and returned 0x7661646D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTConfigureSharedResource") called from "ATICFX32.DLL" at address 0x665670E3 and returned 0x765EE9C8.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTGetOverlayState") called from "ATICFX32.DLL" at address 0x665670F0 and returned 0x7661628D.

      GetProcAddress(0x765C0000 [GDI32.DLL], "D3DKMTCheckSharedResourceAccess") called from "ATICFX32.DLL" at address 0x665670FD and returned 0x7661612D.



       

       

      Second chance exception 0xC0000005 (Access Violation) occurred in "ATICFX32.DLL" at address 0x66579C8A.