From 1e16b338b4303984d81a1075f6ad68bfcaf2aa63 Mon Sep 17 00:00:00 2001 From: kd-11 Date: Sat, 7 Mar 2026 03:04:59 +0300 Subject: [PATCH] gl: Add support for named objects --- rpcs3/Emu/RSX/GL/GLProcTable.h | 1 + rpcs3/Emu/RSX/GL/glutils/common.h | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/rpcs3/Emu/RSX/GL/GLProcTable.h b/rpcs3/Emu/RSX/GL/GLProcTable.h index 5278014b5c..ad8943bd4f 100644 --- a/rpcs3/Emu/RSX/GL/GLProcTable.h +++ b/rpcs3/Emu/RSX/GL/GLProcTable.h @@ -259,6 +259,7 @@ OPENGL_PROC(PFNGLDELETESYNCPROC, DeleteSync); // KHR_debug OPENGL_PROC(PFNGLDEBUGMESSAGECALLBACKPROC, DebugMessageCallback); +OPENGL_PROC(PFNGLOBJECTLABELPROC, ObjectLabel); // Immutable textures OPENGL_PROC(PFNGLTEXSTORAGE1DPROC, TexStorage1D); diff --git a/rpcs3/Emu/RSX/GL/glutils/common.h b/rpcs3/Emu/RSX/GL/glutils/common.h index f99c3590a6..a147a6e754 100644 --- a/rpcs3/Emu/RSX/GL/glutils/common.h +++ b/rpcs3/Emu/RSX/GL/glutils/common.h @@ -76,6 +76,26 @@ namespace gl } }; + template + struct named_object + { + protected: + GLuint m_id = GL_NONE; + std::string m_name = "Unnamed"; + + public: + void set_name(std::string_view name) + { + m_name = name.data(); + glObjectLabel(Ns, m_id, name.length(), name.data()); + } + + std::string_view name() const + { + return m_name; + } + }; + // Very useful util when capturing traces with RenderDoc static inline void push_debug_label(const char* label) {