Emil Velikov <[email protected]> writes: > On 30/09/13 21:44, Eric Anholt wrote: >> Previously, we've split things such that mesa core is in libdricore, >> exposing the whole Mesa core interface in the global namespace, and the >> i965_dri.so code all links against that. Along with polluting application >> namespace terribly, it requires extra PLT indirections and prevents LTO. >> >> Instead, we can build all of the driver contents into the same .so with >> just a few symbols exposed to be referenced from the actual driver .so >> file, allowing LTO and reducing our exposed symbol count massively. >> --- >> configure.ac | 29 +++++++++++--- >> src/mesa/drivers/dri/Makefile.am | 54 >> ++++++++++++++++++++++++++- >> src/mesa/drivers/dri/common/Makefile.am | 3 ++ >> src/mesa/drivers/dri/common/dri_util.c | 10 +++-- >> src/mesa/drivers/dri/common/megadriver_stub.c | 41 ++++++++++++++++++++ >> src/mesa/drivers/dri/i965/Makefile.am | 27 +++----------- >> src/mesa/drivers/dri/i965/intel_screen.c | 16 ++++++-- >> src/mesa/drivers/dri/i965/intel_screen.h | 2 + >> 8 files changed, 147 insertions(+), 35 deletions(-) >> create mode 100644 src/mesa/drivers/dri/common/megadriver_stub.c >> > [...] >> diff --git a/src/mesa/drivers/dri/common/dri_util.c >> b/src/mesa/drivers/dri/common/dri_util.c >> index 9a99ea9..3126ac8 100644 >> --- a/src/mesa/drivers/dri/common/dri_util.c >> +++ b/src/mesa/drivers/dri/common/dri_util.c >> @@ -106,10 +106,12 @@ dri2CreateNewScreen2(int scrn, int fd, >> /* If the driver exposes its vtable through its extensions list >> * (megadrivers), use that instead. >> */ >> - for (int i = 0; driver_extensions[i]; i++) { >> - if (strcmp(driver_extensions[i]->name, __DRI_DRIVER_VTABLE) == 0) { >> - psp->driver = >> - ((__DRIDriverVtableExtension *)driver_extensions[i])->vtable; >> + if (driver_extensions) { >> + for (int i = 0; driver_extensions[i]; i++) { >> + if (strcmp(driver_extensions[i]->name, __DRI_DRIVER_VTABLE) == 0) >> { >> + psp->driver = >> + ((__DRIDriverVtableExtension >> *)driver_extensions[i])->vtable; >> + } >> } >> } >> > I believe this hunk would need to be squashed in previous patch. > Otherwise we'll fail with null ptr deref due to as driver_extensions is > NULL, when called from dri*CreateNewScreen() context.
Thanks, fixed!
pgpVuZN7q7KPZ.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
