[PATCH 06/21] glamor: Initialize XV shaders from glamor_xv_init instead of glamor_init

Keith Packard keithp at keithp.com
Tue Apr 1 17:29:05 PDT 2014


The glamor_init calls to glamor_init_xv_shader were never getting run
because GLAMOR_XV was never defined. Instead of trying to make that
work, fix glamor_xv_init to make the call instead.

Further, just get rid of the glamor_fini_xv_shader function entirely
as the shader program will be destroyed when the context is destroyed
at server reset time.

Signed-off-by: Keith Packard <keithp at keithp.com>
---
 glamor/glamor.c    |  6 ------
 glamor/glamor_xv.c | 14 ++------------
 2 files changed, 2 insertions(+), 18 deletions(-)

diff --git a/glamor/glamor.c b/glamor/glamor.c
index 971dbf8..a7d981c 100644
--- a/glamor/glamor.c
+++ b/glamor/glamor.c
@@ -494,9 +494,6 @@ glamor_init(ScreenPtr screen, unsigned int flags)
 #ifdef GLAMOR_GRADIENT_SHADER
     glamor_init_gradient_shader(screen);
 #endif
-#ifdef GLAMOR_XV
-    glamor_init_xv_shader(screen);
-#endif
     glamor_pixmap_init(screen);
     glamor_glyphs_init(screen);
 
@@ -516,9 +513,6 @@ glamor_release_screen_priv(ScreenPtr screen)
     glamor_screen_private *glamor_priv;
 
     glamor_priv = glamor_get_screen_private(screen);
-#ifdef GLAMOR_XV
-    glamor_fini_xv_shader(screen);
-#endif
 #ifdef RENDER
     glamor_fini_composite_shaders(screen);
 #endif
diff --git a/glamor/glamor_xv.c b/glamor/glamor_xv.c
index 17745a4..4e60fa3 100644
--- a/glamor/glamor_xv.c
+++ b/glamor/glamor_xv.c
@@ -114,18 +114,6 @@ glamor_init_xv_shader(ScreenPtr screen)
     glamor_put_context(glamor_priv);
 }
 
-void
-glamor_fini_xv_shader(ScreenPtr screen)
-{
-    glamor_screen_private *glamor_priv;
-
-    glamor_priv = glamor_get_screen_private(screen);
-    glamor_get_context(glamor_priv);
-
-    glDeleteProgram(glamor_priv->xv_prog);
-    glamor_put_context(glamor_priv);
-}
-
 #define ClipValue(v,min,max) ((v) < (min) ? (min) : (v) > (max) ? (max) : (v))
 #define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE)
 
@@ -559,6 +547,8 @@ glamor_xv_init(ScreenPtr screen, int num_texture_ports)
     XF86VideoAdaptorPtr adapt;
     int i;
 
+    glamor_init_xv_shader(screen);
+
     adapt = calloc(1, sizeof(XF86VideoAdaptorRec) + num_texture_ports *
                    (sizeof(glamor_port_private) + sizeof(DevUnion)));
     if (adapt == NULL)
-- 
1.9.0



More information about the xorg-devel mailing list