mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 13:57:57 -07:00
f2d998c938
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. |
||
---|---|---|
.. | ||
ARB_blend_func_extended.h | ||
ARB_buffer_storage.h | ||
ARB_debug_output.h | ||
ARB_draw_elements_base_vertex.h | ||
ARB_ES2_compatibility.h | ||
ARB_framebuffer_object.h | ||
ARB_get_program_binary.h | ||
ARB_map_buffer_range.h | ||
ARB_sample_shading.h | ||
ARB_sampler_objects.h | ||
ARB_sync.h | ||
ARB_texture_multisample.h | ||
ARB_uniform_buffer_object.h | ||
ARB_vertex_array_object.h | ||
ARB_viewport_array.h | ||
gl_1_1.h | ||
gl_1_2.h | ||
gl_1_3.h | ||
gl_1_4.h | ||
gl_1_5.h | ||
gl_2_0.h | ||
gl_3_0.h | ||
gl_3_1.h | ||
gl_3_2.h | ||
gl_common.h | ||
GLExtensions.cpp | ||
GLExtensions.h | ||
KHR_debug.h | ||
NV_primitive_restart.h |