Home Products Contracting Purchase Resellers About Contact
Home Products Contracting Purchase Resellers About Contact
FramePro

Download

Download the latest version of FramePro here.

FramePro is free to evaluate for 15 days, after that you will need to purchase a license to continue using FramePro.

Version: 1.3.2
Previous versions...
Download

Versions



20/07/20161.3.2
-FramePro.cpp support for linux/gcc/clang
-New Cores View - heirachical breakdown of cores
-Frame Stat recording. Frame Stats are custom stats that are accumulated during the frame and sent once per frame. The stats can be viewed and graphed in FramePro
-New Frame Stats view - frame stats accumulate during a frame and are sent once a frame. They can be view in the datagrid and graphed in FramePro
-Added ability to graph scope stats in Scopes view
-Option to view scopes by scope colour (as well as thread colour)
-Show days remaining of free trial in about dialog
-y-axis for frame graph
-changed colour of target line in frame graph to make it more visible
-allow mouse dragging of target line in frame graph
-allow mouse dragging of frame graph y-scale
-Separate target line for scopes frame graph, and colouring frames where scope exceeds target
-scopes can now be selected in the core view
-UI improvements - new view tabs
-Create new session from selected frames
-improved support for UE4 in FramePro.cpp (now uses __UNREAL__ define)
-show scope colour in scopes datagrid
-Improved error reporting for context switch recording
-Critical section now used to protect send buffer so that the send thread flush the buffers once per frame. This stops scopes getting stuck on the TLS send buffer when the thread stops sending scopes.
-added FRAMEPRO_CLEANUP_THREAD macro to free all FramePro resources for a thread
-fixed race condition in connection. Only showed up on Fedora OS. Reconnect would sometimes fail after disconnecting.
-added FRAMEPRO_THREAD_SCOPE macro to name the thread and clean it up wien it terminates
-added FRAMEPRO_SHUTDOWN to clean up all FramePro resources
-FRAMEPRO_SET_THREAD_NAME no longer takes the current thread id (because GetCurrentThreadId is not cross platform)
-HiRes timers. Added FRAMEPRO_HIRES_SCOPE. HiRes timers accumulate during the frame and are sent once a frame.
-fixed race bug in connection code if send thread created too quickly
-changed FRAMEPRO_UNIQUE to use __LINE__ instead of __COUNTER__
-added virtual destructor to Allocator class
-fixed bug in Event::Wait on Unix
-threads with the same name are now displayed on the same thread graph
-added warning dialog if failed to start context switch tracking
-Removed the 1% tolerance for frames being over budget
-UI optimisations
-fixed core graph zoom centering in threads view
-fixed 'buffering' stat
-fixed crash if no connect packet received
-Optimised packet processing
-Wait for all packets to finish processing before saving (with progress bar)
-fixed strict alianing compile warning in FrameStatPacket

26/05/20161.2.5
-New installer with bug fix from Wix. Fixes installer bug "font '?' could not be found" when updating from an older installed version.
Please note that when updating from versions 1.2.1 - 1.2.4 you may need to manually uninstall the previous version before installing this version. After you have installed this version everything updates will work as expected.

26/05/20161.2.4
-Built installer with latest version of Wix.
-Added extra diagnostics to install process.

26/05/20161.2.3
-Removed dependency on debug VS runtime for FramePro_GameSimulator.exe and made it 64-bit.
-FramePro_RecordingPlayer now built against .NET 4.0

25/05/20161.2.2
-support for profiling apps with multiple dlls
-fixed FrameProExample project build
-new Help chm file (in progress)
-reorganised FramePro.h. Macros now at top of file. Everything else moved down into private section
-documented all macros in FramePro.h
-fixed compile warning in FramePro.cpp casting strlen to int
-fixed crash shutting down in FramePro.cpp. Null mp_Buffer in Buffer::Clear
-added 'View Help' to the Help menu to open the chm
-Startup page for viewing videos, demo and recent files

22/05/20161.2.1
-Fixed installer immediatley crashing on some platforms
-Updated VC redist to most recent version
-Made VC redist not vital. Installer continues if it fails.
-Added extra diagnostics around installer bootstrapper. Now shows message box with exception info.

