Thursday, November 29, 2012

RAD Telemetry 1.1p Shipped!

Telemetry 1.1p has shipped with bug fixes and additional support for unannounced platforms.  Email us at if you want more information on upcoming platform support.

IMPORTANT: All Telemetry components must be upgraded simultaneously since there has been a change in the network protocol!  In addition you must recompile and relink since there has been a function signature change for tmSendCallStack.

  • Bugfix: symbol resolution did not work in some instances
  • Bugfix: OS X: right-button mouse click did not work reliably
  • Enhancement: displays name and location of license file
  • Enhancement: option to manually specify symbol file for resolution (under Options), which will bring up a file selection dialog
  • Change: tmCoreSendCallStack takes an additional 'skip' parameter (you must recompile/link!)
  • Enhancement: new API tmSendCallStackWithSkip allows you to specify number of stack frames to skip
  • Enhancement: tmOpen now returns TMERR_NETWORK_NOT_INITIALIZED if you did not initialize the network subsystems (WinSock, XNet, etc.) and did not specify TMOF_INIT_NETWORKING
  • Bugfix: tmxgpu on 360 had incorrect parameters to tmPlot leading to erroneous values
  • Bugfix: 64-bit timespan IDs were truncated to 32-bit on 32-bit run-times
  • Bugfix: critical sections were not destroyed when context was shut down (Application Verifier warning)
  • Enhancement: added support for an unannounced platform
  • Bugfix: fixed link issues with another unannounced platform
  • Bugfix: session name returned from server was sometimes incorrect
  • Change: emits warnings if context switch overflow is detected
  • Enhancement: Added documentation for tmCheckVersion
  • Change: example_basic and UE3 docs now use tmCheckVersion

Thursday, October 25, 2012

RAD Telemetry 1.1o shipped!

This is a small maintenance release with some bug fixes and small features added.  The main addition is support for OpenGL GPU timings (this is in beta and very spotty due to poor driver support on some platforms).


  • Change: tmLoadTelemetry accepts TM_LOAD_CHECKED_LIBRARY and TM_LOAD_RELEASE_LIBRARY constants now (instead of just 0/1, which was confusing when reading the code)
  • Enhancement: Linux libraries are now built such that you can use them with a FreeBSD distribution as long as you've configured your distro with Linux compatibility.  Contact us if you have questions about this.
  • Enhancement: TMPT_UNTYPED is now an alias for TMPT_INTEGER
  • Bugfix: vararg handling in tmxgpu was leading to crashes in some cases
  • Enhancement: support for OpenGL GPU timings (desktop platforms)
  • Change: autoconnect is now a command line option and persistent

Monday, September 24, 2012

RAD Telemetry 1.1n Released!

RAD Telemetry 1.1n is now available! This is another incremental update with bugfixes, performance improvements and better platform support.

One of the areas we concentrated on was streamlining the integration process for customers using third party engines.  If you're an Unreal Engine 3 licensee you should look at our revised documentation on integration, there are a couple minor tips that can help get the gargantuan amount of data generated under control.


  • Bugfix: dynamic strings were not properly sent to server if captures were paused with tmPause
  • Bugfix: tmClose now generates extra ticks to help the server flush out buffered frames
  • Enhancement: Improved WiiU support
  • Enhancement: Added TMMF_ICON_EXTRA00..TMMF_ICON_EXTRA04 flags for tmMessage since some customers wanted additional icon types.  In the future these will be replaced with real icons.
  • Enhancement: improved support for unannounced platforms


  • Bugfix: fixed stack size problem that was limiting maximum zone depth and resulting in crashes
  • Enhancement: Server now stores thread name events that occur inside a frame, not just the current thread name at a frame boundary


  • Bugfix: message sublabels were not showing up in zone tooltips
  • Bugfix: console command entry key stroke was disabled
  • Bugfix: Visualizer now checks for license file in executable directory as well on non-Windows platforms
  • Enhancement: Check box for 'show groups' in the plot tree added
  • Enhancement: Added TMMF_ICON_EXTRAxx support


  • Change: UE3 integration docs heavily revised and clarified
  • Enhancement: Added plot export facility to CSV in tmsym (beta!)

Friday, August 31, 2012

RAD Telemetry 1.1m released!

