mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-19 12:45:54 +00:00
[605/906] shader: move to gst debugging
This commit is contained in:
parent
c52b138a8d
commit
13ec239924
1 changed files with 26 additions and 41 deletions
|
@ -33,7 +33,7 @@ enum
|
||||||
PROP_VERTEX_SRC,
|
PROP_VERTEX_SRC,
|
||||||
PROP_FRAGMENT_SRC,
|
PROP_FRAGMENT_SRC,
|
||||||
PROP_COMPILED,
|
PROP_COMPILED,
|
||||||
PROP_ACTIVE //unused
|
PROP_ACTIVE /* unused */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstGLShaderPrivate
|
struct _GstGLShaderPrivate
|
||||||
|
@ -49,12 +49,12 @@ struct _GstGLShaderPrivate
|
||||||
gboolean active;
|
gboolean active;
|
||||||
};
|
};
|
||||||
|
|
||||||
G_DEFINE_TYPE (GstGLShader, gst_gl_shader, G_TYPE_OBJECT);
|
GST_DEBUG_CATEGORY_STATIC (gst_gl_shader_debug);
|
||||||
|
#define GST_CAT_DEFAULT gst_gl_shader_debug
|
||||||
|
|
||||||
#undef G_LOG_DOMAIN
|
#define DEBUG_INIT \
|
||||||
#define G_LOG_DOMAIN "GstGLShader"
|
GST_DEBUG_CATEGORY_INIT (gst_gl_shader_debug, "glshader", 0, "shader");
|
||||||
|
G_DEFINE_TYPE_WITH_CODE (GstGLShader, gst_gl_shader, G_TYPE_OBJECT, DEBUG_INIT);
|
||||||
gboolean _gst_gl_shader_debug = FALSE;
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_gl_shader_finalize (GObject * object)
|
gst_gl_shader_finalize (GObject * object)
|
||||||
|
@ -67,7 +67,7 @@ gst_gl_shader_finalize (GObject * object)
|
||||||
shader = GST_GL_SHADER (object);
|
shader = GST_GL_SHADER (object);
|
||||||
priv = shader->priv;
|
priv = shader->priv;
|
||||||
|
|
||||||
g_debug ("finalizing shader %ud", priv->program_handle);
|
GST_TRACE ("finalizing shader %u", priv->program_handle);
|
||||||
|
|
||||||
g_free (priv->vertex_src);
|
g_free (priv->vertex_src);
|
||||||
g_free (priv->fragment_src);
|
g_free (priv->fragment_src);
|
||||||
|
@ -77,16 +77,16 @@ gst_gl_shader_finalize (GObject * object)
|
||||||
|
|
||||||
/* delete program */
|
/* delete program */
|
||||||
if (priv->program_handle) {
|
if (priv->program_handle) {
|
||||||
g_debug ("finalizing program shader %ud", priv->program_handle);
|
GST_TRACE ("finalizing program shader %u", priv->program_handle);
|
||||||
|
|
||||||
glDeleteObjectARB (priv->program_handle);
|
glDeleteObjectARB (priv->program_handle);
|
||||||
/* err = glGetError (); */
|
/* err = glGetError (); */
|
||||||
/* g_debug ("error: 0x%x", err); */
|
/* GST_WARNING ("error: 0x%x", err); */
|
||||||
/* glGetObjectParameterivARB(priv->program_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
/* glGetObjectParameterivARB(priv->program_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
||||||
/* g_debug ("program deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
/* GST_INFO ("program deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
||||||
}
|
}
|
||||||
|
|
||||||
g_debug ("shader deleted %ud", priv->program_handle);
|
GST_DEBUG ("shader deleted %u", priv->program_handle);
|
||||||
|
|
||||||
priv->fragment_handle = 0;
|
priv->fragment_handle = 0;
|
||||||
priv->vertex_handle = 0;
|
priv->vertex_handle = 0;
|
||||||
|
@ -138,15 +138,6 @@ gst_gl_shader_get_property (GObject * object,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
gst_gl_shader_log_handler (const gchar * domain, GLogLevelFlags flags,
|
|
||||||
const gchar * message, gpointer user_data)
|
|
||||||
{
|
|
||||||
if (_gst_gl_shader_debug) {
|
|
||||||
g_log_default_handler (domain, flags, message, user_data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gst_gl_shader_class_init (GstGLShaderClass * klass)
|
gst_gl_shader_class_init (GstGLShaderClass * klass)
|
||||||
{
|
{
|
||||||
|
@ -254,15 +245,9 @@ gst_gl_shader_init (GstGLShader * self)
|
||||||
g_return_if_fail (priv->program_handle);
|
g_return_if_fail (priv->program_handle);
|
||||||
|
|
||||||
priv->compiled = FALSE;
|
priv->compiled = FALSE;
|
||||||
priv->active = FALSE; // unused at the moment
|
priv->active = FALSE; /* unused at the moment */
|
||||||
|
|
||||||
if (g_getenv ("GST_GL_SHADER_DEBUG") != NULL)
|
GST_TRACE ("shader initialized %u", priv->program_handle);
|
||||||
_gst_gl_shader_debug = TRUE;
|
|
||||||
|
|
||||||
g_log_set_handler ("GstGLShader", G_LOG_LEVEL_DEBUG,
|
|
||||||
gst_gl_shader_log_handler, NULL);
|
|
||||||
|
|
||||||
g_debug ("shader initialized %ud", priv->program_handle);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GstGLShader *
|
GstGLShader *
|
||||||
|
@ -326,11 +311,11 @@ gst_gl_shader_compile (GstGLShader * shader, GError ** error)
|
||||||
priv->compiled = FALSE;
|
priv->compiled = FALSE;
|
||||||
return priv->compiled;
|
return priv->compiled;
|
||||||
} else if (len > 1) {
|
} else if (len > 1) {
|
||||||
g_debug ("\n%s\n", info_buffer);
|
GST_FIXME ("vertex shader info log:\n%s\n", info_buffer);
|
||||||
}
|
}
|
||||||
glAttachObjectARB (priv->program_handle, priv->vertex_handle);
|
glAttachObjectARB (priv->program_handle, priv->vertex_handle);
|
||||||
|
|
||||||
g_debug ("vertex shader attached %ud", priv->vertex_handle);
|
GST_LOG ("vertex shader attached %u", priv->vertex_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->fragment_src) {
|
if (priv->fragment_src) {
|
||||||
|
@ -361,11 +346,11 @@ gst_gl_shader_compile (GstGLShader * shader, GError ** error)
|
||||||
priv->compiled = FALSE;
|
priv->compiled = FALSE;
|
||||||
return priv->compiled;
|
return priv->compiled;
|
||||||
} else if (len > 1) {
|
} else if (len > 1) {
|
||||||
g_debug ("\n%s\n", info_buffer);
|
GST_FIXME ("vertex shader info log:\n%s\n", info_buffer);
|
||||||
}
|
}
|
||||||
glAttachObjectARB (priv->program_handle, priv->fragment_handle);
|
glAttachObjectARB (priv->program_handle, priv->fragment_handle);
|
||||||
|
|
||||||
g_debug ("fragment shader attached %ud", priv->fragment_handle);
|
GST_LOG ("fragment shader attached %u", priv->fragment_handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if nothing failed link shaders */
|
/* if nothing failed link shaders */
|
||||||
|
@ -387,7 +372,7 @@ gst_gl_shader_compile (GstGLShader * shader, GError ** error)
|
||||||
priv->compiled = FALSE;
|
priv->compiled = FALSE;
|
||||||
return priv->compiled;
|
return priv->compiled;
|
||||||
} else if (len > 1) {
|
} else if (len > 1) {
|
||||||
g_debug ("\n%s\n", info_buffer);
|
GST_FIXME ("shader link log:\n%s\n", info_buffer);
|
||||||
}
|
}
|
||||||
/* success! */
|
/* success! */
|
||||||
priv->compiled = TRUE;
|
priv->compiled = TRUE;
|
||||||
|
@ -412,8 +397,8 @@ gst_gl_shader_release (GstGLShader * shader)
|
||||||
if (!priv->compiled)
|
if (!priv->compiled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (priv->vertex_handle) { // not needed but nvidia doesn't care to respect the spec
|
if (priv->vertex_handle) { /* not needed but nvidia doesn't care to respect the spec */
|
||||||
g_debug ("finalizing vertex shader %ud", priv->vertex_handle);
|
GST_TRACE ("finalizing vertex shader %u", priv->vertex_handle);
|
||||||
|
|
||||||
#ifndef OPENGL_ES2
|
#ifndef OPENGL_ES2
|
||||||
glDeleteObjectARB (priv->vertex_handle);
|
glDeleteObjectARB (priv->vertex_handle);
|
||||||
|
@ -422,13 +407,13 @@ gst_gl_shader_release (GstGLShader * shader)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* err = glGetError (); */
|
/* err = glGetError (); */
|
||||||
/* g_debug ("error: 0x%x", err); */
|
/* GST_WARNING ("error: 0x%x", err); */
|
||||||
/* glGetObjectParameterivARB(priv->vertex_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
/* glGetObjectParameterivARB(priv->vertex_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
||||||
/* g_debug ("vertex deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
/* GST_INFO ("vertex deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->fragment_handle) {
|
if (priv->fragment_handle) {
|
||||||
g_debug ("finalizing fragment shader %ud", priv->fragment_handle);
|
GST_TRACE ("finalizing fragment shader %u", priv->fragment_handle);
|
||||||
|
|
||||||
#ifndef OPENGL_ES2
|
#ifndef OPENGL_ES2
|
||||||
glDeleteObjectARB (priv->fragment_handle);
|
glDeleteObjectARB (priv->fragment_handle);
|
||||||
|
@ -437,9 +422,9 @@ gst_gl_shader_release (GstGLShader * shader)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* err = glGetError (); */
|
/* err = glGetError (); */
|
||||||
/* g_debug ("error: 0x%x", err); */
|
/* GST_WARNING ("error: 0x%x", err); */
|
||||||
/* glGetObjectParameterivARB(priv->fragment_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
/* glGetObjectParameterivARB(priv->fragment_handle, GL_OBJECT_DELETE_STATUS_ARB, &status); */
|
||||||
/* g_debug ("fragment deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
/* GST_INFO ("fragment deletion status:%s", status == GL_TRUE ? "true" : "false" ); */
|
||||||
}
|
}
|
||||||
|
|
||||||
if (priv->vertex_handle)
|
if (priv->vertex_handle)
|
||||||
|
@ -495,7 +480,7 @@ gst_gl_shader_compile_and_check (GstGLShader * shader,
|
||||||
|
|
||||||
gst_gl_shader_compile (shader, &error);
|
gst_gl_shader_compile (shader, &error);
|
||||||
if (error) {
|
if (error) {
|
||||||
g_warning ("%s", error->message);
|
GST_WARNING ("%s", error->message);
|
||||||
g_error_free (error);
|
g_error_free (error);
|
||||||
error = NULL;
|
error = NULL;
|
||||||
gst_gl_shader_use (NULL);
|
gst_gl_shader_use (NULL);
|
||||||
|
|
Loading…
Reference in a new issue