From 15be2d6b347949088a09d37463dbdaf2c7cac4f1 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Thu, 20 Jul 2017 19:06:32 -1000 Subject: [PATCH 1/2] The BGRA8888 gl extension is not working in iOS 10 and 11; report capability as false to get rendering the screen working again for cores that output in the BGRA8888 pixel format (mednafen_psx, nestopia, others?) --- libretro-common/gfx/gl_capabilities.c | 7 +- .../RetroArch_iOS10.xcodeproj/project.pbxproj | 93 ++++++++++--------- 2 files changed, 53 insertions(+), 47 deletions(-) diff --git a/libretro-common/gfx/gl_capabilities.c b/libretro-common/gfx/gl_capabilities.c index 41c574e485..1474c8341a 100644 --- a/libretro-common/gfx/gl_capabilities.c +++ b/libretro-common/gfx/gl_capabilities.c @@ -298,7 +298,12 @@ bool gl_check_capability(enum gl_capability_enum enum_idx) #endif break; case GL_CAPS_BGRA8888: -#ifdef HAVE_OPENGLES +#ifdef TARGET_IOS_10 + /* In iOS 10 and 11, this capability is reported but is no longer working, */ + /* resulting in an error when glTexSubImage2D is called with this pixel format. */ + /* Resort to doing the pixel format conversion on the cpu */ + return false; +#elif HAVE_OPENGLES /* There are both APPLE and EXT variants. */ if (gl_query_extension("BGRA8888") && !strstr(renderer, "VideoCore")) return true; diff --git a/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj index 50474b1aa7..7e6e9ba881 100644 --- a/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj @@ -295,7 +295,6 @@ isa = PBXGroup; children = ( D48581DC16F823E2004BEB17 /* griffin */, - 96AFAEE516C1DC73009DE44C /* audio */, 96AFAF3116C1E00A009DE44C /* gfx */, ); name = core; @@ -413,7 +412,7 @@ DevelopmentTeam = UK699V5ZS8; }; 9204BE091D319EF300BD49DB = { - DevelopmentTeam = UK699V5ZS8; + DevelopmentTeam = R72X3BF4KE; DevelopmentTeamName = "Yoshinobu Sugawara"; }; 96AFAE2416C1D4EA009DE44C = { @@ -584,15 +583,15 @@ LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -669,15 +668,15 @@ OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -724,15 +723,15 @@ "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -810,15 +809,15 @@ LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -893,15 +892,15 @@ OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -945,15 +944,15 @@ "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1012,7 +1011,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; - DEVELOPMENT_TEAM = UK699V5ZS8; + DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = NO; GCC_PREFIX_HEADER = ""; @@ -1027,15 +1026,15 @@ LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1077,6 +1076,7 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-DHAVE_AVFOUNDATION", + "-DTARGET_IOS_10", ); PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchiOS10; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1097,7 +1097,7 @@ CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; - DEVELOPMENT_TEAM = UK699V5ZS8; + DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = NO; GCC_PREFIX_HEADER = ""; @@ -1113,15 +1113,15 @@ OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1164,19 +1164,20 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-DHAVE_AVFOUNDATION", + "-DTARGET_IOS_10", ); "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1257,15 +1258,15 @@ IPHONEOS_DEPLOYMENT_TARGET = 6.0; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1331,15 +1332,15 @@ OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1408,15 +1409,15 @@ LIBRARY_SEARCH_PATHS = ""; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1494,15 +1495,15 @@ OTHER_CFLAGS = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", @@ -1549,15 +1550,15 @@ "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", - "-DDONT_WANT_ARM_OPTIMIZATIONS", - "-DHAVE_APPLE_STORE", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_APPLE_STORE", "-DHAVE_NETWORKGAMEPAD", "-DHAVE_CORETEXT", "-DHAVE_HID", "-DHAVE_NETWORKING", "-DHAVE_AVFOUNDATION", "-DHAVE_GRIFFIN", - "-DHAVE_STB_VORBIS", + "-DHAVE_STB_VORBIS", "-DHAVE_MINIUPNPC", "-DHAVE_BUILTINMINIUPNPC", "-DHAVE_UPDATE_ASSETS", From 4b29c9dcadbb79c377f4604f8313c9b6d5fcfc39 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Thu, 20 Jul 2017 19:13:18 -1000 Subject: [PATCH 2/2] Returning false for the BGRA8888 opengl extension for all iOS devices --- libretro-common/gfx/gl_capabilities.c | 6 +++--- pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj | 2 -- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/libretro-common/gfx/gl_capabilities.c b/libretro-common/gfx/gl_capabilities.c index 1474c8341a..27a2ffed3f 100644 --- a/libretro-common/gfx/gl_capabilities.c +++ b/libretro-common/gfx/gl_capabilities.c @@ -298,9 +298,9 @@ bool gl_check_capability(enum gl_capability_enum enum_idx) #endif break; case GL_CAPS_BGRA8888: -#ifdef TARGET_IOS_10 - /* In iOS 10 and 11, this capability is reported but is no longer working, */ - /* resulting in an error when glTexSubImage2D is called with this pixel format. */ +#ifdef TARGET_OS_IPHONE + /* In iOS, this capability is reported but is not working. */ + /* Results in an error when glTexSubImage2D is called with this pixel format. */ /* Resort to doing the pixel format conversion on the cpu */ return false; #elif HAVE_OPENGLES diff --git a/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj index 7e6e9ba881..117e54fd91 100644 --- a/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS10.xcodeproj/project.pbxproj @@ -1076,7 +1076,6 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-DHAVE_AVFOUNDATION", - "-DTARGET_IOS_10", ); PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchiOS10; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -1164,7 +1163,6 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-DHAVE_AVFOUNDATION", - "-DTARGET_IOS_10", ); "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1",