More EGL prep. No impact on anything outside of EGL
authorJon Smirl <jonsmirl@gmail.com>
Fri, 5 Aug 2005 03:33:59 +0000 (03:33 +0000)
committerJon Smirl <jonsmirl@gmail.com>
Fri, 5 Aug 2005 03:33:59 +0000 (03:33 +0000)
src/egl/drivers/demo/demo.c
src/egl/main/egldriver.c
src/egl/main/egldriver.h
src/mesa/drivers/dri/Makefile.template
src/mesa/drivers/dri/fb/fb_egl.c
src/mesa/drivers/dri/radeon/server/radeon.h
src/mesa/drivers/dri/radeon/server/radeon_dri.c

index 9b751959590718d14527c9c96c9fb44703fed3ac..4c08ac569f4253fba16855981141643d436af457 100644 (file)
@@ -286,19 +286,12 @@ demoMakeCurrent(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw, EGLSurface rea
 }
 
 
-/*
- * Just to silence warning
- */
-extern _EGLDriver *
-_eglMain(NativeDisplayType dpy);
-
-
 /**
  * The bootstrap function.  Return a new DemoDriver object and
  * plug in API functions.
  */
 _EGLDriver *
-_eglMain(NativeDisplayType dpy)
+_eglMain(_EGLDisplay *dpy)
 {
    DemoDriver *demo;
 
index 1aeefbbe48f2ecf3b10763e69c0d0fcc8737e609..6e8c9b3b4c80df9baff1abbfd542f6418ce02f40 100644 (file)
@@ -45,7 +45,7 @@ _eglChooseDriver(EGLDisplay display)
    else if (name[0] == ':' && (name[1] >= '0' && name[1] <= '9') && !name[2]) {
       printf("EGL: Use driver for screen: %s\n", name);
       /* XXX probe hardware here to determine which driver to open */
-      /* driverName = "something"; */
+      driverName = "libEGLdri";
    }
    else if (name[0] == '!') {
       /* use specified driver name */
@@ -71,44 +71,40 @@ _eglChooseDriver(EGLDisplay display)
 _EGLDriver *
 _eglOpenDriver(_EGLDisplay *dpy, const char *driverName)
 {
+   _EGLDriver *drv;
+   _EGLMain_t mainFunc;
    void *lib;
    char driverFilename[1000];
 
    /* XXX also prepend a directory path??? */
    sprintf(driverFilename, "%s.so", driverName);
 
-#if 1
    lib = dlopen(driverFilename, RTLD_NOW);
-   if (lib) {
-      _EGLDriver *drv;
-      _EGLMain_t mainFunc;
-
-      mainFunc = (_EGLMain_t) dlsym(lib, "_eglMain");
-      if (!mainFunc) {
-         fprintf(stderr, "_eglMain not found in %s", (char *) driverFilename);
-         dlclose(lib);
-         return NULL;
-      }
-
-      drv = mainFunc(dpy);
-      if (!drv) {
-         dlclose(lib);
-         return NULL;
-      }
+   if (!lib) {
+      fprintf(stderr, "EGLdebug: Error opening %s: %s\n", driverFilename, dlerror());
+      return NULL;
+   }
 
-      drv->LibHandle = lib;
-      drv->Display = dpy;
-      return drv;
+   mainFunc = (_EGLMain_t) dlsym(lib, "_eglMain");
+   if (!mainFunc) {
+      fprintf(stderr, "_eglMain not found in %s", (char *) driverFilename);
+      dlclose(lib);
+      return NULL;
    }
-   else {
-      fprintf(stderr, "EGLdebug: Error opening %s: %s\n",
-              driverFilename, dlerror());
+
+   drv = mainFunc(dpy);
+   if (!drv) {
+      dlclose(lib);
       return NULL;
    }
-#else
-   /* use built-in driver */
-   return _eglDefaultMain(d);
-#endif
+   /* with a recurvise open you want the inner most handle */
+   if (!drv->LibHandle)
+      drv->LibHandle = lib;
+   else
+      dlclose(lib);
+
+   drv->Display = dpy;
+   return drv;
 }
 
 
index ecf630cb7d109826c0963cf0d86267ca6fc8fe1e..7ab62f1827222961b1210ab65882a6e90362935b 100644 (file)
@@ -125,10 +125,7 @@ struct _egl_driver
 };
 
 
-
-
-extern _EGLDriver *
-_eglDefaultMain(NativeDisplayType d);
+extern _EGLDriver *_eglMain(_EGLDisplay *dpy);
 
 
 extern _EGLDriver *
index 0880e73caf920664dd023a90ace93c4e93c76bf9..7c21137ab690580951f06914d5a97c73ed93b607 100644 (file)
@@ -53,7 +53,8 @@ SHARED_INCLUDES = \
        -I$(TOP)/src/mesa/shader \
        -I$(TOP)/src/mesa/swrast \
        -I$(TOP)/src/mesa/swrast_setup \
-       -I$(TOP)/src/egl/main
+       -I$(TOP)/src/egl/main \
+       -I$(TOP)/src/egl/drivers/dri
 
 ##### RULES #####
 
index a04ac129fcdb6feb9683066968cd049ad534b44a..2cea48808fb6f3997d04fca341fc9de96e10ccd1 100644 (file)
@@ -842,19 +842,12 @@ fbSwapBuffers(_EGLDriver *drv, EGLDisplay dpy, EGLSurface draw)
 }
 
 
-/*
- * Just to silence warning
- */
-extern _EGLDriver *
-_eglMain(NativeDisplayType dpy);
-
-
 /**
  * The bootstrap function.  Return a new fbDriver object and
  * plug in API functions.
  */
 _EGLDriver *
-_eglMain(NativeDisplayType dpy)
+_eglMain(_EGLDisplay *dpy)
 {
    fbDriver *fb;
 
index b83f87cb231c1e42eebaac80b47af025748fabaf..21db825c9697ba209903741a4a840f753029623f 100644 (file)
 
 #include "xf86drm.h"           /* drm_handle_t, etc */
 
+#       define RADEON_AGP_1X_MODE           0x01
+#       define RADEON_AGP_2X_MODE           0x02
+#       define RADEON_AGP_4X_MODE           0x04
+#       define RADEON_AGP_FW_MODE           0x10
+#       define RADEON_AGP_MODE_MASK         0x17
+#define RADEON_CP_CSQ_CNTL                  0x0740
+#       define RADEON_CSQ_CNT_PRIMARY_MASK     (0xff << 0)
+#       define RADEON_CSQ_PRIDIS_INDDIS        (0    << 28)
+#       define RADEON_CSQ_PRIPIO_INDDIS        (1    << 28)
+#       define RADEON_CSQ_PRIBM_INDDIS         (2    << 28)
+#       define RADEON_CSQ_PRIPIO_INDBM         (3    << 28)
+#       define RADEON_CSQ_PRIBM_INDBM          (4    << 28)
+#       define RADEON_CSQ_PRIPIO_INDPIO        (15   << 28)
+
+
 #define PCI_CHIP_R200_BB                0x4242
 #define PCI_CHIP_RV250_Id               0x4964
 #define PCI_CHIP_RV250_Ie               0x4965
index 0373036973e936bd6035e75ce68fd6d2bbbbd060..b07a7797065d23e1bad70602920b21bd7dcb17e9 100644 (file)
@@ -455,7 +455,7 @@ static int RADEONDRIPciInit(const DRIDriverContext *ctx, RADEONInfoPtr info)
        return 0;
     }
     fprintf(stderr,
-              "[pci] %d kB allocated with handle 0x%08x\n",
+              "[pci] %d kB allocated with handle 0x%08lx\n",
               info->gartSize*1024, info->gartMemHandle);
 
    info->gartOffset = 0;