nCine::RHI::RSX::RsxDebug class

Debug-output and object-labelling facade of the RSX backend.

Entirely inert, and for a more basic reason than the sceGxm backend's - which at least maps the pipeline's debug groups onto sceGxm's user markers. The RSX command set has no marker or annotation packet at all: a command buffer is a stream of NV40 method writes with nowhere to carry a name, and PSL1GHT's librsx exposes nothing for it either. Object labels have no counterpart for the same reason (the backend's resources are plain structures in memory the GPU reads by offset, not driver-side named objects), so both halves of this class are dropped rather than approximated.

The class is kept so the render pipeline's RHI::Debug calls compile unchanged; the compiler removes the calls entirely, since every one of them is an empty inline function.

Public types

class ScopedGroup
RAII scope for a debug message group (inert on this backend).
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 RSX backend).

Public static functions

static void Init(const IRhiCapabilities& caps)
static void Reset()
static auto IsAvailable() -> bool
static void PushGroup(StringView message)
static void PopGroup()
static void MessageInsert(StringView message)
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