Merge "EGL: querying client extensions as well for EGL 1.5 extensions"
diff --git a/opengl/libs/EGL/egl_display.cpp b/opengl/libs/EGL/egl_display.cpp
index 54fa89f..12947b2 100644
--- a/opengl/libs/EGL/egl_display.cpp
+++ b/opengl/libs/EGL/egl_display.cpp
@@ -340,6 +340,17 @@
mVersionString = sVersionString15;
cnx->driverVersion = EGL_MAKE_VERSION(1, 5, 0);
} else if ((cnx->major == 1) && (cnx->minor == 4)) {
+ /* Querying extension strings for type Client */
+ std::string typesExtString;
+ static const char* clientExtensions =
+ cnx->egl.eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS);
+ if (clientExtensions != nullptr && strlen(clientExtensions) > 0) {
+ typesExtString.append(clientExtensions);
+ typesExtString.append(" ");
+ }
+
+ /* Adding extension strings for type Display */
+ typesExtString.append(disp.queryString.extensions);
mVersionString = sVersionString14;
// Extensions needed for an EGL 1.4 implementation to be
// able to support EGL 1.5 functionality
@@ -356,9 +367,9 @@
};
bool extensionsFound = true;
for (const auto& name : egl15extensions) {
- extensionsFound &= findExtension(disp.queryString.extensions, name);
+ extensionsFound &= findExtension(typesExtString.c_str(), name);
ALOGV("Extension %s: %s", name,
- findExtension(disp.queryString.extensions, name) ? "Found" : "Missing");
+ findExtension(typesExtString.c_str(), name) ? "Found" : "Missing");
}
// NOTE: From the spec:
// Creation of fence sync objects requires support from the bound