Commit Graph

195 Commits

Author SHA1 Message Date
ben marsh
b475bc61bd Merging Live++ 1.5.0
#rb none
#jira

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 7321355 in //UE4/Release-4.23/... via CL 7321356
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v371-7306989)

[CL 7370235 by ben marsh in Dev-Core branch]
2019-07-17 03:41:26 -04:00
andrew grant
3feed04d5e Fixes for tools and Ocean editor
#rb na

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: andrew.grant
#ROBOMERGE-SOURCE: CL 7119039 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v367-6836689)

[CL 7138723 by andrew grant in Dev-Core branch]
2019-06-21 04:19:28 -04:00
marc audy
95704c464b #rb aaron.mcleran
[FYI] rob.gay aaron.mcleran maxwell.hayes phil.popp
[FYI] Ethan.Geller

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ethan.geller
#ROBOMERGE-SOURCE: CL 7095880 via CL 7106842 via CL 7106847
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v367-6836689)

[CL 7132155 by marc audy in Dev-Core branch]
2019-06-21 03:18:41 -04:00
ben marsh
55a66c5d16 Live Coding: Fix support for lazy loading modules. Now passes UBT a list of modules that can be updated, and UBT fails the build and writes out a list of others that would be modified. Live Coding console then loads those modules and retries.
#rb none
#jira UE-74679

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6960867 in //UE4/Release-4.23/... via CL 6966783
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v367-6836689)

[CL 6997890 by ben marsh in Dev-Core branch]
2019-06-14 14:31:44 -04:00
ben marsh
5b60d71b7d Live Coding: Prevent compiling from the IDE while a Live Coding session is active. Engine runtime creates a global mutex with the executable path in the a name and leaks the handle, then UBT checks for it existing before allowing a build to start.
#rb none
#jira UE-74438

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6957113 in //UE4/Release-4.23/... via CL 6966779
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v367-6836689)

[CL 6997861 by ben marsh in Dev-Core branch]
2019-06-14 14:31:36 -04:00
ben marsh
89d5a1224c Live Coding: Print a warning if the PDB file for an image cannot be loaded.
#rb none
#jira UE-75970
#rnx

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6956952 in //UE4/Release-4.23/... via CL 6966774
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v367-6836689)

[CL 6997768 by ben marsh in Dev-Core branch]
2019-06-14 14:30:53 -04:00
robert manuszewski
c291fe91c3 Copying //UE4/Dev-Rendering to Dev-Main (//UE4/Dev-Main) [at] 6944469
#rb none
#rnx

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: rolando.caloca
#ROBOMERGE-SOURCE: CL 6944849 in //UE4/Main/...
#ROBOMERGE-BOT: CORE (Main -> Dev-Core) (v366-6836689)

[CL 6955945 by robert manuszewski in Dev-Core branch]
2019-06-12 12:47:07 -04:00
Stefan Boberg
a9fd026700 Merging //UE4/Main @ 6662856 to //UE4/Dev-Core (sbo1-dev-core-e)
(peafour-mergedown)

#rb none

[CL 6664166 by Stefan Boberg in Dev-Core branch]
2019-05-29 11:40:12 -04:00
Ben Marsh
0cc6e3dca6 Copying //UE4/Dev-Build to Dev-Main (//UE4/Dev-Main)
#rb none
#rnx

[CL 6631504 by Ben Marsh in Main branch]
2019-05-24 11:51:54 -04:00
ben marsh
d8c1623336 Live Coding: Fix crashes when patching adaptive non-unity files in game modules containing static global variables.
Live++ reads object files at startup for game modules, and assigns unique ids to each compiland (used to disambiguate static variables). When compiling the patch, these compilands are modified to reference a unique id for the unity blob, causing the variables to be reconstructed.

Solution is to generate a JSON file to each output directory containing object files containing the mapping, and to use that to assign compiland ids at startup.

