xf86-video-intel: Branch 'xvmc' - 2 commits - src/i830_hwmc.c src/i830_hwmc.h src/xvmc/i915_xvmc.c src/xvmc/intel_xvmc.c src/xvmc/xf86dri.c

Zhenyu Wang zhen at kemper.freedesktop.org
Tue Jan 1 22:17:08 PST 2008


 src/i830_hwmc.c       |    5 +++++
 src/i830_hwmc.h       |    5 +++++
 src/xvmc/i915_xvmc.c  |    2 +-
 src/xvmc/intel_xvmc.c |    4 +++-
 src/xvmc/xf86dri.c    |   17 ++++++++++-------
 5 files changed, 24 insertions(+), 9 deletions(-)

New commits:
commit a03aca101d4d51ed2279a99d1137ce3b7ef364e2
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Wed Jan 2 14:11:31 2008 +0800

    xvmc: setup driver info for XvMCGetDRInfo request
    
    User don't need to have XvMCConfig file then, if ld.so can
    find libIntelXvMC.so in ld path.

diff --git a/src/i830_hwmc.c b/src/i830_hwmc.c
index acb89e6..7586ff7 100644
--- a/src/i830_hwmc.c
+++ b/src/i830_hwmc.c
@@ -96,6 +96,7 @@ Bool intel_xvmc_screen_init(ScreenPtr pScreen)
 {
     ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
     I830Ptr pI830 = I830PTR(pScrn);
+    DRIInfoPtr pDRIInfo = pI830->pDRIInfo;
 
     if (!xvmc_driver)
 	return FALSE;
@@ -111,6 +112,10 @@ Bool intel_xvmc_screen_init(ScreenPtr pScreen)
 		"[XvMC] Failed to initialize XvMC.\n");
 	return FALSE;
     }
+
+    xf86XvMCRegisterDRInfo(pScreen, INTEL_XVMC_LIBNAME,
+		    pDRIInfo->busIdString,
+		    INTEL_XVMC_MAJOR, INTEL_XVMC_MINOR, INTEL_XVMC_PATCHLEVEL);
     return TRUE;
 }
 
diff --git a/src/i830_hwmc.h b/src/i830_hwmc.h
index 3464d01..6920e01 100644
--- a/src/i830_hwmc.h
+++ b/src/i830_hwmc.h
@@ -27,6 +27,11 @@
 #ifndef I830_HWMC_H
 #define I830_HWMC_H
 
+#define INTEL_XVMC_LIBNAME	"IntelXvMC"
+#define INTEL_XVMC_MAJOR	0
+#define INTEL_XVMC_MINOR	1
+#define INTEL_XVMC_PATCHLEVEL	0
+
 #define FOURCC_XVMC     (('C' << 24) + ('M' << 16) + ('V' << 8) + 'X')
 
 /*
commit 0fd769b5882058e5ebf17ee1c1e35b4a3d46e6b0
Author: Zhenyu Wang <zhenyu.z.wang at intel.com>
Date:   Wed Jan 2 13:57:23 2008 +0800

    xvmc: add context id info in debug/trace

diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c
index 10b60ce..d27384d 100644
--- a/src/xvmc/i915_xvmc.c
+++ b/src/xvmc/i915_xvmc.c
@@ -1629,7 +1629,7 @@ static Status i915_xvmc_mc_create_context(Display *display, XvMCContext *context
     int isCapable;
     int screen = DefaultScreen(display);
 
-    XVMC_DBG("i915_xvmc_mc_create_context\n");
+    XVMC_DBG("%s\n", __FUNCTION__);
 
     if (priv_count != (sizeof(I915XvMCCreateContextRec) >> 2)) {
         XVMC_ERR("_xvmc_create_context() returned incorrect data size!");
diff --git a/src/xvmc/intel_xvmc.c b/src/xvmc/intel_xvmc.c
index b4a34fc..91a050f 100644
--- a/src/xvmc/intel_xvmc.c
+++ b/src/xvmc/intel_xvmc.c
@@ -250,6 +250,7 @@ Status XvMCCreateContext(Display *display, XvPortID port,
         XVMC_ERR("Unable to create XvMC Context.");
         return ret;
     }
+    XVMC_DBG("new context %d created\n", context->context_id);
 
     comm = (struct _intel_xvmc_common *)priv_data;
 
@@ -339,7 +340,8 @@ Status XvMCCreateContext(Display *display, XvPortID port,
     if (!uniDRICreateContext(display, screen, NULL,
 			     context->context_id,
                              &intel_ctx->hw_context)) {
-        XVMC_ERR("Could not create DRI context.");
+        XVMC_ERR("Could not create DRI context for xvmc ctx %d.",
+			context->context_id);
 	XFree(priv_data);
         context->privData = NULL;
         drmUnmap(xvmc_driver->sarea_address, xvmc_driver->sarea_size);
diff --git a/src/xvmc/xf86dri.c b/src/xvmc/xf86dri.c
index 2b60348..97022e4 100644
--- a/src/xvmc/xf86dri.c
+++ b/src/xvmc/xf86dri.c
@@ -84,9 +84,9 @@ XEXT_GENERATE_FIND_DISPLAY(find_display, xf86dri_info,
  *****************************************************************************/
 #if 0
 #include <stdio.h>
