Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-09-16 02:36:32 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-09-16 02:40:45 +0300
commit8eda18f789dc95a2b526df473ee16c75a4e87229 (patch)
tree8d41109e212c582139281dfe1f65dfe51c14e660 /source/blender/gpu/intern/gpu_debug.cc
parentfafc1fbd7fb36e284fbcbd8aa9060dd96c48d4e6 (diff)
GPUDebug: Add function to test if inside a debug group
This is a nice way to check certain GPU codepaths only for some regions or callers paths.
Diffstat (limited to 'source/blender/gpu/intern/gpu_debug.cc')
-rw-r--r--source/blender/gpu/intern/gpu_debug.cc20
1 files changed, 19 insertions, 1 deletions
diff --git a/source/blender/gpu/intern/gpu_debug.cc b/source/blender/gpu/intern/gpu_debug.cc
index d4b55d7e758..a0608f52c4a 100644
--- a/source/blender/gpu/intern/gpu_debug.cc
+++ b/source/blender/gpu/intern/gpu_debug.cc
@@ -73,4 +73,22 @@ void GPU_debug_get_groups_names(int name_buf_len, char *r_name_buf)
sz += BLI_snprintf_rlen(r_name_buf + sz, name_buf_len - sz, "%s > ", name.data());
}
r_name_buf[sz - 2] = ':';
-} \ No newline at end of file
+}
+
+/* Return true if inside a debug group with the same name. */
+bool GPU_debug_group_match(const char *ref)
+{
+ /* Otherwise there will be no names. */
+ BLI_assert(G.debug & G_DEBUG_GPU);
+ Context *ctx = Context::get();
+ if (ctx == nullptr) {
+ return false;
+ }
+ DebugStack &stack = ctx->debug_stack;
+ for (StringRef &name : stack) {
+ if (STREQ(name.data(), ref)) {
+ return true;
+ }
+ }
+ return false;
+}