OCAT 1.4

OCAT is our open source capture and analytics tool, designed to help game developers and performance analysts dig into the details of how the GPU presents finished frames to the display.

It runs in parallel with your game, sampling available DXGI presentation metrics (by way of Intel’s excellent PresentMon library), to give you an accurate view of frame timing, pacing and delivery that’s as lightweight and unintrusive as possible. Combined with an optional runtime overlay that lets you view the data in real-time as the game is running, OCAT is primarily for performance analysis, helping to discover and fix issues in frame pacing. Yes, I did just copy and paste that from the OCAT 1.3 release announcement. It’s pre-GDC week so you’re going to have to fight me if you want a better intro.

Changes in 1.4

We’ve added a pair of audible indicators that capturing is taking place, for situations where you either prefer to not use the visual overlay, or compatibility means the overlay can’t work. That way you can still tell that recording has started and stopped even if you can’t see that’s true.

There’s also a new rolling frame time graph rendered in the overlay to add to the textual FPS and frame time print outs, and 95th- and 99.9th-percentile performance data is dumped to the performance summary log that’s generated at the end of each OCAT capture.

If you’re not sure what graphics API is being used by the game you’re using OCAT with, say if it’s not obvious or the game supports different rendering API backends, OCAT now prints that in the overlay. If you’re using OCAT with a Vulkan game and OCAT crashes, we now deactivate the Vulkan layer we use to render the overlay to hopefully get around rare situations where it could persist after the crash.

An FCAT-style coloured bar can now be added to the display on the left or right, which is very useful if you’re using any post-process methods to analyse a video or per-frame capture of the game you’re using OCAT with. OCAT changes the colour of the bar frame-by-frame in a contrast-aware way, so you can easily tell where on the screen a new frame is being presented to help detect frame changes and on-screen tearing.

Two notable bug fixes round out the most interesting changes in 1.4: we now remeber where you want to store captured data between uses of OCAT so you don’t have to change that every time if you’re not happy with the default location, and we now use a more reliable global hotkey hooking method, in order to try and get around clashes with other software that might also have active hotkeys.

Lastly, by far the biggest change in 1.4 (not true) is the fact that we switched from major.minor.0.build to major.minor.build version numbering. Multiple person years of engineering effort (totally not true, took us less than a day) went into figuring out the fact that the old version numbering scheme was causing uninstaller problems. So now the uninstaller should work properly, should you wish to totally nuke OCAT from orbit in much the same way we nuked the rogue zero from the version.

More information

OCAT is developed out in the open on GitHub (note that most of the development activity between releases takes place on dev branches!), the documentation is visible at ReadTheDocs, we’re issue-driven as much as possible and welcome contributions in any form, from anyone that’s interested in helping improve it. Even if that’s just a bug or compatibility report where OCAT doesn’t work, please get involved!

Getting OCAT

Get the 1.4 release installer binary for Windows from the GitHub releases page!.

Latest news

AMD Matrix Cores (amd-lab-notes)

This first post in the ‘AMD lab notes’ series takes a look at AMD’s Matrix Core technology and how best to use it to speed up your matrix operations.

Looking for a good place to get started with exploring GPUOpen?

Getting started: our software

New or fairly new to AMD’s tools, libraries, and effects? This is the best place to get started on GPUOpen!

Getting started: development and performance

Looking for tips on getting started with developing and/or optimizing your game, whether on AMD hardware or generally? We’ve got you covered!

You may also like...

Explore our huge collection of detailed tutorials, sample code, presentations, and documentation to find your answers to your graphics development questions.

Create wonder. No black boxes.

The home of great performance and optimization advice for AMD RDNA™ 2 GPUs, AMD Ryzen™ CPUs, and so much more.

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.

Discover what our SDK technologies can offer you. Query hardware or software, manage memory, create rendering applications or machine learning, and much more!

Analyze, Optimize, Profile, Benchmark. We provide you with the developer tools you need to make sure your game is the best it can be!