[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