winsys/svga: improve error/debug message output
authorBrian Paul <brianp@vmware.com>
Tue, 19 Mar 2013 16:03:39 +0000 (10:03 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 19 Mar 2013 21:18:38 +0000 (15:18 -0600)
Use vmw_printf() just for extra debugging info (off by default).
Use vmw_error() for real errors/failures/etc that we definitely
want to report.

Reviewed-by: José Fonseca <jfonseca@vmware.com>
src/gallium/winsys/svga/drm/vmw_context.h
src/gallium/winsys/svga/drm/vmw_screen_dri.c
src/gallium/winsys/svga/drm/vmw_screen_ioctl.c

index b27e0b8f4be0f211b66047f20dc155e3b918ac10..3d383ccb1ede160d052e4fb9d190ae79f72f56c3 100644 (file)
@@ -31,6 +31,7 @@
 #ifndef VMW_CONTEXT_H_
 #define VMW_CONTEXT_H_
 
+#include <stdio.h>
 #include "pipe/p_compiler.h"
 
 struct svga_winsys_screen;
@@ -38,6 +39,8 @@ struct svga_winsys_context;
 struct pipe_context;
 struct pipe_screen;
 
+
+/** Set to 1 to get extra debug info/output */
 #define VMW_DEBUG 0
 
 #if VMW_DEBUG
@@ -49,6 +52,13 @@ struct pipe_screen;
 #endif
 
 
+/**
+ * Called when an error/failure is encountered.
+ * We want these messages reported for all build types.
+ */
+#define vmw_error(...)  fprintf(stderr, "VMware: " __VA_ARGS__)
+
+
 struct svga_winsys_context *
 vmw_svga_winsys_context_create(struct svga_winsys_screen *sws);
 
index 3c92bb9b87eeb77e1939d63023f644d0c6536615..511cca73aea37b23a759c774df2b807e0d5c9e9a 100644 (file)
@@ -28,8 +28,9 @@
 #include "util/u_inlines.h"
 #include "util/u_memory.h"
 #include "util/u_format.h"
-#include "vmw_screen.h"
 
+#include "vmw_context.h"
+#include "vmw_screen.h"
 #include "vmw_surface.h"
 #include "svga_drm_public.h"
 
@@ -70,13 +71,12 @@ vmw_dri1_check_version(const struct dri1_api_version *cur,
    if (cur->major == required->major && cur->minor >= required->minor)
       return TRUE;
 
-   fprintf(stderr, "%s version failure.\n", component);
-   fprintf(stderr, "%s version is %d.%d.%d and this driver can only work\n"
-          "with versions %d.%d.x through %d.x.x.\n",
-          component,
-          cur->major,
-          cur->minor,
-          cur->patch_level, required->major, required->minor, compat->major);
+   vmw_error("%s version failure.\n", component);
+   vmw_error("%s version is %d.%d.%d and this driver can only work\n"
+             "with versions %d.%d.x through %d.x.x.\n",
+             component,
+             cur->major, cur->minor, cur->patch_level,
+             required->major, required->minor, compat->major);
    return FALSE;
 }
 
@@ -175,24 +175,24 @@ vmw_drm_surface_from_handle(struct svga_winsys_screen *sws,
                              &arg, sizeof(arg));
 
     if (ret) {
-       fprintf(stderr, "Failed referencing shared surface. SID %d.\n"
-               "Error %d (%s).\n",
-               whandle->handle, ret, strerror(-ret));
+        vmw_error("Failed referencing shared surface. SID %d.\n"
+                  "Error %d (%s).\n",
+                  whandle->handle, ret, strerror(-ret));
        return NULL;
     }
 
     if (rep->mip_levels[0] != 1) {
-       fprintf(stderr, "Incorrect number of mipmap levels on shared surface."
-               " SID %d, levels %d\n",
-               whandle->handle, rep->mip_levels[0]);
+        vmw_error("Incorrect number of mipmap levels on shared surface."
+                  " SID %d, levels %d\n",
+                  whandle->handle, rep->mip_levels[0]);
        goto out_mip;
     }
 
     for (i=1; i < DRM_VMW_MAX_SURFACE_FACES; ++i) {
        if (rep->mip_levels[i] != 0) {
-           fprintf(stderr, "Incorrect number of faces levels on shared surface."
-                   " SID %d, face %d present.\n",
-                   whandle->handle, i);
+            vmw_error("Incorrect number of faces levels on shared surface."
+                      " SID %d, face %d present.\n",
+                      whandle->handle, i);
            goto out_mip;
        }
    }
index e3b183a2ac1c35ac03749af82773e2a41d06d117..36888dc2cce4c0aa4c245c8acafa8268cef34d82 100644 (file)
@@ -226,7 +226,7 @@ vmw_ioctl_command(struct vmw_winsys_screen *vws, int32_t cid,
        ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_EXECBUF, &arg, sizeof(arg));
    } while(ret == -ERESTART);
    if (ret) {
-      debug_printf("%s error %s.\n", __FUNCTION__, strerror(-ret));
+      vmw_error("%s error %s.\n", __FUNCTION__, strerror(-ret));
    }
 
    if (rep.error) {
@@ -275,7 +275,7 @@ vmw_ioctl_region_create(struct vmw_winsys_screen *vws, uint32_t size)
    } while (ret == -ERESTART);
 
    if (ret) {
-      debug_printf("IOCTL failed %d: %s\n", ret, strerror(-ret));
+      vmw_error("IOCTL failed %d: %s\n", ret, strerror(-ret));
       goto out_err1;
    }
 
