mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-27 23:30:10 +01:00
targets/egl: Check against drm_driver_descriptor::name.
drm_driver_descriptor::driver_name is defined to be the name of the kernel module. We should check against drm_driver_descriptor::name instead of drm_driver_descriptor::driver_name.
This commit is contained in:
parent
0ba1643658
commit
65741c596f
3 changed files with 15 additions and 16 deletions
|
|
@ -155,24 +155,23 @@ load_pipe_module(struct pipe_module *pmod, const char *name)
|
|||
if (!pmod->name)
|
||||
return FALSE;
|
||||
|
||||
_eglLog(_EGL_DEBUG, "searching for pipe module %s", pmod->name);
|
||||
_eglSearchPathForEach(dlopen_pipe_module_cb, (void *) pmod);
|
||||
if (pmod->lib) {
|
||||
pmod->drmdd = (const struct drm_driver_descriptor *)
|
||||
util_dl_get_proc_address(pmod->lib, "driver_descriptor");
|
||||
if (pmod->drmdd) {
|
||||
if (pmod->drmdd->driver_name) {
|
||||
/* driver name mismatch */
|
||||
if (strcmp(pmod->drmdd->driver_name, pmod->name) != 0)
|
||||
pmod->drmdd = NULL;
|
||||
}
|
||||
else {
|
||||
/* swrast */
|
||||
pmod->swrast_create_screen =
|
||||
(struct pipe_screen *(*)(struct sw_winsys *))
|
||||
util_dl_get_proc_address(pmod->lib, "swrast_create_screen");
|
||||
if (!pmod->swrast_create_screen)
|
||||
pmod->drmdd = NULL;
|
||||
}
|
||||
|
||||
/* sanity check on the name */
|
||||
if (pmod->drmdd && strcmp(pmod->drmdd->name, pmod->name) != 0)
|
||||
pmod->drmdd = NULL;
|
||||
|
||||
/* swrast */
|
||||
if (pmod->drmdd && !pmod->drmdd->driver_name) {
|
||||
pmod->swrast_create_screen =
|
||||
(struct pipe_screen *(*)(struct sw_winsys *))
|
||||
util_dl_get_proc_address(pmod->lib, "swrast_create_screen");
|
||||
if (!pmod->swrast_create_screen)
|
||||
pmod->drmdd = NULL;
|
||||
}
|
||||
|
||||
if (!pmod->drmdd) {
|
||||
|
|
|
|||
|
|
@ -24,4 +24,4 @@ create_screen(int fd)
|
|||
}
|
||||
|
||||
PUBLIC
|
||||
DRM_DRIVER_DESCRIPTOR("r300", "r300", create_screen)
|
||||
DRM_DRIVER_DESCRIPTOR("r300", "radeon", create_screen)
|
||||
|
|
|
|||
|
|
@ -24,4 +24,4 @@ create_screen(int fd)
|
|||
}
|
||||
|
||||
PUBLIC
|
||||
DRM_DRIVER_DESCRIPTOR("r600", "r600", create_screen)
|
||||
DRM_DRIVER_DESCRIPTOR("r600", "radeon", create_screen)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue