ConfigStatus AddFlagsEnvironmentVariables( LaunchParams parameters, IDictionary <string, string> variables) { ConfigStatus status = ConfigStatus.OkStatus(); var flagEnvironmentVariables = new Dictionary <string, string>(); if (!string.IsNullOrWhiteSpace(parameters.VulkanDriverVariant)) { flagEnvironmentVariables.Add("GGP_DEV_VK_DRIVER_VARIANT", parameters.VulkanDriverVariant); } if (parameters.RenderDoc) { flagEnvironmentVariables.Add("ENABLE_VULKAN_RENDERDOC_CAPTURE", "1"); flagEnvironmentVariables.Add("RENDERDOC_TEMP", "/mnt/developer/ggp"); flagEnvironmentVariables.Add("RENDERDOC_DEBUG_LOG_FILE", "/var/game/RDDebug.log"); } if (parameters.Rgp) { flagEnvironmentVariables.Add("GGP_INTERNAL_LOAD_RGP", "1"); flagEnvironmentVariables.Add("RGP_DEBUG_LOG_FILE", "/var/game/RGPDebug.log"); } foreach (string key in flagEnvironmentVariables.Keys) { if (variables.ContainsKey(key)) { status.AppendWarning(ErrorStrings.EnvironmentVariableOverride(key)); continue; } variables.Add(key, flagEnvironmentVariables[key]); } if (parameters.Rgp) { if (!variables.ContainsKey("LD_PRELOAD")) { variables.Add("LD_PRELOAD", string.Empty); } variables["LD_PRELOAD"] += (string.IsNullOrEmpty(variables["LD_PRELOAD"]) ? string.Empty : ":") + "librgpserver.so"; } return(status); }