[vlc-devel] [PATCH 03/10] opengl: move "dump shaders" flag to renderer

Romain Vimont rom1v at videolabs.io
Thu Jun 4 11:52:11 CEST 2020


For now, only the renderer dumps its shaders depending on the verbose
level.

This simplifies vlc_gl_renderer_New(), and paves the way to convert the
renderer to an OpenGL filter.
---
 modules/video_output/opengl/renderer.c    | 8 ++++----
 modules/video_output/opengl/renderer.h    | 7 +++----
 modules/video_output/opengl/vout_helper.c | 5 +----
 3 files changed, 8 insertions(+), 12 deletions(-)

diff --git a/modules/video_output/opengl/renderer.c b/modules/video_output/opengl/renderer.c
index 70e05338c7ea..c98d2f4b76d8 100644
--- a/modules/video_output/opengl/renderer.c
+++ b/modules/video_output/opengl/renderer.c
@@ -192,7 +192,7 @@ BuildVertexShader(const struct vlc_gl_renderer *renderer)
     if (asprintf(&code, template, renderer->glsl_version) < 0)
         return NULL;
 
-    if (renderer->b_dump_shaders)
+    if (renderer->dump_shaders)
         msg_Dbg(renderer->gl, "\n=== Vertex shader for fourcc: %4.4s ===\n%s\n",
                 (const char *) &renderer->sampler->fmt->i_chroma, code);
     return code;
@@ -222,7 +222,7 @@ BuildFragmentShader(struct vlc_gl_renderer *renderer)
     if (ret < 0)
         return NULL;
 
-    if (renderer->b_dump_shaders)
+    if (renderer->dump_shaders)
         msg_Dbg(renderer->gl, "\n=== Fragment shader for fourcc: %4.4s, colorspace: %d ===\n%s\n",
                               (const char *) &sampler->fmt->i_chroma,
                               sampler->fmt->space, code);
@@ -318,7 +318,7 @@ static int SetupCoords(struct vlc_gl_renderer *renderer);
 
 struct vlc_gl_renderer *
 vlc_gl_renderer_New(vlc_gl_t *gl, const struct vlc_gl_api *api,
-                    struct vlc_gl_sampler *sampler, bool b_dump_shaders)
+                    struct vlc_gl_sampler *sampler)
 {
     const opengl_vtable_t *vt = &api->vt;
     const video_format_t *fmt = sampler->fmt;
@@ -332,7 +332,7 @@ vlc_gl_renderer_New(vlc_gl_t *gl, const struct vlc_gl_api *api,
     renderer->gl = gl;
     renderer->api = api;
     renderer->vt = vt;
-    renderer->b_dump_shaders = b_dump_shaders;
+    renderer->dump_shaders = var_InheritInteger(gl, "verbose") >= 4;
 #if defined(USE_OPENGL_ES2)
     renderer->glsl_version = 100;
     renderer->glsl_precision_header = "precision highp float;\n";
diff --git a/modules/video_output/opengl/renderer.h b/modules/video_output/opengl/renderer.h
index 6e3f34b9de33..af2dbd538ff3 100644
--- a/modules/video_output/opengl/renderer.h
+++ b/modules/video_output/opengl/renderer.h
@@ -47,8 +47,8 @@ struct vlc_gl_renderer
     const struct vlc_gl_api *api;
     const opengl_vtable_t *vt; /* for convenience, same as &api->vt */
 
-    /* True to dump shaders, set by the caller */
-    bool b_dump_shaders;
+    /* True to dump shaders */
+    bool dump_shaders;
 
     /* GLSL version, set by the caller. 100 for GLSL ES, 120 for desktop GLSL */
     unsigned glsl_version;
@@ -103,11 +103,10 @@ struct vlc_gl_renderer
  * \param gl the GL context
  * \param api the OpenGL API
  * \param sampler the OpenGL sampler
- * \param dump_shaders indicate if the shaders must be dumped in logs
  */
 struct vlc_gl_renderer *
 vlc_gl_renderer_New(vlc_gl_t *gl, const struct vlc_gl_api *api,
-                    struct vlc_gl_sampler *sampler, bool dump_shaders);
+                    struct vlc_gl_sampler *sampler);
 
 /**
  * Delete a renderer
diff --git a/modules/video_output/opengl/vout_helper.c b/modules/video_output/opengl/vout_helper.c
index 3cf479ae6668..806360e255c3 100644
--- a/modules/video_output/opengl/vout_helper.c
+++ b/modules/video_output/opengl/vout_helper.c
@@ -135,8 +135,6 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
         (GLint)fmt->i_height > max_tex_size)
         ResizeFormatToGLMaxTexSize(fmt, max_tex_size);
 
-    bool b_dump_shaders = var_InheritInteger(gl, "verbose") >= 4;
-
     vgl->interop = vlc_gl_interop_New(gl, &vgl->api, context, fmt, false);
     if (!vgl->interop)
     {
@@ -154,8 +152,7 @@ vout_display_opengl_t *vout_display_opengl_New(video_format_t *fmt,
         return NULL;
     }
 
-    vgl->renderer =
-        vlc_gl_renderer_New(gl, &vgl->api, vgl->sampler, b_dump_shaders);
+    vgl->renderer = vlc_gl_renderer_New(gl, &vgl->api, vgl->sampler);
     if (!vgl->renderer)
     {
         msg_Warn(gl, "Could not create renderer for %4.4s",
-- 
2.27.0



More information about the vlc-devel mailing list