@@ -336,7 +336,7 @@ vmw_ioctl_region_map(struct vmw_region *region)
       map = os_mmap(NULL, region->size, PROT_READ | PROT_WRITE, MAP_SHARED,
                 region->drm_fd, region->map_handle);
       if (map == MAP_FAILED) {
-        debug_printf("%s: Map failed.\n", __FUNCTION__);
+        vmw_error("%s: Map failed.\n", __FUNCTION__);
         return NULL;
       }
 
@@ -369,7 +369,7 @@ vmw_ioctl_fence_unref(struct vmw_winsys_screen *vws,
    ret = drmCommandWrite(vws->ioctl.drm_fd, DRM_VMW_FENCE_UNREF,
                         &arg, sizeof(arg));
    if (ret != 0)
-      debug_printf("%s Failed\n", __FUNCTION__);
+      vmw_error("%s Failed\n", __FUNCTION__);
 }
 
 static INLINE uint32_t
@@ -430,7 +430,7 @@ vmw_ioctl_fence_finish(struct vmw_winsys_screen *vws,
                             &arg, sizeof(arg));
 
    if (ret != 0)
-      debug_printf("%s Failed\n", __FUNCTION__);
+      vmw_error("%s Failed\n", __FUNCTION__);
    
    return 0;
 }
@@ -451,7 +451,7 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
    ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
                             &gp_arg, sizeof(gp_arg));
    if (ret || gp_arg.value == 0) {
-      debug_printf("No 3D enabled (%i, %s).\n", ret, strerror(-ret));
+      vmw_error("No 3D enabled (%i, %s).\n", ret, strerror(-ret));
       goto out_no_3d;
    }
 
@@ -460,8 +460,8 @@ vmw_ioctl_init(struct vmw_winsys_screen *vws)
    ret = drmCommandWriteRead(vws->ioctl.drm_fd, DRM_VMW_GET_PARAM,
                             &gp_arg, sizeof(gp_arg));
    if (ret) {
-      debug_printf("Failed to get fifo hw version"
-                  " (%i, %s).\n", ret, strerror(-ret));
+      vmw_error("Failed to get fifo hw version (%i, %s).\n",
+                ret, strerror(-ret));
       goto out_no_3d;
    }
    vws->ioctl.hwversion = gp_arg.value;