diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-02-06 01:09:09 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-02-06 01:09:09 +0300 |
commit | bfe6e792c727e42dd7d7aea92e95944232ae1ecd (patch) | |
tree | 7c90a28c130b166376b813bad3b9b29a3816fdec /source | |
parent | 26b70fce8ae7c9174f4e410fc1f36075a9b333f3 (diff) | |
parent | 3a90f93507a344d2b6eb3ae631371348ff977047 (diff) |
Merge branch 'blender-v3.1-release'
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/gpu/GPU_debug.h | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_shader.cc | 5 | ||||
-rw-r--r-- | source/blender/gpu/opengl/gl_debug.cc | 5 |
3 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/gpu/GPU_debug.h b/source/blender/gpu/GPU_debug.h index 9796ac63272..18a35f9c71a 100644 --- a/source/blender/gpu/GPU_debug.h +++ b/source/blender/gpu/GPU_debug.h @@ -31,6 +31,8 @@ extern "C" { #endif +#define GPU_DEBUG_SHADER_COMPILATION_GROUP "Shader Compilation" + void GPU_debug_group_begin(const char *name); void GPU_debug_group_end(void); /** diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc index 82069730ea9..7db34917ad7 100644 --- a/source/blender/gpu/intern/gpu_shader.cc +++ b/source/blender/gpu/intern/gpu_shader.cc @@ -26,6 +26,7 @@ #include "BLI_string_utils.h" #include "GPU_capabilities.h" +#include "GPU_debug.h" #include "GPU_matrix.h" #include "GPU_platform.h" @@ -273,6 +274,8 @@ GPUShader *GPU_shader_create_from_info(const GPUShaderCreateInfo *_info) const_cast<ShaderCreateInfo &>(info).finalize(); + GPU_debug_group_begin(GPU_DEBUG_SHADER_COMPILATION_GROUP); + /* At least a vertex shader and a fragment shader are required, or only a compute shader. */ if (info.compute_source_.is_empty()) { if (info.vertex_source_.is_empty()) { @@ -393,9 +396,11 @@ GPUShader *GPU_shader_create_from_info(const GPUShaderCreateInfo *_info) if (!shader->finalize(&info)) { delete shader; + GPU_debug_group_end(); return nullptr; } + GPU_debug_group_end(); return wrap(shader); } diff --git a/source/blender/gpu/opengl/gl_debug.cc b/source/blender/gpu/opengl/gl_debug.cc index 4b78f20824b..fe558677f56 100644 --- a/source/blender/gpu/opengl/gl_debug.cc +++ b/source/blender/gpu/opengl/gl_debug.cc @@ -108,6 +108,11 @@ static void APIENTRY debug_callback(GLenum UNUSED(source), GPU_debug_get_groups_names(sizeof(debug_groups), debug_groups); CLG_Severity clog_severity; + if (GPU_debug_group_match(GPU_DEBUG_SHADER_COMPILATION_GROUP)) { + /** Do not duplicate shader compilation error/warnings. */ + return; + } + switch (type) { case GL_DEBUG_TYPE_ERROR: case GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR: |