Initially designed as a small helper application for RivaTuner graphics card utility, RivaTuner Statistics Server became de-facto framerate monitoring, On-Screen Display and high-performance videocapture service provider for other graphics card utilities.
Features
- The server provides framerate and frametime monitoring support to the client applications. Framerate and frametime statistics is being collected for DirectX, OpenGL and VULKAN applications. The statistics can be rendered in On-Screen Display or provided to client applications connected to the server.
- The server provides 3D acceleration usage statistics to the client applications. The clients can use the statistics to determine if any 3D applications are currently running and apply different hardware profiles depending on it.
- The server provides On-Screen Display support to the client applications. The clients can display any text info in the On-Screen
- Display in DirectX and OpenGL applications. The server can be also used as a standalone framerate monitoring solution and display own framerate statistics in the On-Screen Display.
- The server provides desktop and in-game screen capture support to the client applications. BMP, PNG and JPG screen capture formats are supported.
- The server provides high-performance real-time desktop and in-game video capture support to the client applications.
- Uncompressed, high-performance custom RTV1 and native MJPG video encoding, encoding with third-party external VFW compatible codecs (e.g. Lagarith or x264vfw) and hardware accelerated H.264 encoding via Intel QuickSync, NVIDIA NVENC and AMD VCE are supported in conjunction with wide range of additional video capture related options, multisource stereo and multichannel (for Window Vista and newer) audio capture with Push-To-Talk support. The functionality of expensive commercial video capture products is now available to everyone absolutely for free! There is no need to buy dedicated video capture software anymore!
- Framerate limiting support. Limiting the framerate during gaming can help to reduce the power consumption as well as it can improve gaming experience due to removing unwanted micro stuttering effect caused by framerate fluctuations.
- User extendable architecture. You may express your creativity and design your own skins for RivaTuner Statistics Server, create localization for your native language, use the server to display any custom text in On-Screen Display directly from your own application and many, many more!
Know Limitations:
- RivaTuner Statistics Server can be incompatible with some third-party On-Screen Display software (e.g. XFire or Steam In-Game Chat). The limitation is not specific to our product, many third-party products are designed to be the only On-Screen Display products in the system and to block their own functionality when any other On-Screen Display software is running
- Anticheat systems of some online games may restrict On-Screen Display usage and block connection to the server when the RivaTuner Statistics Server is running
- RTV1 encoder performance in 64-bit applications is currently lower than in 32-bit applications
- Stealth hooking mode is currently not supported in 64-bit applications, so it is strongly not recommended to run other 64-bit OnScreen Display software in conjunction with RivaTuner Statistics Server
System Requirements:
- Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10 or Windows 11 (both x86 and x64 versions) with full administrative rights
- Any DirectX, Vulkan or OpenGL compatible graphics card
What's New
- Updated helper PresentMonDataProvider.exe application:
- Added PresentMon V2 service support. Please take a note that due to major changes between PresentMon V1 and V2 service API, service API V1 is no longer supported
- Added PresentMon V2 console application support. Unlike the service, console mode is backward compatible with the previous versions of PresentMon, so you may switch to the previous versions of console PresentMon if necessary via the configuration file. The most recent versions of console PresentMon V1 and V2 applications are included into distributive
- Added PresentMon V2 metrics support. The most of PresentMon V1 metrics are also reconstructed in realtime from V2 metrics for your convenience and for backward compatibility with previously existing PresentMon based overlay layouts. Please take a note that PresentMode metric encoding changed between V1 and V2 versions of PresentMon service API, so now OverlayEditor use new encoding too. All PresentMon based overlay layouts have been updated to reflect new PresentMode encoding. Please apply the same changes to your overlays if you decode PresentMode there
- PresentMon V1 service API specific hardware telemetry is no longer available in PresentMon data provider
- Custom version of console PresentMon v2.3.1 is now bundled with PresentMonDataProvider. PresentMon-2.3.1-x64-DLSS4.exe is an official version with additional changes from NVIDIA side, which finally add flip metering support for msBetweenDisplayChange metric. Please take a note that PresentMonDataProvider can consume data from both service and console versions of PresentMon and the service has higher data streaming priority. So to ensure that you stream desired data from PresentMon-2.3.1-x64-DLSS4.exe please ensure that the service is not installed
- Added configuration file setting allowing power users to specify additional command line parameters for console mode (e.g. -v1_metrics for forcing condole PresentMon V2 to report V1 metrics or -track_input for enabling experimental input tracking functionality in PresentMon V1)
- Added incomplete frames parsing support in console mode
- Slightly refactored frames parsing implementation in console mode to simplify integration of future console versions of PresentMon
- NaN values for dropped frames are now replaced with zeroes in service client mode to provide unified data format for both service client and console modes
- Dropped frames are now excluded from FramerateDisplayed metric calculation
- Added burst mode to PresentMonDataProvider's data consumption loop for both service and console versions of PresentMon. Burst mode is activated when PresentMonDataProvider detects that PresentMon's reporting lag increases due to way it is batching frames in applications with extremely high framerate. In this mode PresentMonDataProvider starts consuming data batches from PresentMon without any relaxing sleep periods between batches to compensate increasing reporting lag
- Added ovl overlay layout:
- The layout demonstrates usage of PresentMon V2 specific data sources and keyboard based overlay transformations. You may press
to switch between present-to-present (PresentMon V1) and start-to-start (PresentMon V2) frametime sampling modes in realtime - The layout demonstrates PresentMon V2 ClickToPhotonLatency data source usage to render input events graph and calculate averaged latency for the last 512 frames
- The layout demonstrates usage of PresentMon V2 specific data sources and keyboard based overlay transformations. You may press
- Added ovl overlay layout:
- The layout demonstrates usage of improved tag for rendering background with rounded colors
- The layout also allows you to switch between RivaTuner Statistics Server's own framerate or framerate sampled with PresentMon via pressing
This allows you to use this layout either in traditional application hooking mode or in combination with Desktop Overlay Host to display framerate in applications like Destiny 2, which globally restrict hooking
- Now PresentMon data provider calculates timestamps of different stages of rendering pipeline using PresentMon V2 metrics, when at least one PresentMon data source is added to layout, and allows accessing PresentMon timestamps in a way similar to accessing NVIDIA Reflex latency markers:
- New presentmonlatency(markerFrom, markerTo) function can be used to calculate a latency between two arbitrary PresentMon latency markers related to the current frame. You can specify one of the following marker identifiers: 0 – input_sample, 1 – cpu_busy_start, 2 – cpu_busy_end, 3 – present_start, 4 – present_end, 5 – gpurender_start, 6 – gpurender_end, 7 – virtual gpurender_start (gpurender_end minus GPU active time), 8 - display. You may also set markerFrom to -1 to specify the very first marker and set markerTo to -1 to specify the very last marker if necessary
- New presentmontimespan(markerFrom, markerTo, base) function can be used to calculate and encode a timespan between two arbitrary PresentMon latency markers related to the current frame. It behaves similar to reflextimespan function documented above
- Added newovl overlay layout. This layout replicates NVIDIA Reflex Latency analyzer using PresentMon's latency markers, so you may use it as alternate solution in cases when NVIDIA Reflex Latency analyzer is not available (e.g. on Intel/AMD GPUs or in Direct3D9 or OpenGL application, where Reflex is not supported)
- Added new ovl overlay layout. New layout allows you to track frametimes at both rendering pipeline input (present-to-present intervals) and rendering pipeline output (display-to-display interval) sides. In conjunction with custom PresentMon-2.3.1-x64-DLSS4.exe it helps you to monitor framepacing performed by flip metering unit in DLSS4 frame generation mode
- Added buf(name, position) function support for accessing desired data source's ring buffer contents. You may use this function to implement different forms of data filtering. For example PresentMon V2 DisplayLatency data source is designed to report zero for dropped frames, so you may apply (x > 0) ? x : buf(x,-1) formula to it to filter such data and report the previously sampled values instead
- Added support for string output format for external data sources. Some external data providers (e.g. AIDA64) export some sensors with plain string info (e.g. IP address, mainboard name etc), which couldn't be connected to overlay editor's numeric data sources. Now you may specify string output format (%s) for such data sources, so OverlayEditor will be able to display it in a text format as is
- Added new LibreHardwareMonitor data provider:
- Standalone LibreHardwareMonitor GUI application doesn't provide native shared memory support, so out of box it cannot effectively export sensor data to running applications in realtime like HwInfo, AIDA64 or MSI Afterburner. Instead of that redistributable LibreHardwareMonitorLib.dll .NET library is available and it can be integrated directly into third party products. OverlayEditor wraps LibreHardwareMonitorLib.dll usage into separate LHMDataProvider.exe process, which is effectively a GUI-less LibreHardwareMonitor 0.9.3, providing data to OverlayEditor via shared memory interface. Please take a note that LibreHardwareMonitor installs legacy copy of WinRing0 driver, which can be detected and blocked by some security related software products (e.g. AVAST family products)
- Now "with Radeon Graphics" text pattern is excluded by OverlayEditor from %CPU% / %CPUShort% macroses
- Added experimental support for AMD Ryzen 9xxx CPUs
- Added experimental support for Intel Arrow Lake CPUs
- Added quad fan monitoring support for reference design NVIDIA GeForce RTX 50x0 series GPUs
- Fixed compact CPU name macro formatting implementation for 16-Core CPUs
- Slightly improved algorithm for MPERF based base clock and bus clock calculation implementations. Now the algorithm ensures that both MPERF performance counter and timestamp counter are sampled inside the same scheduler's time slice and filters the values if sampling was interrupted by scheduler
- Added new "Lock user settings" option to "Overlay properties" When this option is enabled, OverlayEditor uses new
tag to override your custom font and zoom ratio settings and use overlay creator's master settings when rendering this overlay layout. You can uncheck this option and save overlay layout to use your own font or change zoom ratio like before. It is up to overlay creator to decide how to ship overlay now - you may either ship it with "Lock user settings" option disabled to allow user to select a different font and zooming ratio instead of your master settings, or you may enable this option to make your overlay look as intended out of box - Bundled DesktopOverlayHost has been upgraded to v1.4.1:
- Added Direct3D10, Direct3D12 and Vulkan rendering backends. New backends do not affect the primary application's functionality, however now you may use DesktopOverlayHost as a built-in overlay rendering test for all supported 3D APIs in x86 applications
- Added optional 64-bit version of DesktopOverlayHost. You may use it as a built-in overlay rendering test for all supported 3D APIs in x64 applications
- Added keyboard shortcut for rendering backend restarting. Now you may press
+ + when DesktopOverlayHost window is in focus to perform full restart of currently selected rendering backed, indicated by short background color flash. Rendering backend restarting feature can be used as universal vendor agnostic overlay stability test, allowing you to check how overlay handles full renderer restart from 3D application side - Added power user oriented config file switch allowing using idle based rendering loop instead of default timer based rendering loop
- Updated DesktopOverlayHostLoader helper application can launch both 32-bit and 64-bit versions of DesktopOverlayHost
- Added built-in profile for Counter Strike 2
- Added built-in profile for "Doom : The Dark Ages". The profile forces RivaTuner Statistics Server overlay to be rendered at DXGI interoperability swapchain level to bypass native Vulkan overlay renderer's incompatibility with Vulkan AMD FSR frame generation implementation. The profile is not necessary if you don't use AMD FSR frame generation, so you may safely remove .\ProfileTemplates\DOOMTheDarkAges.exe.cfg on NVIDIA hardware if you prefer to see overlay rendered at native Vulkan API level
- Updated profiles list
