AnsweredAssumed Answered

Can't Debug Kernel in Teapot Example

Question asked by jsnyder on Nov 26, 2014
Latest reply on Dec 22, 2014 by jsnyder

I have an HP Z820 configured width an Intel Xeon E5-2650, 32GB RAM, and an msi Radeon R9 280X Gaming 6G card. I am running Windows 8.1 Pro, and have Visual Studio Premium 2013 Update 3, AMD Catalyst Version 14.9(Driver 14.301.1001-140915a-176154C), AMD APP SDK 2.9-1, and Code XL 1.5.6571 installed.

 

I am trying to debug a kernel in the AMD Teapot example. I compile the AMDTTeaPot project in Debug Configuration. When I run without any break points, the application runs at 127 FPS.

 

When I put a breakpoint in the kernel applyBuoyancy() by clicking to the left of line 20 in tpApplyBuoyancy.cl, the application slows down to 23 FPS and I observe a lot of pairs of threads being created and then destroyed. The application does not break.

 

If I remove that breakpoint, continue, and use the OpenXL menu to put a New CodeXL Breakpoint in the Kernel Function applyBouyancy(), the application breaks just before the call to _clEnqueueReleaseGLObjects() on line 2303 of AMDTTeapotOCLSmokeSystem.cpp. Stepping does not move the cursor.

 

If I remove the previous breakpoint, continue, and add a New CodeXL Breakpoint in clEnqueueNDRangeKernel(), the application breaks just before the call to _clEnqueueNDRangeKernel() on line 2112 of AMDTTeapotOCLSmokeSystem.cpp. Attempting to step brings up a dialog box, which says

 

The Process was suspended before a kernel enqueued for debug has started executing.

Disable all API function breakpoints and resume debugging(F5) to continue into the kernel.

 

After deleting all breakpoints and hitting F5, a dialog box appears with the message,

 

Could not debug kernel. Error during kernel debugging.

 

A coworkwer with a similar setup, but different (R9 290X) card, has no trouble putting a breakpoint in applyBouyancy(). His version of Visual Studio appears to load the same DLLs as mine does during program invocation. My "CodeXLServers-<userid>.log" file is the same as his up until the very end of his file. The last line in agreement between the two files looks like this:

 

2014.11.26    09:49:48.828    #14418177828    #ERROR    #0    #3836    #gsSamplersMonitor::updateContextDataSnapshot    #src

\gsSamplersMonitor.cpp    #291    #Assertion failure (m_glGetSamplerParameteriv != 0 && m_glGetSamplerParameterfv != 0)

 

After that, my log file contains a large number of repetitions of this error:

 

2014.11.26    09:49:48.287    #14418360287    #ERROR    #0    #4268    #csDWARFParser::getAddressScope    #src\csDWARFParser.cpp    #2926   

#Assertion failure (pAddressScope != 0)

 

Can you help me figure out what is going on?

 

Message was edited by: Jeffrey Snyder I corrected my comment about the behavior when breaking on clEnqueueNDRangeKernel(). I had mistakenly said that the application breaks on _clEnqueueReleaseGLObjects(), but that was a copy/paste error from the previous case.

Outcomes