RAMSES Documentation  27.0.130
Information for RAMSES users and developers
Profiling, debugging, and tools

Ramses provides logs and various tools to help find issues in your application. In the sections below you will find hints where to find those and how to use them.

Debugging your scene

The easiest way to find problems in your content/scene is to use the validation layer of the Ramses client. The validation is an optional layer of Ramses which shows hints of possible undefined behavior, performance problems, or missing data which can cause your content to render not as expected. This is similar to how Vulkan works - you can enable the validation to find issues, and disable it for production to save resources.

Each ramses::StatusObject derived class has a validate() method. Call it to find issues in that object. You can do this for an entire scene by calling validate() on a ramses::Scene, ramses::RamsesRenderer or any other object. Validation works recursively, i.e. a RamsesClient will validate all its scenes, a ramses::Scene will validate all its scene objects, and so on.

Profiling and performance

For a detailed overview of the various ways to profile your content and optimize performance, refer to the Performance and profiling section.

Resource and shader tools

Compiling shaders typically consumes a lot of compute time and resources. RAMSES provides a chain of command line tools to help reduce the time for loading effects for final deployments by preparing binary versions of them and deploying them as cache directly on the renderer side. The last tool in the chain - the Resource Packer, can be used to combine not only effects into files, but also other types of RAMSES resources.

Effect lifecycle in RAMSES

Storing GLSL as binary shaders

Storing effects in resource files

Packing resources into larger files

Full Example of how to use Shader Tools in RAMSES

Scene viewer

Ramses scenes can be stored to a file ramses::Scene::saveToFile(). These scene files can be viewed and inspected by the ramses-scene-viewer.

Logging

Ramses uses DLT to publish logs. See General introduction to Diagnostic Log and Trace (DLT) for an overview of DLT in general, and Using DLT with RAMSES for details on usage of DLT in the Ramses context.