This change adds a new field to the ProcessStartInfo struct in UBA trace files for a description of the task, called "breadcrumbs" which allow to diagnose and backtrace the origin of a UBA task.
This is also hooked up to the distributed shader compilation (added as new field in FTaskCommandData) and a descriptive string is generated for each shader compile job batch.
UbaVisualizer is updated accordingly to integrate this new data when hovering over a task in the timeline.
This feature can be enabled via the new CVar "r.ShaderCompiler.DistributedJobDescriptionLevel" with values 0 (Disabled), 1 (Basic information), 2 (Adds shader format to each job). It's disabled by default.
#rb dan.elksnitis, henrik.karlsson
#rnx
[CL 36346831 by laura hermanns in 5.5 branch]
* Added HostRun command which can be used to send commands from remotes to host. command will return stdout
[CL 35946269 by henrik karlsson in ue5-main branch]
* Fixed so dlopen work properly remotely and downloads dylib plus depending dylib before trying to load them
[CL 35910648 by henrik karlsson in ue5-main branch]
* Attempt at fixing what seems like deadlock in the directory table update in session clients. Theory being that if response from server is out of order and message capacity is exactly the same as the remainding size of directory table we end up with a thread timing out.. and the code did not clean up the linked list properly on timeout so anything could go wrong after that
* Changed some asserts to errors to make sure they happen in shipping builds too
[CL 35432040 by henrik karlsson in ue5-main branch]
* Fixed some logging
* Added check for "isdone" inside lock in cancel call in case done message has already been sent
[CL 35255102 by henrik karlsson in ue5-main branch]
* Added "active processes" view in visualizer. Easier to get an overview
* Changed so session stats is written into trace file as soon as possible
* Added support for some more types in config file add/write
* Added dedicated path for updateProgress into session in order to minimize trace file and have custom rendering for progress
* Added support for changing font size in visualizer
* Added option to enable autosaving settings in visualizer
* Fixed so it is possible to jump around in active named trace in UbaVisualizer
* Added hyperlink support ro status update so user can click on the text to follow the link
[CL 34827240 by henrik karlsson in ue5-main branch]
* Fixed validation code in scheduler for process reuse
* Moved all code inside ServerSession::HandleMessage into one function per message to more easily be able to read callstacks
* Added more validation around missing file errors.. now server logs out lots of information too
[CL 34414815 by henrik karlsson in ue5-main branch]
* Added so path environment variable is networked over to helper. Needed when programs do their own search to find executable from name
[CL 34393859 by henrik karlsson in ue5-main branch]
* Changed so casdb entry is not invalidated when file is stored from helper since we already have caskey and everything ready
* Added options to disable usage of cache hits in cacheclient.. this is a debugging feature
* Added option to not use path roots in cache client
* Added more debug information to try to figure out bug where cache client sees wrong cas key of file
[CL 34170695 by henrik karlsson in ue5-main branch]
* Fixed annoying assert when pressing ctrl-c when running in debug
* Fixed so trace stream writes out processed stopped through cancel
[CL 34078000 by henrik karlsson in ue5-main branch]
* Renamed system stats to kernel stats
* Changed all stats storing to use bitfield first to say which fields that are non-zero
[CL 34058881 by henrik karlsson in ue5-main branch]
* Added StringView type and replaced a ton of string+stringLen to StringView
* Fixed bug in obj file preloader.
* Fixed so clang targets can used compressed obj files
* Fixed bug in cache client when entry count is zero
* Added magic to compressed obj file header to be able to see if an obj file is compressed or not
* Moved ParseArguments to its own file and added so it can handle both char and wchar
[CL 33933853 by henrik karlsson in ue5-main branch]
* Improved error messages related to files sent to server. Messages will now show process they are related to
[CL 33635098 by henrik karlsson in ue5-main branch]
* Fixed code related to process reuse. It was not resetting variables properly
* Added support for detoured SHGetKnownFolderPath
* Fixed so logs for remote child processes are networked over to server when remoteLogs are enabled
* Improved some assert messages
* Fixed some binaryreaderwriter mismatches (they where harmless, just caused asserts)
* Fixed so local system temp folder can always be found when recursing from root to system temp. This is a horrible hack because it could cause bad conflicts between host file system and helper file system.. but solves current problems
* Moved removal of \\?\ into FixPath
[CL 33517723 by henrik karlsson in ue5-main branch]
* Removed code in SessionServer::WaitOnAllTasks that terminates processes on windows. that code was never supposed to be there
* Removed printing of error when trying to traverse directory on volume that has bitlock enabled and not allowed to access
[CL 33490527 by henrik karlsson in ue5-main branch]
* Added support for providing custom environment variables when creating UbaSession
* Reverted code using real environment variables when spawning processes...
[CL 33469655 by henrik karlsson in ue5-main branch]
* Added header to compressed obj files containing the cas key of the compressed file
* Fixed so compressed obj files work with cache system
[CL 33236459 by henrik karlsson in ue5-main branch]