17/05/20161.2
-added the ability to play back recording files as though connected in real-time
-added a game simmulator app so that users can quickly try out FramePro as if connected to a real game
-support for compiling FramePro.cpp with UE4
-support for compiling FramePro.cpp with UWP
-fixed "pending scope" bug, where if not enough scopes are sent it would take a long time for the send buffer to be flushed
-FramePro.cpp now shuts down cleanly
-changed the recording file extension from framepro_dump to framepro_recording
-made FramePro.cpp pull in the Advapi32.lib library
-fixed FramePro.cpp compile warnings in release
-set the thread name of the ETW context switch tracing thread
-changed extension of FramePro.hpp to .h
-massively reduced the number of allocations in FramePro. This speeds up the interface, reduced memory and reduced GC stalls
-fixed bug where jumping to the source file wouldn't work with files with spaces in their path
-FramePro will attempt to get the process name if not supplied and the process is running locally
-fixed bug where scopes would occasionally be added to the scope heirach in the wrong order (only affected find prev/next)
-optimisations to FramePro GUI rendering
-added filter to scopes datagrid view
-remember frame graph height when shutting down
-save selected time range in FramePro save files
-changed demo length from 15 days to 30
-changed core graph frame line from black to white
-disable the track end button if not connected
-extra logging for diagnosing connection problems
-apply current find highlighting after loading a session
-goto prev/next time span disables track-end
-always colour the main thread blue
-update the frame graph every 30ms and the thread view every 240ms. Makes it earier to see what is going on, and reduced draw time
-"find prev" in find control
-fixed bug where it would say it was buffering packets if the app stopped sending data

16/03/20161.1.3
-Fixed frame graph lines not showing as green when frame in budget

24/01/20161.1.2
-Improved process name tracking for context switches. Now works with dumps and tracking remote sessions.
-made other process context switch lines more visible
-changed Context Switches check box to "Display Context Switches"
-stop tracking end when clicking in core graph
-fixed crash on shutdwn after recording context switches
-fixed potentially uninitialised variable compiler warning in scope macros

20/01/20161.1.1
-changed over to use .NET 4.6 instead of 4.6.1 (Windows 10 seems to have a problem installing 4.6.1)
-install the VS2015 runtime from the installer. Needed for the ETW event tracing
-stopped registration key continually needing to be entered every time FramePro starts
-fixed auto-update

15/01/20161.1
-Recording of context switches on Windows and XBoxOne. This makes the core view accurate. It catches when scopes are inturrupted or switched mid-scope, and shows other unscoped threads and processes.
-Sessions use up 33% less memory, and save files 33% smaller.
-Optmisations to packet processing
-Optmisations to UI updating
-added filtering, hiding and reordering of threads
-General UI improvements
-upgraded to .NET 4.6.1
-show the license state on the about dialog
-Added dropdown box to Connect dialog for windows and XBoxOne ports
-fixed occasional crash on shutdown
-show frame count and duration when shift-selecting range in frame graph
-jump to prev/next spike button
-export entire session to csv
-fixed bug where hover boxes would occasionally stop displaying
-shift+mouse wheel to scroll up/down in threads view. Mouse wheel over thread title panels also scroll threads
-click on a thread to collapse/expand
-new scopes datagrid view
-changed buffering from number of packets to time
-added FramePro memory usage to info panel
-Sessions now have a name, build id, platform, date, process id
-fixed left/right keyboard buttons not working in graph view
-fixed thread sorting when there are multiple threads of the same name
-remember custom height of thraed graphs
-fixed threads not always resizing properly after reading a save file
-improved timeline when zooming a long way in or out. Can now soom in to ns or out to seconds
-right click on scope to highlight all identical scopes
-clicking on a timespan stops the track-end while connected
-fixed thread hover-box randomly disappearing
-always show selected scopes when zoomed out (clamp to 1 pixel wide)
-jump to next scope in thread context menu
-trim white space of registration name
-fixed crash shutting down session if read fails
-improved message boxes if read fails
-fixed crash reading a corrupt dump file
 
