Monday, July 18, 2011

Telemetry 1.0n Released!!

While working on the SPU implementation of Telemetry we realized that the amount of required server work would be substantial. Instead of holding off on a bunch of smaller fixes and changes while we finished that we decided to temporarily pause SPU development and give you guys a really solid interim release before we dive back in.

Unfortunately because of the tweaks this requires another full upgrade -- you must upgrade your run-time, server and Visualizer simultaneously! You'll also want to do a full rebuild since some function signatures and constants may have changed.
The big changes are crash fixes for the server; major UI improvements to the Visualizer (including fixing some bugs with timespan rendering); and the embedded server library is now available in beta form. But there are a ton of other things in here too, so I encourage you to read the change list. Probably 50% or more of these changes were due to direct customer feedback, so please keep us up to date on problems, questions, suggestions or just general comments!

  • Change: PROTOCOL CHANGED! Make sure you are using only 1.0n components in your Telemetry chain (server, Visualizer and run-time)
  • Change: 360 now sends over profile-0 username as session username
  • Bugfix: Internal stall zones that result from flushing the Telemetry buffer are now placed in the correct place in the timeline so that they don't look like displaced child zones. They now look like siblings of the calling zone that forced the flush.
  • Change: Reduced string table max size to 16K sdtrings -- please let me know if this causes problems. We're trying to get the minimum context size down.
  • Bugfix: Win32: No longer search symbol path for PDBs at startup. This was causing weird hiccups/hangs/stalls for some customers with symbol server paths but without a valid symbol server running.
  • Bugfix: NTELEMETRY versions of tmPlotI32 and tmPlotI64 were missing. NTELEMETRY version of tmGetAccumulationStart was also incorrect.
  • Enhancement: Command line and parameters are now stored, sent and displayed by the Visualizer as part of session information.


  • Enhancement: Cut-and-paste the active tooltip by holding down control as the tooltip pops up. This is a stop gap measure until we get global cut-and-paste for all UI elements. You must enable this first in Options.
  • Change: Protocol changed! Make sure you update run-time, server and Visualizer simultaneously!
  • Enhancement: MAJOR enhancements to the level of detail rendering of small zones and groups of small zones!! Zones should never LOD away completely; they now look better and are a different color when it's an LOD aggregated zone; you should see a tall 'stalactite' if there is even one tiny child zone deep in a hierarchy; top-level zones now LOD properly all the time; LOD aggregate zones display actual summed child times instead of LOD aggregate displayed time; LOD aggregate zones only display zone name if it's the same zone name (otherwise displays "").
  • Enhancement: User messages (tmMessage) are now put in a separate tree branch next to Telemetry messages instead of using a separate checkbox.
  • Enhancement: Tooltips now render callstacks vertically.
  • Enhancement: Session list now shows numberr of frames in the session
  • Change: Session info at bottom of screen now in 12H format instead of 24H format
  • Enhancement: Choose microseconds or cycles as display unit for short duration zones.
  • Enhancement: Tree views now have a 'half-on' checkbox state to indicate a mix of checked/unchecked children
  • Enhancement: Zones that contain message text now display with a letter 'M'
  • Enhancement: Generated plots now have an asterisk in their name and can now also be removed.
  • Enhancement: Right-click on track head has a "Minimize all but this track" option
  • Enhancement: Dynamic tick mark spacing along top of zone view
  • Enhancement: Persistent outlining of zones supported, i.e. you can do right-click "Highlight all these zones"
  • Change: Zoom is now clamped to 10K clock cycles.
  • Bugfix: Minimized tracks that have no data (e.g. lock track if you haven't record any lock events) are no longer displayed
  • Bugfix: timeline bars don't disappear no matter how thin they get
  • Bugfix: fixed spacing and rendering problems with timespans


  • Change: Protocol versions changed!! Make sure you are using 1.0n versions of server, Visualizer and run-time simultaneously!
  • Enhancement: Separate server lib is now available (tmsserver*.dll) on Win32. An example program is also supplied.
  • Bugfix: Server now puts up message boxes in case of fatal session errors.
  • Bugfix: On overflow (too many zones) the server is more aggressive killing the offending session
  • Bugfix: More exception handling wrapper to prevent crashes
  • Enhancement: Tmp files are only flushed/written if there is incoming data, so a paused (e.g. breakpointed) connection not keep generating a bunch of little files