diff --git a/gfx/d3d/render_chain_cg.cpp b/gfx/d3d/render_chain_cg.cpp
index 8bb647ef25..bbe45e0deb 100644
--- a/gfx/d3d/render_chain_cg.cpp
+++ b/gfx/d3d/render_chain_cg.cpp
@@ -205,10 +205,10 @@ end:
    return ret;
 }
 
-static INLINE void renderchain_set_shaders(void *data, CGprogram *fPrg, CGprogram *vPrg)
+static INLINE void renderchain_set_shaders(CGprogram frag, CGprogram vert)
 {
-   cgD3D9BindProgram(*fPrg);
-   cgD3D9BindProgram(*vPrg);
+   cgD3D9BindProgram(frag);
+   cgD3D9BindProgram(vert);
 }
 
 static void renderchain_set_shader_mvp(cg_renderchain_t *chain, void *shader_data, void *matrix_data)
@@ -860,7 +860,7 @@ static bool cg_d3d9_renderchain_init(void *data,
    if (!d3d9_cg_load_program(chain, &chain->fStock, &chain->vStock, NULL, false))
       return false;
 
-   renderchain_set_shaders(chain, &chain->fStock, &chain->vStock);
+   renderchain_set_shaders(chain->fStock, chain->vStock);
 
    return true;
 }
@@ -1275,7 +1275,7 @@ static void renderchain_render_pass(
    if (!chain)
       return;
    
-   renderchain_set_shaders(chain, &pass->fPrg, &pass->vPrg);
+   renderchain_set_shaders(pass->fPrg, pass->vPrg);
 
    d3d_set_texture(chain->dev, 0, pass->tex);
    d3d_set_sampler_minfilter(chain->dev, 0,
@@ -1443,7 +1443,7 @@ static bool cg_d3d9_renderchain_render(
    back_buffer->Release();
 
    renderchain_end_render(chain);
-   renderchain_set_shaders(chain, &chain->fStock, &chain->vStock);
+   renderchain_set_shaders(chain->fStock, chain->vStock);
    renderchain_set_mvp(chain, chain->vStock, chain->final_viewport->Width,
          chain->final_viewport->Height, 0);
 
diff --git a/gfx/drivers_shader/shader_gl_cg.c b/gfx/drivers_shader/shader_gl_cg.c
index 2a038a364d..9a8cfeeb11 100644
--- a/gfx/drivers_shader/shader_gl_cg.c
+++ b/gfx/drivers_shader/shader_gl_cg.c
@@ -974,6 +974,12 @@ static void gl_cg_set_pass_attrib(
       fbo->coord = cgGetNamedParameter(program->vprg, attr_buf);
 }
 
+static INLINE void gl_cg_set_shaders(CGprogram frag, CGprogram vert)
+{
+   cgGLBindProgram(frag);
+   cgGLBindProgram(vert);
+}
+
 static void gl_cg_set_program_attributes(void *data, unsigned i)
 {
    unsigned j;
@@ -982,8 +988,7 @@ static void gl_cg_set_program_attributes(void *data, unsigned i)
    if (!cg_data)
       return;
 
-   cgGLBindProgram(cg_data->prg[i].fprg);
-   cgGLBindProgram(cg_data->prg[i].vprg);
+   gl_cg_set_shaders(cg_data->prg[i].fprg, cg_data->prg[i].vprg);
 
    gl_cg_set_program_base_attrib(cg_data, i);
 
@@ -1153,8 +1158,7 @@ static void *gl_cg_init(void *data, const char *path)
    /* No need to apply Android hack in Cg. */
    cg_data->prg[VIDEO_SHADER_STOCK_BLEND]    = cg_data->prg[0];
 
-   cgGLBindProgram(cg_data->prg[1].fprg);
-   cgGLBindProgram(cg_data->prg[1].vprg);
+   gl_cg_set_shaders(cg_data->prg[1].fprg, cg_data->prg[1].vprg);
 
    return cg_data;
 
@@ -1176,8 +1180,7 @@ static void gl_cg_use(void *data, void *shader_data, unsigned idx, bool set_acti
          cg_data->active_idx = idx;
       }
 
-      cgGLBindProgram(cg_data->prg[idx].vprg);
-      cgGLBindProgram(cg_data->prg[idx].fprg);
+      gl_cg_set_shaders(cg_data->prg[idx].fprg, cg_data->prg[idx].vprg);
    }
 }