FrameProLib:
-tracking of context switches on Windows
-fixed SetThreadAffinity. It was mistakenly calling SetThreadPriority
-added the ability to block all FramePro sockets at runtime as an additional security measure. They can be defaulted to blocked and have to be explicitly enabled.
-Now possible to set information about the session such as name and build id
-Sockets on XBoxOne now use Windows sockets functions
-added new scope macros: FRAMEPRO_START_NAMED_SCOPE, FRAMEPRO_STOP_NAMED_SCOPE, FRAMEPRO_CONDITIONAL_START_SCOPE, FRAMEPRO_CONDITIONAL_STOP_NAMED_SCOPE, FRAMEPRO_CONDITIONAL_STOP_DYNAMIC_SCOPE
-fixed compiling for UWP
-fixed connect bug that would occasionally send bad data and crash FrameProif connect and disconnect in quick succession
-improved error handling in Start/Stop recording functions
-fixed memory leak in buffer swap
-changed GetTickCount to FRAMEPRO_GET_CLOCK_COUNT so that it compiles on UWP
-fixed memory leak in List
-fixed Socket::HandleError() on UWP
-flush send buffer when snd thread terminates to avoid losing data

22/11/20151.0
FramePro
-significant optimisations to packet receiving
-support for loading up very large dump files
-movd match count to underneath find control
-set main UI thread to above normal priority to make UI more responsive
-added "New c=Connection" menu item
-stopped find control from taking focus
-save session memory stats
-stop trackking end when user clicks in thread view
-stop trackking end when moving to prev/next frame with cursor keys
-show zero duration time spans as 1 pixel wide
 
FrameProLib:
-General optimisation. FrameProLib is now much lower overhead
-removed all locks and atomics from AddTimeSpan
-enabled recording to file at runtime with Start/Stop functions.
-added FRAMEPRO_SOCKETS_ENABLED define to disable socket code
-added RelaxedAtomic class to remove locks that VS2012 adds unnecessarily
-changed GetCurrentProcessorNumber to use __cpuid. Faster and works on UWP
-added a connection changed callback
-support for adding custom time spans passing in thread and code
-support for setting thread affinity and priority for all FrameProLib threads
-enable asserts in debug
-added FRAMEPRO_CONDITIONAL_NAMED_SCOPE_W macro
-added UWP as a platform type
-de-coupled flushing the send buffer from the frame. Now flushes every 30 ms. Allows for long frame captures
-added a maximum memory limit for the send buffers, set to 50MB by default. Reduces stalls from network bandwidth spikes
-reduced FrameProLib overhead when not connected

06/08/20150.1.0.59
FramePro
-support for receiving time spans out of order
-non-interactive recording mode
-allocators for TimeSpanRenderData and UnassignedTimeSpan
-fixed conditional scope control getting focus on startup
-remember named connections
-fixed bug where the core graph time spans would sometimes change colours when zooming
-fixed bug where time spans would sometimes disappear in the core view
-fixed bug where the views would sometimes try and render before the session had finished loading
-fixed selected frames marker disappearing past last frame
-save time span graph as csv
-enable/disable view buttons
-added lots more data to the info panel
-show the number of buffered packets, turning red if too high
-show the number of strings, and memory used
-fixed bugs due to active view
-query about saving when closing
-support drag/drop to open files
-added a packet allocator
-packet core value into packet type to save space
-removed padding from packets and reduce size wherever possible
-adding missing dispose calls for cleaning up brushes and events
-made process packets thread above normal priority
-optimised time -> frame index lookup
-changed the default port on windows
-clamped zooming in
-show info in hover box for thread name panel
-added ms and us lines when zooming in on the thread view
-optimised drag-scrolling in the threads view
-re-wrote TimeSpanList to be more optimal and use up less memory
-fixed bugs in time span drop don box
 
FrameProLib
-changed critical sections over to slim read/write locks
-changed all defines to be 0 or 1, rather than ifdef
-now records data into fixed size buffers
-all allocations now go through a custom allocator
-re-structuring of code to make it cleaner and more manageable
-added support for Unreal Engine 4
-change intrinsics over to std::atomics
-many thread safe fixes with correct aquire/release
-added FRAMEPRO_CONDITIONAL_SCOPE() and FRAMEPRO_CONDITIONAL_NAMED_SCOPE(name) macros
-only record scopes if connected.
-optimised getting.creating of the framepro TLS object
-put allocator behind string class
-reduced memory usage when not connected. Now only 11K per thread.

10/06/20150.1.0.47
-FramePro


setup video

Setup:

Add these two files into your codebase:
FramePro\src\FramePro.cpp
FramePro\src\FramePro.h

Call this every frame
FRAMEPRO_FRAME_START()

Add scopes to your code:
FRAMEPRO_SCOPE()

Connect to your app using FramePro.exe.

Supported platforms:

Windows 7, 8, 10
Windows UWP
XBox One
Linux
GCC, Clang


Questions?
Please read the FramePro FAQ