We just released a small point release for RAD Telemetry.  The run-time protocol has changed, so be sure to upgrade the SDK, server and Visualizer simultaneously!


  • Enhancement: updated WiiU support to 2.07.02 SDK
  • Bugfix: Stack corruption here if there were more than 128 PDBs or MAP files discovered
  • Change: Raised maximum number of discoverable MAP/PDB files to 256 (don't worry, we fixed the previous bug too, we didn't just raise the limit =) )


  • Change: Linux Visualizer now searches executable directory for license key in addition to the Telemetry data directory
  • Enhancement: VScale setting is now saved


  • Bugfix: Symbol data after symbolization was not stored to disk properly
  • Change: Edited UE3 integration docs for better error handling

Friday, August 10, 2012

Valve talks about using Telemetry in L4D2!

Valve is using Telemetry for profiling some of their games, including Left 4 Dead 2.  In his talk at SIGGRAPH, Rich Geldreich mentions us.  Thanks Rich!

Monday, August 6, 2012

RAD Telemetry 1.1L Released!

Welcome to the August 2012 release of RAD Telemetry!  This is mostly a maintenance release, however there is one significant feature that some customers have requested -- the Visualizer is now available for Linux!  Currently it's in beta and supports Ubuntu (32 and 64-bit) and Gnome.


  • Enhancement: PS3: stackwalking is now more robust and no longer requires debug library support (-ldbg)
  • Change: PS3: We now build against SDK 3.7.0
  • Change: WiiU: SDK 2.06.02 is now supported (and required)
  • Change: minor bugfixes and changes


  • Enhancement: beta support for running on Linux (Ubuntu 32/64 with Gnome/Nautilus)
  • Enhancement: OS X: Should now have feature parity with Windows version
  • Enhancement: Experimental "sort by duration" option when finding zones
  • Change: minor bugfixes and changes


  • Change: Minor bugfixes and changes


  • Change: minor update to UE3 integration documentation

Monday, July 9, 2012

RAD Telemetry 1.1k released!

That was quick!

We found a bug in 1.1j that necessitated a quick release with a bugfix.  The bug only affected those who had been using 1.1j either as an upgrade or for evaluation.

EDIT: 1.1k now has WiiU support, including support for the latest Nintendo SDKs.

1.1k does not have WiiU support in it, we're working on separate update with additional WiiU support in the coming week (hopefully).

Monday, July 2, 2012

RAD Telemetry 1.1j Released!

Welcome to the July 2012 release of RAD Telemetry!  This month we've done some bug fixing, incremental updates and support for the Linux and WiiU platforms, and implemented some experimental features specifically requested by our customers!


  • Change: The run-time protocol has changed, so be sure to upgrade your server and run-times simultaneously!
  • Bugfix: tmGetVersion was returning values inconsistent with the values in telemetry.h
  • Enhancement: EXPERIMENTAL, CONTACT US BEFORE USING!  TMCT_USER_PROVIDED callback registration for your own storage and/or transmission of run-time data.
  • Enhancement: Additional support for unannounced platform
  • Enhancement: Updated WiiU support
  • Enhancement: Enhanced Linux and OS X symbolization support


  • Bugfix: Starting with 'Autostart Server' disabled resulted in a crash
  • Bugfix: Zooming in too far in the Visualizer would make everything disappear in some instances
  • Enhancement: Vertical zone scaling (Ctrl-Mousewheel) state is now saved
  • Bugfix: 'Import' of data files would sometimes crash if the imported data was very small


  • Change: The run-time protocol has changed, so be sure to upgrade your server and run-times simultaneously!


  • Change: Cleaned up some obsolete documentation
  • Bugfix: Fixed documentation error for some tmPlotXXX variants

Thursday, June 7, 2012

RAD Telemetry 1.1i Released!

As promised, continuing our monthly releases with performance tweaks and more platform support.

IMPORTANT: This change requires a full upgrade and rebuild, and the tmPlot API will fail to compile.  We apologize for the minor inconvenience, but we needed to add a parameter to the tmPlot APIs and figured doubling the surface area of those APIs for one parameter was probably not a good long term direction.  The new parameter is a 'flags' parameter that you can just set to 0 and everything will work.


  • Change: Protocol change, so make sure server and run-time are both upgraded!
  • Change: tmPlotXXX APIs have been changed, an additional parameter is now required -- you must recompile and relink!
  • Bugfix/Change: TM_VA_LIST parameter is now expected to be a va_list* instead of a va_list
  • Change: Added TM_SLOW define that is set on platforms with very slow networking and timestamp querying (currently iOS)
  • Bugfix/Changes: additional support for unannounced platforms
  • Enhancement: TMCT_FILE support for iOS and PS3
  • Bugfix: GPU D3D crash bug fixed


  • Bugfix: certain object path names would crash plot display
  • Bugfix: fixed missing newline when printing callstack in tooltip
  • Enhancement: symbolization support enhanced for Linux and OS X


  • Change: Protocol change, so make sure server and run-time are both upgraded!