#rb none
#jira UE-74036

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6455253 in //UE4/Release-4.22/... via CL 6455273
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6476049 by ben marsh in Dev-Core branch]
2019-05-15 08:30:53 -04:00
rob gay
305242c254 Seekable Streams Using LPCM/ADPCM
#rb aaron.mcleran
https://p4-swarm.epicgames.net/reviews/6345090

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: rob.gay
#ROBOMERGE-SOURCE: CL 6399748 via CL 6400508 via CL 6400529
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6459067 by rob gay in Dev-Core branch]
2019-05-15 03:41:32 -04:00
ben marsh
c3e532b195 Live Coding: Fix crashes when patching adaptive non-unity files in game modules containing static global variables.
Live++ reads object files at startup for game modules, and assigns unique ids to each compiland (used to disambiguate static variables). When compiling the patch, these compilands are modified to reference a unique id for the unity blob, causing the variables to be reconstructed.

Solution is to generate a JSON file to each output directory containing object files containing the mapping, and to use that to assign compiland ids at startup.

#rb none
#jira UE-74036

#ROBOMERGE-SOURCE: CL 6455253 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 6455273 by ben marsh in Main branch]
2019-05-14 18:12:06 -04:00
rob gay
52e89fb60a Seekable Streams Using LPCM/ADPCM
#rb aaron.mcleran
https://p4-swarm.epicgames.net/reviews/6345090


#ROBOMERGE-SOURCE: CL 6399748 via CL 6400508

[CL 6400529 by rob gay in Main branch]
2019-05-09 12:53:22 -04:00
ben marsh
86b3d2f446 Fix missing include paths in generated project files in binary builds, due to exception while generating project files due to missing module.
#rb none
#jira UE-73075

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6017285 in //UE4/Release-4.22/... via CL 6017289
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6020387 by ben marsh in Dev-Core branch]
2019-04-19 17:06:11 -04:00
ben marsh
b27d8a5a08 Fix missing include paths in generated project files in binary builds, due to exception while generating project files due to missing module.
#rb none
#jira UE-73075

#ROBOMERGE-SOURCE: CL 6017285 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 6017289 by ben marsh in Main branch]
2019-04-19 14:44:15 -04:00
marc audy
e732209b78 Fix non-unity
#rb
#rnx
[CODEREVIEW] Ben.Marsh
#jira

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: marc.audy
#ROBOMERGE-SOURCE: CL 6007151 via CL 6007296 via CL 6007313
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6010574 by marc audy in Dev-Core branch]
2019-04-19 06:34:23 -04:00
marc audy
1c062e4fb2 Fix non-unity
#rb
#rnx
[CODEREVIEW] Ben.Marsh
#jira


#ROBOMERGE-SOURCE: CL 6007151 via CL 6007296

[CL 6007313 by marc audy in Main branch]
2019-04-19 00:37:07 -04:00
ben marsh
744b6cd6a0 LiveCoding: Merging fixes to resolve issues with global symbols being reconstructed when loading patch DLLs. Was causing asserts when log channels were re-registered etc...
#jira
#rb none

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5993252 via CL 5993257 via CL 5995286 via CL 5995562
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 6001814 by ben marsh in Dev-Core branch]
2019-04-18 21:38:02 -04:00
ben marsh
1ffdf73243 LiveCoding: Prevent Live Coding starting automatically when in unattended mode.
#rb none
#jira UE-72524

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5988868 in //UE4/Release-4.22/... via CL 5988908
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5999856 by ben marsh in Dev-Core branch]
2019-04-18 21:27:16 -04:00
ben marsh
a289f6681e LiveCoding: Merging fixes to resolve issues with global symbols being reconstructed when loading patch DLLs. Was causing asserts when log channels were re-registered etc...
#jira
#rb none

#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5993252 via CL 5993257 via CL 5995286

[CL 5995562 by ben marsh in Main branch]
2019-04-18 17:51:25 -04:00
ben marsh
075ce10523 LiveCoding: Prevent Live Coding starting automatically when in unattended mode.
#rb none
#jira UE-72524

