swr/rast: Moved memory init out of core swr init
[mesa.git] / src / gallium / drivers / swr / swr_loader.cpp
index 01b98046462e0959653b10fcbafb152d7145921e..c5b2e294ef7ef5ae0671a9192fb2e8c85f594f44 100644 (file)
@@ -21,6 +21,7 @@
  * IN THE SOFTWARE.
  ***************************************************************************/
 
+#include "memory/InitMemory.h"
 #include "util/u_cpu_detect.h"
 #include "util/u_dl.h"
 #include "swr_public.h"
@@ -35,6 +36,7 @@ swr_initialize_screen_interface(struct swr_screen *screen, const char arch[])
 #ifdef HAVE_SWR_BUILTIN
    screen->pLibrary = NULL;
    screen->pfnSwrGetInterface = SwrGetInterface;
+   InitTilesTable();
    fprintf(stderr, "(using: builtin).\n");
 #else
    char filename[256] = { 0 };
@@ -48,7 +50,9 @@ swr_initialize_screen_interface(struct swr_screen *screen, const char arch[])
 
    util_dl_proc pApiProc = util_dl_get_proc_address(screen->pLibrary,
       "SwrGetInterface");
-   if (!pApiProc) {
+   util_dl_proc pInitFunc = util_dl_get_proc_address(screen->pLibrary,
+      "InitTilesTable");
+   if (!pApiProc || !pInitFunc) {
       fprintf(stderr, "(skipping: %s).\n", util_dl_error());
       util_dl_close(screen->pLibrary);
       screen->pLibrary = NULL;
@@ -56,6 +60,8 @@ swr_initialize_screen_interface(struct swr_screen *screen, const char arch[])
    }
 
    screen->pfnSwrGetInterface = (PFNSwrGetInterface)pApiProc;
+   pInitFunc();
+
    fprintf(stderr, "(using: %s).\n", filename);
 #endif
    return true;