[Mesa-dev] [PATCH] winsys/svga: improve error/debug message output
Jose Fonseca
jfonseca at vmware.com
Tue Mar 19 13:03:36 PDT 2013
LGTM.
Jose
----- Original Message -----
> 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.
> ---
> 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 <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);
>
> 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;
> --
> 1.7.3.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
More information about the mesa-dev
mailing list