-#define TRACE(msg)  fprintf(stderr,"uniDRI%s\n", msg);
+#define TRACE(msg, arg...)  fprintf(stderr,"uniDRI" msg "\n", ##arg);
 #else
-#define TRACE(msg)
+#define TRACE(msg, arg...)
 #endif
     Bool uniDRIQueryExtension(dpy, event_basep, error_basep)
     Display *dpy;
@@ -135,7 +135,8 @@ uniDRIQueryVersion(dpy, majorVersion, minorVersion, patchVersion)
     *patchVersion = rep.patchVersion;
     UnlockDisplay(dpy);
     SyncHandle();
-    TRACE("QueryVersion... return True");
+    TRACE("QueryVersion... %d.%d.%d return True", rep.majorVersion,
+		    rep.minorVersion, rep.patchVersion);
     return True;
 }
 
@@ -166,7 +167,8 @@ uniDRIQueryDirectRenderingCapable(dpy, screen, isCapable)
     *isCapable = rep.isCapable;
     UnlockDisplay(dpy);
     SyncHandle();
-    TRACE("QueryDirectRenderingCapable... return True");
+    TRACE("QueryDirectRenderingCapable... %s return True",
+		    rep.isCapable ? "true" : "false");
     return True;
 }
 
@@ -216,7 +218,8 @@ uniDRIOpenConnection(dpy, screen, hSAREA, busIdString)
     }
     UnlockDisplay(dpy);
     SyncHandle();
-    TRACE("OpenConnection... return True");
+    TRACE("OpenConnection... busid %s return True",
+		   *busIdString ? *busIdString : "null");
     return True;
 }
 
@@ -339,7 +342,7 @@ uniDRICreateContextWithConfig(dpy, screen, configID, context, hHWContext)
     xXF86DRICreateContextReply rep;
     xXF86DRICreateContextReq *req;
 
-    TRACE("CreateContext...");
+    TRACE("CreateContext... id %d", context);
     uniDRICheckExtension(dpy, info, False);
 
     LockDisplay(dpy);
@@ -382,7 +385,7 @@ uniDRIDestroyContext(Display * ndpy, int screen, XID context)
     XExtDisplayInfo *info = find_display(dpy);
     xXF86DRIDestroyContextReq *req;
 
-    TRACE("DestroyContext...");
+    TRACE("DestroyContext... id %d", context);
     uniDRICheckExtension(dpy, info, False);
 
     LockDisplay(dpy);


More information about the xorg-commit mailing list