From c8fe87871760c4c6ed775628612513b30f5a9b02 Mon Sep 17 00:00:00 2001 From: Ryan Neph Date: Wed, 18 Jan 2023 17:10:12 -0800 Subject: [PATCH] util/u_process: add MESA_PROCESS_NAME override to util_get_process_name() Allow processes to set a custom process name before loading drivers. Especially useful for virtualized workloads hidden behind a generically-named host renderer process (e.g. Venus render_server) to retain game-specific driconf option matching. Signed-off-by: Ryan Neph Reviewed-by: Emma Anholt Reviewed-by: Pierre-Eric Pelloux-Prayer Part-of: --- docs/envvars.rst | 6 ++++++ src/util/u_process.c | 7 ++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/envvars.rst b/docs/envvars.rst index d5c6cd4b7df..99e36f4e217 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -86,6 +86,12 @@ Core Mesa environment variables print error and performance messages to stderr (or ``MESA_LOG_FILE``). +.. envvar:: MESA_PROCESS_NAME + + if set, overrides the process name string used internally for various + purposes (e.g. for driconf option matching, logging, artifact storage, + etc.). + .. envvar:: MESA_LOG_FILE specifies a file name for logging all errors, warnings, etc., rather diff --git a/src/util/u_process.c b/src/util/u_process.c index d548fcc7bbb..1b2dccde7e4 100644 --- a/src/util/u_process.c +++ b/src/util/u_process.c @@ -206,10 +206,11 @@ free_program_name(void) static void util_get_process_name_callback(void) { - program_name = __getProgramName(); - if (program_name) { + const char *override_name = os_get_option("MESA_PROCESS_NAME"); + program_name = override_name ? strdup(override_name) : __getProgramName(); + + if (program_name) atexit(free_program_name); - } } const char *