The following table shows a list of features available in each of gDEBugger's execution modes. gDEBugger's features not mentioned here will work in all execution modes. Features marked "IRR" under one of the modes will work in this mode, but the information they display or commands they contain will be irrelevant in this mode. See also "Execution Modes".
|
Execution Mode
Feature |
Debug Mode | Profile Mode | Analyze Mode |
| Execution Speed | Medium | Fast | Slow |
| Break on Detected Errors | YES | NO | YES |
| Break on OpenCL Errors | YES | NO | YES |
| Break on Memory Leaks | YES | NO | YES |
| OpenCL Function Breakpoints | YES | NO | YES |
| Performance Counters | YES | YES | IRR |
| Step Commands | YES | NO | YES |
| Toolbars | |||
| OpenCL Calls Logging (History Toolbar) | YES | NO | YES |
| Viewers | |||
| Graphic and Compute Memory Analysis Viewer | YES | NO | YES |
| Source Code Viewer | YES | YES | YES |
| Kernels Source Code Editor | YES | YES | YES |
| Buffers and Images Viewer | YES | IRR | YES |
| Views | |||
| Calls Stack | YES | YES | YES |
| OpenCL Calls History | YES | NO | YES |
| Performance Dashboard | YES | YES | IRR |
| Performance Graph | YES | YES | IRR |
| Command Queue Realtime Statistics | YES | YES | IRR |
| Process Events | YES | YES | YES |
| Statistics Viewer | |||
| Calls History | YES | NO | YES |
| Calls Statistics | YES | NO | YES |
| Function Types Statistics | YES | NO | YES |
OpenCL Error: An OpenCL error is an error returned by the OpenCL platform when executing an OpenCL function. These errors can be caused by using wrong enumerators, referring OpenCL objects that were deleted and so on. Note that to avoid problems, OpenCL implementations usually ignore erroneous function calls, so those calls that cause OpenCL errors should be either fixed or removed.
Detected Error: A detected error is an error detected by the gDEBugger OpenCL server.
Compute Memory Allocated Object: A compute memory allocated object is an OpenCL object created by a computer program, which consumes compute memory, that is to say an OpenCL device's memory. An allocated object can reside in the computer's main memory (as part of the driver's used virtual memory), in the device's internal memory, or in both. The following allocated object types are currently supported by gDEBugger:
Compute Memory Leak: A compute memory allocated object which is not released by the program that created it is considered a compute memory leak. Unused compute memory allocated objects should be released (deleted) as soon as they are no longer needed, to reduce memory consumption and improve overall performance.
Function Types: OpenCL functions can be divided into a few groups by their effect on the OpenCL implementation or their result. Note that an OpenCL function can belong to more than one of these groups or to none at all:
To find out what groups does a given function belongs to, look for its entry in the Function Calls Statistics View (In the
Statistics Viewer), and the information is displayed under the "Function Type" column. The Statistics Viewer's Function Types Statistics view displays a breakdown of your OpenCL usage by these groups as well as more detailed information about each type.
Computation Frame: A computation frame is a set of OpenCL API calls, typically the largest set of calls an OpenCL compute context performs which can be considered a single logical operation.
A computation frame is comparable to a render frame in a graphics engine. It is recommended for applications rendering graphics to define the computation frame as the set of commands used to calculate the data for a single render frame. Having a notion and boundary of what comprises a frame allows for measurements such as frame times and frame rates as well as API call statistics, which are useful in debugging and profiling.
Frame Terminator: Frame terminators are the functions that delimit your application computation frames. gDEBugger uses frame terminators for frame per second, statistics analysis and other measurements, as well as for determining when to stop the execution when you press the
Frame Step button. When choosing frame terminators for your project, make sure at least one of the functions you choose is called each computation frame. The cl_gremedy_computation_frame extension allows defining computation frames in a non-continuous manner - if your application performs some OpenCL operations and then switches to other operations (which are outside the OpenCL frames). All other Computation frame terminators assume the OpenCL command stream is continuous.
If your application renders graphics, it is a good idea to have the functions defined as frame terminators match the graphic render frame cycle.
| Main Window | |
| New Project | Ctrl+N |
| Open Project | Ctrl+O |
| Save Project | Ctrl+S |
| Debug Settings | Ctrl+D |
| Go to Next String Marker | Ctrl+Shift+N |
| Go to Previous String Marker | Ctrl+Shift+P |
| Show/Hide Statistics Viewer | Ctrl+Shift+S |
| Show/Hide Memory Analysis Viewer | Ctrl+M |
| Show/Hide State Variables Comparison Viewer |
Ctrl+Shift+V |
| Show/Hide Textures, Buffers and Images Viewer |
Ctrl+T |
| Go | F5 |
| Stop | Shift+F5 |
| Break | F6 |
| Step | F11 |
| Draw Step | Shift+F11 |
| Frame Step | Ctrl+F11 |
| Add/Remove Breakpoints | Ctrl+B |
| Enable/Disable All Breakpoints | Ctrl+Shift+B |
| In the Shaders' and Kernels Source Code Editor | |
| Save | Ctrl+S |
| Save as | Ctrl+Shift+S |
| Properties | Ctrl+I |
| Close | Ctrl+Q |
| Toggle Current Fold | Ctrl+T |
| Wrap | Ctrl+U |
| Build Program | F7 |
| In the Textures, Buffers and Images Viewer | |
| Save image | Ctrl+S |
| Zoom In | + |
| Zoom Out | - |
| Original Size | Alt+0 |
| Toggle Red Channel | Alt+R |
| Toggle Green Channel | Alt+G |
| Toggle Blue Channel | Alt+B |
| Toggle Alpha Channel | Alt+A |
| Rotate Left | Ctrl+L |
| Rotate Right | Ctrl+R |