summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/PerfQueryBase.cpp
diff options
context:
space:
mode:
authorRyan Houdek <Sonicadvance1@gmail.com>2014-12-19 23:57:31 -0600
committerRyan Houdek <Sonicadvance1@gmail.com>2014-12-20 15:15:57 -0600
commitf2d998c93883c42c24eb661c0f86ac27fed08e78 (patch)
tree7d9cfcb985f10bba67bd51c298be4d7c83e1d084 /Source/Core/VideoCommon/PerfQueryBase.cpp
parent31bc51072bd0f6d5e0517fbb854d0fc96b13f721 (diff)
Work around broken Android garbage.
This fixes running Dolphin on the Nexus 9. Android's EGL stack has internal arrays that they use for tracking OpenGL function usage. Probably has something to do with their OpenGL profiling garbage that used to be in ADT. Android has three of these arrays, each statically allocated. One array is for all GLES 1.x functions One array is for all GLES 2.0/3.0/3.1 and a couple of extensions they deem worthy of being in this array. The last array is for all function pointers grabbed via eglGetProcAddress that isn't in the other two arrays. The last array is the issue that we are having problems with. This array is 256 members in length. So if you are pulling more than 256 function pointers that Google doesn't track in their internal array, the function will return NULL and yell at you in logcat. The Nvidia Shield Tablet gets around this by replacing part of the EGL stack with their own implementation that doesn't have this garbage. The Nexus 9 on the other hand doesn't get away with this. So we pull >100 more function pointers than the array can handle, and some of those we need to use. The workaround for this is to grab OpenGL 1.1 functions last because we won't actually be using those functions, so we get away with not grabbing the function pointers.
Diffstat (limited to 'Source/Core/VideoCommon/PerfQueryBase.cpp')
0 files changed, 0 insertions, 0 deletions