[Mesa-dev] [PATCH 1/2] gallium/hud: support GALLIUM_HUD_DUMP_DIR feature on Windows

Marek Olšák maraeo at gmail.com
Sat Jun 17 12:01:34 UTC 2017


Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Sat, Jun 17, 2017 at 12:39 AM, Brian Paul <brianp at vmware.com> wrote:
> Use a dummy implementation of the access() function.  Use \ path separator.
> Add a few comments.
> ---
>  src/gallium/auxiliary/hud/hud_context.c | 36 +++++++++++++++++++++++++++------
>  1 file changed, 30 insertions(+), 6 deletions(-)
>
> diff --git a/src/gallium/auxiliary/hud/hud_context.c b/src/gallium/auxiliary/hud/hud_context.c
> index 9dd2fbf..cb7ed44 100644
> --- a/src/gallium/auxiliary/hud/hud_context.c
> +++ b/src/gallium/auxiliary/hud/hud_context.c
> @@ -958,26 +958,50 @@ static void strcat_without_spaces(char *dst, const char *src)
>     *dst = 0;
>  }
>
> +
> +#ifdef PIPE_OS_WINDOWS
> +#define W_OK 0
> +static int
> +access(const char *pathname, int mode)
> +{
> +   /* no-op */
> +   return 0;
> +}
> +
> +#define PATH_SEP "\\"
> +
> +#else
> +
> +#define PATH_SEP "/"
> +
> +#endif
> +
> +
> +/**
> + * If the GALLIUM_HUD_DUMP_DIR env var is set, we'll write the raw
> + * HUD values to files at ${GALLIUM_HUD_DUMP_DIR}/<stat> where <stat>
> + * is a HUD variable such as "fps", or "cpu"
> + */
>  static void
>  hud_graph_set_dump_file(struct hud_graph *gr)
>  {
> -#ifndef PIPE_OS_WINDOWS
>     const char *hud_dump_dir = getenv("GALLIUM_HUD_DUMP_DIR");
> -   char *dump_file;
>
>     if (hud_dump_dir && access(hud_dump_dir, W_OK) == 0) {
> -      dump_file = malloc(strlen(hud_dump_dir) + sizeof("/") + sizeof(gr->name));
> +      char *dump_file = malloc(strlen(hud_dump_dir) + sizeof(PATH_SEP)
> +                               + sizeof(gr->name));
>        if (dump_file) {
>           strcpy(dump_file, hud_dump_dir);
> -         strcat(dump_file, "/");
> +         strcat(dump_file, PATH_SEP);
>           strcat_without_spaces(dump_file, gr->name);
>           gr->fd = fopen(dump_file, "w+");
> -         if (gr->fd)
> +         if (gr->fd) {
> +            /* flush output after each line is written */
>              setvbuf(gr->fd, NULL, _IOLBF, 0);
> +         }
>           free(dump_file);
>        }
>     }
> -#endif
>  }
>
>  /**
> --
> 1.9.1
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list