iOS/tvOS: create gl context as gles3 (#15958)

iOS 7+ supports gles3, which is backwards compatible with gles2. This
doesn't enable the glcore driver (which isn't working on ios yet), it
just changes the underlying context.

This fixes some of the rendering performance problems on mupen64plus_next.
This commit is contained in:
Eric Warmenhoven 2023-11-30 06:30:17 -05:00 committed by GitHub
parent 36d9bdc2da
commit d2253c3de3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 8 deletions

View File

@ -473,9 +473,8 @@ static bool cocoa_gl_gfx_ctx_set_video_mode(void *data,
cocoa_ctx_data_t *cocoa_ctx = (cocoa_ctx_data_t*)data;
if (cocoa_ctx->flags & COCOA_CTX_FLAG_USE_HW_CTX)
g_hw_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
g_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
glk_view.context = g_ctx;
g_hw_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
g_ctx = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
#ifdef OSX
[g_ctx makeCurrentContext];
@ -483,6 +482,8 @@ static bool cocoa_gl_gfx_ctx_set_video_mode(void *data,
[EAGLContext setCurrentContext:g_ctx];
#endif
glk_view.context = g_ctx;
/* TODO: Maybe iOS users should be able to
* show/hide the status bar here? */
return true;

View File

@ -30,7 +30,7 @@
#if defined(HAVE_COCOATOUCH) || defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)
#include "../ui/drivers/cocoa/cocoa_common.m"
#if defined(HAVE_OPENGL) || defined(HAVE_OPENGL_ES)
#if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES)
#include "../gfx/drivers_context/cocoa_gl_ctx.m"
#endif
#if defined(HAVE_VULKAN)

View File

@ -2082,7 +2082,7 @@
"-DHAVE_ONLINE_UPDATER",
"-DHAVE_OPENGL",
"-DHAVE_OPENGLES",
"-DHAVE_OPENGLES2",
"-DHAVE_OPENGLES3",
"-DHAVE_OZONE",
"-DHAVE_PATCH",
"-DHAVE_RBMP",
@ -2204,7 +2204,7 @@
"-DHAVE_ONLINE_UPDATER",
"-DHAVE_OPENGL",
"-DHAVE_OPENGLES",
"-DHAVE_OPENGLES2",
"-DHAVE_OPENGLES3",
"-DHAVE_OZONE",
"-DHAVE_PATCH",
"-DHAVE_RBMP",

View File

@ -6525,7 +6525,7 @@ bool retroarch_main_init(int argc, char *argv[])
{
RARCH_ERR("%s: \"%s\"\n",
msg_hash_to_str(MSG_FATAL_ERROR_RECEIVED_IN),
global->error_string);
global_get_ptr()->error_string);
goto error;
}
@ -6835,7 +6835,7 @@ bool retroarch_main_init(int argc, char *argv[])
error:
command_event(CMD_EVENT_CORE_DEINIT, NULL);
runloop_st->flags &= ~RUNLOOP_FLAG_IS_INITED;
runloop_state_get_ptr()->flags &= ~RUNLOOP_FLAG_IS_INITED;
return false;
}