GxmDebug class
#include <nCine/Graphics/RHI/GXM/GxmDebug.h>
Debug-output and object-labelling facade of the sceGxm backend.
The render pipeline's debug groups map onto sceGxm's own user markers, which the Razor GPU capture tools and Vita3K's command tracing both display, so a capture is annotated with the same pass names the OpenGL backend pushes through glPushDebugGroup. Object labels have no sceGxm counterpart (its resources are plain structures in user memory, not driver-side named objects) and are dropped.
The markers are only emitted between GxmDevice::sceGxmPushUserMarker() needs the context; before that they are silently dropped.
Public types
- class ScopedGroup
- RAII scope for a debug message group (a
sceGxmPushUserMarker()/sceGxmPopUserMarker()pair). - enum class LabelTypes { Buffer, Shader, Program, VertexArray, Query, ProgramPipeline, TransformFeedback, Sampler, Texture, RenderBuffer, FrameBuffer }
- Object types that can be labelled (values are irrelevant for the sceGxm backend).
Public static functions
- static void Init(const IRhiCapabilities& caps)
- static void Reset()
- static auto IsAvailable() -> bool
- static void PushGroup(StringView message)
- Opens a user marker on the sceGxm context.
- static void PopGroup()
- Closes the innermost user marker.
- static void MessageInsert(StringView message)
- Inserts a standalone user marker.
-
static void SetObjectLabel(LabelTypes identifier,
std::
uint32_t name, StringView label) -
static void GetObjectLabel(LabelTypes identifier,
std::
uint32_t name, std:: int32_t bufSize, std:: int32_t* length, char* label) -
static auto GetMaxLabelLength() -> std::
int32_t