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:
authorJon Denning <gfxcoder>2021-09-13 09:12:12 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-09-13 09:16:45 +0300
commite0394761b954759f8723bdc8f4a1686bf70954ed (patch)
tree1f7194aa0cac107ebb3cb83acd414a212a4764d3 /source/blender/gpu
parentb5a1c194c5dde20b13e3dd3372055d8b5e58a18e (diff)
GPUShader: Expose name for debugging & identifying shaders
Added optional `name` argument to `GPUShader` constructor (defaults to `pyGPUShader`), and added `name` getter to `GPUShader`. Ref D12393 Reviewed By: campbellbarton, jbakker
Diffstat (limited to 'source/blender/gpu')
-rw-r--r--source/blender/gpu/GPU_shader.h5
-rw-r--r--source/blender/gpu/intern/gpu_shader.cc19
2 files changed, 21 insertions, 3 deletions
diff --git a/source/blender/gpu/GPU_shader.h b/source/blender/gpu/GPU_shader.h
index f834ee5b234..62b748b7edf 100644
--- a/source/blender/gpu/GPU_shader.h
+++ b/source/blender/gpu/GPU_shader.h
@@ -54,7 +54,8 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode,
const char *fragcode,
const char *geomcode,
const char *libcode,
- const char *defines);
+ const char *defines,
+ const char *name);
GPUShader *GPU_shader_create_ex(const char *vertcode,
const char *fragcode,
const char *geomcode,
@@ -85,6 +86,8 @@ void GPU_shader_free(GPUShader *shader);
void GPU_shader_bind(GPUShader *shader);
void GPU_shader_unbind(void);
+const char *GPU_shader_get_name(GPUShader *shader);
+
/* Returns true if transform feedback was successfully enabled. */
bool GPU_shader_transform_feedback_enable(GPUShader *shader, struct GPUVertBuf *vertbuf);
void GPU_shader_transform_feedback_disable(GPUShader *shader);
diff --git a/source/blender/gpu/intern/gpu_shader.cc b/source/blender/gpu/intern/gpu_shader.cc
index c754a649924..9340d311472 100644
--- a/source/blender/gpu/intern/gpu_shader.cc
+++ b/source/blender/gpu/intern/gpu_shader.cc
@@ -229,7 +229,8 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode,
const char *fragcode,
const char *geomcode,
const char *libcode,
- const char *defines)
+ const char *defines,
+ const char *name)
{
char *libcodecat = nullptr;
@@ -240,6 +241,9 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode,
libcode = libcodecat = BLI_strdupcat(libcode, datatoc_gpu_shader_colorspace_lib_glsl);
}
+ /* Use pyGPUShader as default name for shader. */
+ const char *shname = name != nullptr ? name : "pyGPUShader";
+
GPUShader *sh = GPU_shader_create_ex(vertcode,
fragcode,
geomcode,
@@ -249,7 +253,7 @@ GPUShader *GPU_shader_create_from_python(const char *vertcode,
GPU_SHADER_TFB_NONE,
nullptr,
0,
- "pyGPUShader");
+ shname);
MEM_SAFE_FREE(libcodecat);
return sh;
@@ -369,6 +373,17 @@ void GPU_shader_unbind(void)
/** \} */
/* -------------------------------------------------------------------- */
+/** \name Shader name
+ * \{ */
+
+const char *GPU_shader_get_name(GPUShader *shader)
+{
+ return unwrap(shader)->name_get();
+}
+
+/** \} */
+
+/* -------------------------------------------------------------------- */
/** \name Transform feedback
*
* TODO(fclem): Should be replaced by compute shaders.