From 9877e1ce3edfe4e5a16a9958d4f1674ec4c0f21d Mon Sep 17 00:00:00 2001
From: twinaphex <libretro@gmail.com>
Date: Tue, 5 Feb 2019 02:12:42 +0100
Subject: [PATCH] (GL) Cleanups

---
 gfx/drivers/gl.c   | 5 +++++
 gfx/video_driver.c | 6 ------
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/gfx/drivers/gl.c b/gfx/drivers/gl.c
index d8888b14cd..2bf3af5d63 100644
--- a/gfx/drivers/gl.c
+++ b/gfx/drivers/gl.c
@@ -2864,6 +2864,9 @@ static void gl_free(void *data)
       gl2_renderchain_fence_free(gl, gl->renderchain_data);
 
    font_driver_free_osd();
+
+   if (gl->shader->deinit)
+      gl->shader->deinit(gl->shader_data);
    video_shader_driver_deinit();
 
    glDeleteTextures(gl->textures, gl->texture);
@@ -3675,6 +3678,8 @@ static bool gl_set_shader(void *data,
    if (type == RARCH_SHADER_NONE)
       return false;
 
+   if (gl->shader->deinit)
+      gl->shader->deinit(gl->shader_data);
    video_shader_driver_deinit();
 
    switch (type)
diff --git a/gfx/video_driver.c b/gfx/video_driver.c
index a479137405..ee7fc7b942 100644
--- a/gfx/video_driver.c
+++ b/gfx/video_driver.c
@@ -3462,12 +3462,6 @@ bool video_shader_driver_get_current_shader(video_shader_ctx_t *shader)
 
 bool video_shader_driver_deinit(void)
 {
-   if (!current_shader)
-      return false;
-
-   if (current_shader->deinit)
-      current_shader->deinit(current_shader_data);
-
    current_shader_data    = NULL;
    current_shader         = NULL;
    return true;