nouveau: Build the driver into the shared mesa_dri_drivers.so.
v2: drop dridir now that it's unused.
v3: Consistently put spaces around += in the updated Makefile.am block.
v4: Set a global driverAPI variable so loaders don't have to update to
createNewScreen2() (though they may want to for thread safety).
v5: Fix missed public symbol in nouveau. (caught by Emil)
Reviewed-by: Matt Turner <mattst88@gmail.com> (v2)
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
This commit is contained in:
+1
-1
@@ -1039,7 +1039,7 @@ fi
|
||||
enable_dricore=no
|
||||
enable_megadriver=no
|
||||
for driver in $DRI_DIRS; do
|
||||
if test $driver != "i965"; then
|
||||
if test $driver != "i965" -a $driver != "nouveau"; then
|
||||
enable_dricore=yes
|
||||
else
|
||||
enable_megadriver=yes
|
||||
|
||||
@@ -17,7 +17,9 @@ MEGADRIVERS += i965_dri.so
|
||||
endif
|
||||
|
||||
if HAVE_NOUVEAU_DRI
|
||||
SUBDIRS+=nouveau
|
||||
SUBDIRS += nouveau
|
||||
MEGADRIVERS_DEPS += nouveau/libnouveau_dri.la
|
||||
MEGADRIVERS += nouveau_vieux_dri.so
|
||||
endif
|
||||
|
||||
if HAVE_R200_DRI
|
||||
|
||||
@@ -33,20 +33,6 @@ AM_CFLAGS = \
|
||||
$(VISIBILITY_CFLAGS) \
|
||||
$(NOUVEAU_CFLAGS)
|
||||
|
||||
dridir = $(DRI_DRIVER_INSTALL_DIR)
|
||||
dri_LTLIBRARIES = nouveau_vieux_dri.la
|
||||
|
||||
nouveau_vieux_dri_la_SOURCES = \
|
||||
$(NOUVEAU_C_FILES)
|
||||
|
||||
nouveau_vieux_dri_la_LDFLAGS = $(DRI_DRIVER_LDFLAGS)
|
||||
nouveau_vieux_dri_la_LIBADD = \
|
||||
../common/libdricommon.la \
|
||||
$(DRI_LIB_DEPS) \
|
||||
$(NOUVEAU_LIBS)
|
||||
|
||||
# Provide compatibility with scripts for the old Mesa build system for
|
||||
# a while by putting a link to the driver into /lib of the build tree.
|
||||
all-local: nouveau_vieux_dri.la
|
||||
$(MKDIR_P) $(top_builddir)/$(LIB_DIR);
|
||||
ln -f .libs/nouveau_vieux_dri.so $(top_builddir)/$(LIB_DIR)/nouveau_vieux_dri.so;
|
||||
noinst_LTLIBRARIES = libnouveau_dri.la
|
||||
libnouveau_dri_la_SOURCES = $(NOUVEAU_C_FILES)
|
||||
libnouveau_dri_la_LIBADD = $(NOUVEAU_LIBS)
|
||||
|
||||
@@ -246,7 +246,7 @@ static const __DRIextension *nouveau_screen_extensions[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
const struct __DriverAPIRec driDriverAPI = {
|
||||
const struct __DriverAPIRec nouveau_driver_api = {
|
||||
.InitScreen = nouveau_init_screen2,
|
||||
.DestroyScreen = nouveau_destroy_screen,
|
||||
.CreateBuffer = nouveau_create_buffer,
|
||||
@@ -257,9 +257,22 @@ const struct __DriverAPIRec driDriverAPI = {
|
||||
.UnbindContext = nouveau_context_unbind,
|
||||
};
|
||||
|
||||
static const struct __DRIDriverVtableExtensionRec nouveau_vtable = {
|
||||
.base = { __DRI_DRIVER_VTABLE, 1 },
|
||||
.vtable = &nouveau_driver_api,
|
||||
};
|
||||
|
||||
/* This is the table of extensions that the loader will dlsym() for. */
|
||||
PUBLIC const __DRIextension *__driDriverExtensions[] = {
|
||||
static const __DRIextension *nouveau_driver_extensions[] = {
|
||||
&driCoreExtension.base,
|
||||
&driDRI2Extension.base,
|
||||
&nouveau_vtable.base,
|
||||
NULL
|
||||
};
|
||||
|
||||
PUBLIC const __DRIextension **__driDriverGetExtensions_nouveau_vieux(void)
|
||||
{
|
||||
globalDriverAPI = &nouveau_driver_api;
|
||||
|
||||
return nouveau_driver_extensions;
|
||||
}
|
||||
|
||||
@@ -27,6 +27,8 @@
|
||||
#ifndef __NOUVEAU_SCREEN_H__
|
||||
#define __NOUVEAU_SCREEN_H__
|
||||
|
||||
const __DRIextension **__driDriverGetExtensions_nouveau_vieux(void);
|
||||
|
||||
struct nouveau_context;
|
||||
|
||||
struct nouveau_screen {
|
||||
|
||||
Reference in New Issue
Block a user