Commit 8811093d authored by spang@chromium.org's avatar spang@chromium.org

ozone: gbm: Fix libglapi linkage errors under gbm

This works around missing linkage between mesa's DRI drivers (e.g.
i965_dri.so) and libglapi.so.0. This causes problems under gbm.

TEST=chrome --ozone-platform=gbm on link_freon
BUG=377497
NOTRY=true

Review URL: https://codereview.chromium.org/310673002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@274327 0039d316-1c4b-4281-b951-d872f2087c98
parent cb2b21ac
......@@ -4,6 +4,7 @@
#include "ui/ozone/platform/dri/ozone_platform_gbm.h"
#include <dlfcn.h>
#include <stdlib.h>
#include <gbm.h>
......@@ -32,9 +33,12 @@ class GbmSurfaceGenerator : public ScanoutSurfaceGenerator {
public:
GbmSurfaceGenerator(DriWrapper* dri)
: dri_(dri),
glapi_lib_(dlopen("libglapi.so.0", RTLD_LAZY | RTLD_GLOBAL)),
device_(gbm_create_device(dri_->get_fd())) {}
virtual ~GbmSurfaceGenerator() {
gbm_device_destroy(device_);
if (glapi_lib_)
dlclose(glapi_lib_);
}
gbm_device* device() const { return device_; }
......@@ -46,6 +50,9 @@ class GbmSurfaceGenerator : public ScanoutSurfaceGenerator {
private:
DriWrapper* dri_; // Not owned.
// HACK: gbm drivers have broken linkage
void *glapi_lib_;
gbm_device* device_;
DISALLOW_COPY_AND_ASSIGN(GbmSurfaceGenerator);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment