[Bf-blender-cvs] [87482b8a9e0] tmp-workbench-rewrite2: Fix GPU debug names

Miguel Pozo noreply at git.blender.org
Tue Dec 20 16:38:16 CET 2022


Commit: 87482b8a9e0adce66bbeb44269759f4018c36934
Author: Miguel Pozo
Date:   Tue Dec 20 16:38:07 2022 +0100
Branches: tmp-workbench-rewrite2
https://developer.blender.org/rB87482b8a9e0adce66bbeb44269759f4018c36934

Fix GPU debug names

===================================================================

M	source/blender/draw/engines/workbench/workbench_mesh_passes.cc

===================================================================

diff --git a/source/blender/draw/engines/workbench/workbench_mesh_passes.cc b/source/blender/draw/engines/workbench/workbench_mesh_passes.cc
index 1a00ef83395..cd71bb7c6a3 100644
--- a/source/blender/draw/engines/workbench/workbench_mesh_passes.cc
+++ b/source/blender/draw/engines/workbench/workbench_mesh_passes.cc
@@ -32,13 +32,18 @@ void MeshPass::init_subpasses(ePipelineType pipeline,
 {
   texture_subpass_map_.clear();
 
+  static std::string pass_names[geometry_type_len][shader_type_len] = {};
+
   for (auto geom : IndexRange(geometry_type_len)) {
     for (auto shader : IndexRange(shader_type_len)) {
       eGeometryType geom_type = static_cast<eGeometryType>(geom);
       eShaderType shader_type = static_cast<eShaderType>(shader);
-      std::string name = std::string(get_name(geom_type)) + std::string(get_name(shader_type));
+      if (pass_names[geom][shader].empty()) {
+        pass_names[geom][shader] = std::string(get_name(geom_type)) +
+                                   std::string(get_name(shader_type));
+      }
       GPUShader *sh = shaders.prepass_shader_get(pipeline, geom_type, shader_type, lighting, clip);
-      PassMain::Sub *pass = &sub(name.c_str());
+      PassMain::Sub *pass = &sub(pass_names[geom][shader].c_str());
       pass->shader_set(sh);
       passes_[geom][shader] = pass;
     }



More information about the Bf-blender-cvs mailing list