From c45d22e26a3e66371b239b5aac80170fcbf213f8 Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Tue, 19 Mar 2013 10:03:39 -0600 Subject: [PATCH] winsys/svga: improve error/debug message output MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- src/gallium/winsys/svga/drm/vmw_context.h | 10 ++++++++ src/gallium/winsys/svga/drm/vmw_screen_dri.c | 34 +++++++++++++------------- src/gallium/winsys/svga/drm/vmw_screen_ioctl.c | 16 ++++++------ 3 files changed, 35 insertions(+), 25 deletions(-) diff --git a/src/gallium/winsys/svga/drm/vmw_context.h b/src/gallium/winsys/svga/drm/vmw_context.h index b27e0b8..3d383cc 100644 --- a/src/gallium/winsys/svga/drm/vmw_context.h +++ b/src/gallium/winsys/svga/drm/vmw_context.h @@ -31,6 +31,7 @@ #ifndef VMW_CONTEXT_H_ #define VMW_CONTEXT_H_ +#include #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); diff --git a/src/gallium/winsys/svga/drm/vmw_screen_dri.c b/src/gallium/winsys/svga/drm/vmw_screen_dri.c index 3c92bb9..511cca7 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_dri.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_dri.c @@ -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; } } diff --git a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c index e3b183a..36888dc 100644 --- a/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c +++ b/src/gallium/winsys/svga/drm/vmw_screen_ioctl.c @@ -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; -- 2.7.4