Monday, May 7, 2012

RAD Telemetry 1.1h Released!

We're back on our monthly release schedule -- this month we have bug fixes, performance improvements and some new platform support!



  • Enhancement: we now have iOS support!
  • Enhancement: additional support for unannounced platforms, please contact for more information
  • Enhancement: additional enhancements for the WiiU platform
  • Enhancement: quad buffering of Telemetry write buffers enabled on all platforms (previously this was only on PS3 and 360)
  • Bugfix: RADEXPLINK definition mismatch if NTELEMETRY was defined and another RAD product was included
  • Bugfix: PS3 strings were sometimes not sent over properly in some edge cases
  • Bugfix: tmShutdown now compiles to TMERR_DISABLED instead of an empty statement when NTELEMETRY is defined
  • Bugfix: handshake timeout now honors the timeout parameter to tmOpen instead of being hardcoded to 1s
  • Change: removed confusing and vestigial tab 'Memory'
  • Bugfix: server is more tolerant of unknown string references sent by the run-time
  • Bugfix: when -keeptmp was specified and the server connection crashed, the *.00 file was inadvertently deleted.  Fixed.

Thursday, April 12, 2012

RAD Telemetry 1.1g Released!

Hey everyone, new release for Telemetry!  This is a relatively small update but still lots of good stuff going on!


  • Enhancement: TMOF_NO_PDB_LOOKUP added.  In some cases on Windows tmOpen can take a long time while doing PDB lookups of loaded modules.  This allows you to bypass that delay.
  • Enhancement: Significantly better performance in the Telemetry processing thread on PS3, 360 and Windows.
  • Change: default Telemetry thread priority increased to avoid starvation
  • Enhancement: "Lock to end" checkbox is now persistent between sessions
  • Enhancement: plotted zone times are now in the same plot group so you can compare scales
  • Enhancement: Build information passed to tmOpen is now displayed in the session view
  • Change: New license key system
  • Change: Removed deprecated thread balance pie chart
  • Enhancement: a -maxsessions parameter has been added to tmserver so that it can be scriptable.  Now you can launch the server, tell it to capture N sessions, then have it exit when it's done capturing.

Wednesday, March 14, 2012

Telemetry 1.1f released!

Now that the holidays and GDC are behind us we're going to buckle down and get some pretty significant features and changes that our customers have asked for.  But before that we've released 1.1f with a lot of minor fixes and improvements.

Speaking of GDC, it was great meeting so many of our customers and getting positive feedback on Telemetry -- thanks for stopping by the booth!


  • Enhancement: new plot types TMPT_TIME_US and TMPT_TIME_CLOCKS
  • Bugfix: crash bug with Windows DX9 tmxgpu
  • Bugfix: crash bug with TMCT_FILE and OS X
  • Bugfix: tmSetLockStateMinTime wasn't checking some parameters in checked builds
  • Bugfix: if the memory arena passed to tmInitializeContext wasn't zeroed out bad things could happen.  Telemetry now automatically zeroes that memory first.
  • Enhancement: A very basic "search for zone" is implemented using Ctrl-F.  Does not support wildcards and only searches for zones that are currently loaded in memory.  A better implementation is in the works, but enough people asked for this that we've decided to provide this short term implementation.
  • Enhancement: You can now plot a zone's time by right-clicking on it and choosing "Plot zone time".  As with search, you have to make sure that all zones you care about are in memory.  And again, this is a short term solution until we get a global solution in place.
  • Enhancement: "lock to end" supported, so if watching live captures the last frame is visible at all times instead of scrolling off screen.
  • Bugfix: Slow performance when rendering really wide zones 
  • Bugfix: Right-click on some zones and zone types was sketchy
  • Bugfix: Intermittent crashes when viewing a session with a combination of very short and very long frames.
  • Bugfix: rare race condition when accepting multiple profiling sessions from the same machine in less than one second
  • Bugfix: tmSetLockStateMinTime return values were improperly documented
  • Bugfix: tmSPUBindContextToListener function signature documentation was wrong