mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 06:40:11 +01:00
mapi: Return NULL function pointers for GL_EXT_debug_marker
Mesa returns a stub function pointer to glAnything for years. Android framework till API level 30 just uses function pointers returned from eglGetProcAddress without checking if the underlying extension is supported. If we return stub pointers for functions in GL_EXT_debug_marker, Android just uses our stub functions instead of its own stubs and then fail the dEQP. In the past, the issue didn't show up because mesa only has limited slots and run out of slots before Android calls eglGetProcAddress on functions inside GL_EXT_debug_marker. Signed-off-by: Lepton Wu <lepton@chromium.org> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5652>
This commit is contained in:
parent
258165bed4
commit
a2065917cc
1 changed files with 17 additions and 0 deletions
|
|
@ -169,6 +169,15 @@ _glapi_add_dispatch( const char * const * function_names,
|
|||
return (alias) ? stub_get_slot(alias) : -1;
|
||||
}
|
||||
|
||||
#if defined(ANDROID) && ANDROID_API_LEVEL <= 30
|
||||
static int is_debug_marker_func(const char *name)
|
||||
{
|
||||
return (!strcmp(name, "InsertEventMarkerEXT") ||
|
||||
!strcmp(name, "PushGroupMarkerEXT") ||
|
||||
!strcmp(name, "PopGroupMarkerEXT"));
|
||||
}
|
||||
#endif
|
||||
|
||||
static const struct mapi_stub *
|
||||
_glapi_get_stub(const char *name, int generate)
|
||||
{
|
||||
|
|
@ -179,7 +188,15 @@ _glapi_get_stub(const char *name, int generate)
|
|||
name += 2;
|
||||
|
||||
stub = stub_find_public(name);
|
||||
#if defined(ANDROID) && ANDROID_API_LEVEL <= 30
|
||||
/* Android framework till API Level 30 uses function pointers from
|
||||
* eglGetProcAddress without checking GL_EXT_debug_marker.
|
||||
* Make sure we don't return stub function pointers if we don't
|
||||
* support GL_EXT_debug_marker */
|
||||
if (!stub && !is_debug_marker_func(name))
|
||||
#else
|
||||
if (!stub)
|
||||
#endif
|
||||
stub = stub_find_dynamic(name, generate);
|
||||
|
||||
return stub;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue