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 <ryanneph@google.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20779>
This commit is contained in:
Ryan Neph
2023-01-18 17:10:12 -08:00
committed by Marge Bot
parent a2b296c75b
commit c8fe878717
2 changed files with 10 additions and 3 deletions

View File

@@ -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

View File

@@ -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 *