dri2: Trust our own driver name lookup over the server's.
This allows Mesa to choose to rename driver .sos (or split drivers), without needing a flag day with the corresponding 2D driver. v2: Undo the loader-only-for-dri3 change. Reviewed-by: Keith Packard <keithp@keithp.com> [v1] Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> [v1]
This commit is contained in:
parent
be7a6976a8
commit
7bd95ec437
|
@ -100,9 +100,9 @@ libglx_la_SOURCES = \
|
|||
if HAVE_DRI3
|
||||
libglx_la_SOURCES += \
|
||||
dri3_glx.c
|
||||
endif
|
||||
|
||||
libglx_la_LIBADD = $(top_builddir)/src/loader/libloader.la
|
||||
endif
|
||||
|
||||
GL_LIBS = \
|
||||
libglx.la \
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include "dri2.h"
|
||||
#include "dri_common.h"
|
||||
#include "dri2_priv.h"
|
||||
#include "loader.h"
|
||||
|
||||
/* From xmlpool/options.h, user exposed so should be stable */
|
||||
#define DRI_CONF_VBLANK_NEVER 0
|
||||
|
@ -1156,7 +1157,7 @@ dri2CreateScreen(int screen, struct glx_display * priv)
|
|||
struct dri2_screen *psc;
|
||||
__GLXDRIscreen *psp;
|
||||
struct glx_config *configs = NULL, *visuals = NULL;
|
||||
char *driverName, *deviceName, *tmp;
|
||||
char *driverName = NULL, *loader_driverName, *deviceName, *tmp;
|
||||
drm_magic_t magic;
|
||||
int i;
|
||||
|
||||
|
@ -1193,6 +1194,15 @@ dri2CreateScreen(int screen, struct glx_display * priv)
|
|||
goto handle_error;
|
||||
}
|
||||
|
||||
/* If Mesa knows about the appropriate driver for this fd, then trust it.
|
||||
* Otherwise, default to the server's value.
|
||||
*/
|
||||
loader_driverName = loader_get_driver_for_fd(psc->fd, 0);
|
||||
if (loader_driverName) {
|
||||
free(driverName);
|
||||
driverName = loader_driverName;
|
||||
}
|
||||
|
||||
psc->driver = driOpenDriver(driverName);
|
||||
if (psc->driver == NULL) {
|
||||
ErrorMessageF("driver pointer missing\n");
|
||||
|
|
Loading…
Reference in New Issue