(GL) Create GL_CAPS_ES2_COMPAT

This commit is contained in:
twinaphex 2016-08-01 16:19:41 +02:00
parent bbc303c7f2
commit 78217ca32b

View File

@ -317,7 +317,8 @@ enum gl_capability_enum
GL_CAPS_FBO, GL_CAPS_FBO,
GL_CAPS_ARGB8, GL_CAPS_ARGB8,
GL_CAPS_DEBUG, GL_CAPS_DEBUG,
GL_CAPS_PACKED_DEPTH_STENCIL GL_CAPS_PACKED_DEPTH_STENCIL,
GL_CAPS_ES2_COMPAT
}; };
static bool gl_check_capability(enum gl_capability_enum enum_idx) static bool gl_check_capability(enum gl_capability_enum enum_idx)
@ -416,6 +417,22 @@ static bool gl_check_capability(enum gl_capability_enum enum_idx)
#endif #endif
} }
break; break;
case GL_CAPS_ES2_COMPAT:
#ifndef HAVE_OPENGLES
{
const char *vendor = (const char*)glGetString(GL_VENDOR);
const char *renderer = (const char*)glGetString(GL_RENDERER);
if (vendor && renderer && (strstr(vendor, "ATI") || strstr(renderer, "ATI")))
{
RARCH_LOG("[GL]: ATI card detected, skipping check for GL_RGB565 support.\n");
return false;
}
if (gl_query_extension("ARB_ES2_compatibility"))
return true;
}
#endif
break;
case GL_CAPS_NONE: case GL_CAPS_NONE:
default: default:
break; break;
@ -2330,7 +2347,6 @@ static void gl_set_nonblock_state(void *data, bool state)
static bool resolve_extensions(gl_t *gl, const char *context_ident) static bool resolve_extensions(gl_t *gl, const char *context_ident)
{ {
unsigned major = 0, minor = 0; unsigned major = 0, minor = 0;
const char *vendor = (const char*)glGetString(GL_VENDOR);
const char *renderer = (const char*)glGetString(GL_RENDERER); const char *renderer = (const char*)glGetString(GL_RENDERER);
const char *version = (const char*)glGetString(GL_VERSION); const char *version = (const char*)glGetString(GL_VERSION);
#if defined(HAVE_GL_SYNC) || defined(HAVE_FBO) #if defined(HAVE_GL_SYNC) || defined(HAVE_FBO)
@ -2339,7 +2355,6 @@ static bool resolve_extensions(gl_t *gl, const char *context_ident)
struct retro_hw_render_callback *hwr = struct retro_hw_render_callback *hwr =
video_driver_get_hw_context(); video_driver_get_hw_context();
(void)vendor;
(void)renderer; (void)renderer;
(void)version; (void)version;
(void)hwr; (void)hwr;
@ -2368,11 +2383,7 @@ static bool resolve_extensions(gl_t *gl, const char *context_ident)
* The speed gain from using GL_RGB565 is worth * The speed gain from using GL_RGB565 is worth
* adding some workarounds for. * adding some workarounds for.
*/ */
gl->have_es2_compat = gl_check_capability(GL_CAPS_ES2_COMPAT);
if (vendor && renderer && (strstr(vendor, "ATI") || strstr(renderer, "ATI")))
RARCH_LOG("[GL]: ATI card detected, skipping check for GL_RGB565 support.\n");
else
gl->have_es2_compat = gl_query_extension("ARB_ES2_compatibility");
if (major >= 3) if (major >= 3)
gl->have_full_npot_support = true; gl->have_full_npot_support = true;