#ROBOMERGE-SOURCE: CL 5988868 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5988908 by ben marsh in Main branch]
2019-04-18 14:02:02 -04:00
Johan Torp
ccd9c2597d FName optimizations and improvements
Encoding improvements
* New hash table implementation
--- Move away from 16-bit hashes since we need more than 64k buckets to hold 2M entries efficiently
--- Change to CityHash64, which is faster and stronger
--- Remove hardcoded max limit
* NAME_INDEX changed from contigouos int to monotonically increasing int
--- Opens up for future deduplication schemes that are better than number suffix dedup.
--- Saves some memory since we don't need to maintain a contiguous array
--- Typed up to cause compile errors when used as integer directly
* Avoid touching data repeatedly, normal path only does single hash of data
* New constructor that allows supplying string length up front
* Avoid dynamic allocations in string conversions >= 128 characters
* Avoid extra copying when splitting numbers
* More efficient IsPureAnsi check
* Only do one global lazy initialization call instead of multiple
* Switch to faster RW locks
* Switch from single lock to sharded hash map with separate locks
* Memory optimizations that reduces per entry overhead: 4 bytes slots, 2 byte headers and don't store null terminator

Improved API & documentation
* Document that IsValid() rarely makes sense
* Hide global state such as GetNames()
* Reduce amount of implementation details visible in header
* NameTypes.h size down by ~1/3 while adding documentation, stronger type safety and new APIs

Future possibilities
* Memory savings: Removing public NAME_INDEX and global FName array allows using the 32-bit FNameEntryId for arbitrary deduplication schemes. This can save both actual stored strings memory by deduplication and half the size of FName instances from 8B to 4B in shipping / test configs by removing the number part.
* Implementation can be tweaked further, for instance could persist 32-bit slot index hash inside slot to increase encoding performance in development / debug at the cost of memory.

Perf & mem results for internal project:
* Editor startup wall time: 12% speedup, 22.0s -> 19.5s
--- Warm disk and asset registry cache
--- Some gains from nametable serialization improvements
--- Some of these gains might be from orthogonal asset discovery optimizations
* Win64 Test Client memory usage with ~400k names: 30.3Mb -> 22.2Mb

#rb steve.robb, pj.kack
#jira UE-59973

[CL 5774657 by Johan Torp in Dev-Core branch]
2019-04-08 11:29:35 -04:00
ben marsh
dfe36e3c06 Live Coding: Fixes issue linking patch DLLs with Visual Studio Express, due to PATH environment variable not including path to mspdb140.dll.
Now stores the linker environment block in the live coding manifest, and adds it to the cache before executing the linker.

#rb none
#jira UE-72324

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5740602 in //UE4/Release-4.22/... via CL 5740765
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5743844 by ben marsh in Dev-Core branch]
2019-04-04 13:06:53 -04:00
ben marsh
566e59e1e6 Live Coding: Fixes issue linking patch DLLs with Visual Studio Express, due to PATH environment variable not including path to mspdb140.dll.
Now stores the linker environment block in the live coding manifest, and adds it to the cache before executing the linker.

#rb none
#jira UE-72324

#ROBOMERGE-OWNER: ben.marsh
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5740602 in //UE4/Release-4.22/...
#ROBOMERGE-BOT: RELEASE (Release-4.22 -> Main)

[CL 5740765 by ben marsh in Main branch]
2019-04-04 12:02:05 -04:00
ben marsh
71c96d93e9 LiveCoding: Fix unnecessary newlines on log messages.
#jira

#ROBOMERGE-OWNER: robert.manuszewski
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 5492012 via CL 5492936 via CL 5492937
#ROBOMERGE-BOT: CORE (Main -> Dev-Core)

[CL 5532607 by ben marsh in Dev-Core branch]
2019-03-25 06:00:16 -04:00