Tuesday, October 25, 2011

Telemetry 1.1a Released!!

Wow, been a long time coming, but this is a massive update that has implemented a ton of features and new platform support!

YOU WILL HAVE TO UPDATE ALL COMPONENTS AND REBUILD YOUR GAMES!! The protocols have changed to support our new features, so make sure you rebuild, relink, update your DLLs and run the new server and Visualizer.

SPU Support

So the big feature people have been waiting for is support for the PS3 SPU on Telemetry, and this required a significant amount of architectural work (since it effectively meant multiple processes), but it's done! It's a standard part of the Telemetry/PS3 distribution now.

OS X Support

That's right, we have OS X support, both 32-bit and 64-bit run-times, along with the Visualizer and command line server! The run-time is part of Telemetry/Mac but the Visualizer and server are available to licensees of any platform.

GPU Support

We now have support for benchmarking GPU calls on XBOX 360, PS3 and Direct3D (DX9,DX10, and DX11). We provide this as a layer on top of Telemetry's timespan features, and we support both synchronous and asynchronous operation.


The Visualizer now uses Direct3D on Windows instead of OpenGL. The OpenGL version is still available and will continue to be maintained (it's viz64gl.exe in the distribution). Using Direct3D should reduce some of the compatibility problems customers have seen with different video cards and drivers.

Linux Support

We now have support for 32-bit and 64-bit Linux run-times on Intel architectures, along with a command line server for Linux.

Additional changes are as follows:


  • Change: tmSetParameter now takes a pointer to parameter instead of the parameter itself

  • Change: PS3 library has been renamed to libtelemetryPS3.a

  • Change: Linux static library now called libTelemetryX86.link.a or libTelemetryX64.link.a

  • Bugfix: calling tmOpen after tmClose didn't work properly

  • Bugfix: PS3 network connection issues

  • Bugfix: NTELEMETRY was masking connection status constants

  • Bugfix: Time wrapping on Linux wasn't handled properly


  • Enhancement: Number of zones in a thread now displayed as part of tooltip over trackhead

  • Change: Implicitly generated plots for internal Telemetry events (number of allocs, number of locks, etc.) removed

  • Change: Timespans generate virtual Telemetry messages

  • Change: Profiler rows are reasier to see

  • Change: Visualizer input buffer is now larger, helping with extreme data flooding cases

  • Change: Timespans now go to microsecond display if < 0.5ms in duration

  • Bugfix: race condition that would lead to occasional crash

  • Bugfix: Some stall zones were not being rendered properly

  • Bugfix: Timespan rendering was broken in some cases

  • Bugfix: Annotation handling resulted in loss of annotations if they were numeric

  • Bugfix: Zone depth computations were inaccurate in some cases

  • Bugfix: Timeline state background colors are stable

  • Bugfix: Fragmented input data packets would occasionally cause a hang

  • Bugfix: Out of range 64-bit plot values would cause a crash

  • Bugfix: High CPU utilization in data processing and server connection threads in some situations


  • Enhancemenent: added -keeptmp option for testing

  • Enhancement: Added offline processing of previousy stored tmp files

  • Bugfix: Minor memory leak

  • Bugfix: Server would occasionally resend duplicate lock events in certain flooding conditions

  • Change: No longer limited to 64K top level zones per frame

  • Change: Server buffers frame data instead of just the most recent frame

  • Change: You can now register your own message handler for warning dialogs, etc. with the tms server library