#rb Sebastian.Nordgren
#rnx
#jira UE-151464
#preflight 627a4c60fc07e0a9b4eefda9
### No files
- When submitting a change list with no workspace files (either empty changelist or only shelved files) our internal C# api does not return any errors.
- To get around this for now ::FindPackagesInChangelist can be changed to return null if we detect that there are no files to submit.
- I am following up with the original author to try and find out if the submit behavior in our API is intended or not.
### Shelved files
- Attempting to submit a valid changelist that has shelved files will eventually fail when we try to finally submit the changelist.
- This means that the tool will check all of the packages for virtualization first, before eventually failing on the submit.
- Most users will alt tab out of p4v during the submit and we cannot do anything fancy with the error reporting (like make the task bar icon flash etc) so might not notice that the submit failed for some time.
- So it makes sense for us to check for shelved files, before we kick off the virtualization process and if the changelist does have shelved files we can error out and the user should see it before they alt tab away.
[CL 20120836 by paul chipchase in ue5-main branch]
#rb trivial
#rnx
#preflight 627a14806a20515edc79c799
- Only display the p4 submit error messages, doo not include the perforce generic code as it can be confusing to the end user.
- If a submit fails, print a line to the log once the virtualization tags have been removed from the original changelist description. Previously the last message the user would see ended in "..." which implied that the process was still running.
[CL 20119794 by paul chipchase in ue5-main branch]
#rb Per.Larsson
#jira UE-143675
#rnx
#preflight 6274f6118b2af58d6e5e44a1
- The c# p4 api seems to have problems when calling p4 where, with no valid files so make sure that we early out before calling that.
- Only run the virtualization process if we have package files, no point trying to virtualize anything else.
-- If the changelist does not contain any packages then we just submit the change list, we don't need to stamp it or display logging info about how 0 packages are in 0 projects etc.
- Moved the code that submits the changelist to it's own method.
[CL 20073750 by paul chipchase in ue5-main branch]
* Fixed a bug where the touch end events weren't properly sent during multi-touch
* Updated Tentacle SDK to add support for new Tentacle devices
* Timecodes created from the system timer now roll over to 0 hours after hour 23 (otherwise could get very high)
#preflight none
[CL 19868332 by brian smith in ue5-main branch]
* Page captures are now tracked separately per GPU, to avoid problems with uninitialized pages on other GPUs. Pages that need capturing for the first time on a given GPU are prioritized and not counted against the throttled limit for page recaptures.
* Lumen scene buffer uploads are run across all GPUs.
* Lumen one-time procedural texture generation (OctahedralSolidAngleTexture) runs across all GPUs.
* DumpGPU was upgraded to be able to preview compressed formats used by Lumen (BC4, BC5, BC6H, BC7), critical for debugging Lumen behavior.
#jira UE-146458
#rnx
#rb krzysztof.narkowicz guillaume.abadie
#preflight 62374b6ff101b8d0afc6ac7f
#lockdown Mihnea.Balta
#ROBOMERGE-AUTHOR: jason.hoerner
#ROBOMERGE-SOURCE: CL 19807327 in //UE5/Release-5.0/... via CL 19807923
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v939-19570697)
[CL 19812041 by jason hoerner in ue5-main branch]
The method took an edgeServer override but could end up with the wrong clientspec.
Should fix user requested shelves on an edge and robomerge trying to revert using the wrong clientspec on the edge server
#rnx
#rb james.hopkin
#ROBOMERGE-AUTHOR: ryan.hummer
#ROBOMERGE-SOURCE: CL 19807014
#ROBOMERGE-BOT: (v939-19570697)
[CL 19807027 by ryan hummer in ue5-main branch]
#rb Sebastian.Nordgren
#rnx
#jira UE-143675
#preflight skip
### Misc
- Failing to find an associated engine for a project will now cause an error message to be logged and cause the changelist not to be submitted rather than allowing the process to continue.
- We now pass the logger into the methods in the DesktopPlatformBase region, rather than using a dummy logger (this was always the intent and something I missed fixing up before the original submit)
### Bug Fix
- Instead of finding the engine identifier and then finding the engine root (which mirrors native code) a new method has been added ::GetEngineIdentifierForProject which just returns the engine root directory which is all we are interested in.
- The main failing with the previous approach is that the engine association is not always registered in the system registry. I suspect that an engine install taken from p4 will only register if it is used to create a new project, meaning that the average developer will not have this info avaliable. ::GetEngineIdentifierForProject takes this into account and tries to find the engine via the directory structure before we look in the registry.
- ::GetEngineIdentifierForProject no longer tries to find the engine identifier if it could not be found in the project path and so does not properly match the native version of the method. To match the original it would need to register the engine if found, in which case the virtualization system (when run via the editor) should probably take steps to register the engine as well. This should be done as it's own work item to make sure it is tested properly.
[CL 19805425 by paul chipchase in ue5-main branch]
#rb Ben.Marsh
#rnx
#jira UE-143675
#preflight skip
### P4VUtils
- Add a new submenu "UESubmit" for commands related to the submission of files and changelists
-At the moment the submenu only has a single command SubmitAndVirtualizeCommand
### SubmitAndVirtualizeCommand
- This command is used to run the asset virtualization process over all of the files in a changelist before submitting it using the following logic:
-- Find all package files in a changelist
-- Sort the files by project
-- Find the engine installation associated with each project
-- Build and run the stand alone virtualization tool (if needed) and pass it the packages for the project
-- If the virtualization process succeeeded for all projects we can submit the original changelist, other wise print errors to the p4v terminal.
- In most cases all of the packages in a changelist will be under a single project, but the command should be able to cope with many packages from many different projects using many different engine installations.
- Note that unlike a normal submit, virtualizing a package can change it on disk (by removing the payload data) which means we will probably run into problems where a running instance of the editor has access locks on the file and they cannot be edited. At the moment this command and the stand alone tool will just error, there is no tool<->editor communication protocol set up to request that the editor release the package file. This will be addressed as a future work item.
- This is the first pass of the command, there are a number of non-essential todo comments left in the code that will be addressed based on feedback from the end users.
[CL 19752487 by paul chipchase in ue5-main branch]