Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 24aa4e8a authored by Android (Google) Code Review's avatar Android (Google) Code Review
Browse files

Merge change 26060 into eclair

* changes:
  log an error when loading an existing GL driver fails
parents 9963a67a 8c17384a
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -222,19 +222,28 @@ void Loader::init_api(void* dso,
    }
}

void *Loader::load_driver(const char* driver, gl_hooks_t* hooks, uint32_t mask)
void *Loader::load_driver(const char* driver_absolute_path,
        gl_hooks_t* hooks, uint32_t mask)
{
    void* dso = dlopen(driver, RTLD_NOW | RTLD_LOCAL);
    if (dso == 0)
    if (access(driver_absolute_path, R_OK)) {
        // this happens often, we don't want to log an error
        return 0;
    }

    void* dso = dlopen(driver_absolute_path, RTLD_NOW | RTLD_LOCAL);
    if (dso == 0) {
        const char* err = dlerror();
        LOGE("load_driver(%s): %s", driver_absolute_path, err?err:"unknown");
        return 0;
    }

    LOGD("loaded %s", driver);
    LOGD("loaded %s", driver_absolute_path);

    if (mask & EGL) {
        getProcAddress = (getProcAddressType)dlsym(dso, "eglGetProcAddress");

        LOGE_IF(!getProcAddress, 
                "can't find eglGetProcAddress() in %s", driver);        
                "can't find eglGetProcAddress() in %s", driver_absolute_path);

        gl_hooks_t::egl_t* egl = &hooks->egl;
        __eglMustCastToProperFunctionPointerType* curr =