Try to query context driver about core GL context ability

This commit is contained in:
twinaphex 2016-05-05 05:52:38 +02:00
parent 9d225e388f
commit d176f2d48f
1 changed files with 16 additions and 11 deletions

View File

@ -40,22 +40,27 @@ static const shader_backend_t *video_shader_set_backend(enum rarch_shader_type t
switch (type) switch (type)
{ {
case RARCH_SHADER_CG: case RARCH_SHADER_CG:
{
#ifdef HAVE_CG #ifdef HAVE_CG
if (core_context_inited) gfx_ctx_flags_t flags;
{ gfx_ctx_ctl(GFX_CTL_GET_FLAGS, &flags);
RARCH_ERR("[Shader driver]: Cg cannot be used with core GL context. Trying to fall back to GLSL...\n"); if (flags.flags && (1UL << GFX_CTX_FLAGS_GL_CORE_CONTEXT))
{
RARCH_ERR("[Shader driver]: Cg cannot be used with core GL context. Trying to fall back to GLSL...\n");
#ifdef HAVE_GLSL #ifdef HAVE_GLSL
return &gl_glsl_backend; return &gl_glsl_backend;
#endif #endif
} }
else else
{ {
RARCH_LOG("[Shader driver]: Using Cg shader backend.\n"); RARCH_LOG("[Shader driver]: Using Cg shader backend.\n");
return &gl_cg_backend; return &gl_cg_backend;
} }
#else #else
break; break;
#endif #endif
}
case RARCH_SHADER_GLSL: case RARCH_SHADER_GLSL:
#ifdef HAVE_GLSL #ifdef HAVE_GLSL
RARCH_LOG("[Shader driver]: Using GLSL shader backend.\n"); RARCH_LOG("[Shader driver]: Using GLSL shader backend.\n");