Added glObjectLabels for renderdoc for textures and shader programs (#1384)

* Added glObjectLabels for renderdoc for textures and shader programs

* Changed hardcoded "Texture" name to reflect the texture type instead

* Removed string initialize
This commit is contained in:
David 2018-09-24 07:55:41 +10:00 committed by bunnei
parent 6b05f71b67
commit 9f3fc067bf
4 changed files with 48 additions and 0 deletions

View file

@ -161,4 +161,26 @@ static inline void MortonCopyPixels128(u32 width, u32 height, u32 bytes_per_pixe
}
}
static void LabelGLObject(GLenum identifier, GLuint handle, VAddr addr,
std::string extra_info = "") {
if (!GLAD_GL_KHR_debug) {
return; // We don't need to throw an error as this is just for debugging
}
const std::string nice_addr = fmt::format("0x{:016x}", addr);
std::string object_label;
switch (identifier) {
case GL_TEXTURE:
object_label = extra_info + "@" + nice_addr;
break;
case GL_PROGRAM:
object_label = "ShaderProgram@" + nice_addr;
break;
default:
object_label = fmt::format("Object(0x{:x})@{}", identifier, nice_addr);
break;
}
glObjectLabel(identifier, handle, -1, static_cast<const GLchar*>(object_label.c_str()));
}
} // namespace VideoCore