Commit Graph

28 Commits

Author SHA1 Message Date
buzz burrowes
a794d64aa4 Changes to allow for synchronized "kicking" of certain async audio jobs created during a pass through FMixerDevice::OnProcessAudioStream.
Existing workloads should continue to work as they always have, but it is now possible for a procedural sound (SoundGenerator) to specify a "synchronized render queue" that its "audio decode tasks" should be added to. That queue's jobs are then held for the duration of the OnProcessAudioStream function and only kicked when some "owning" system kicks the queued tasks.

In the Harmonix Music specific case, UMusicEmitterComponent (a subclass of a USynthComponent) creates soundgenerators that specify a unique render queue id. Then, in the Harmonix Music system's "post render callback" which is called at the bottom of the FMixerDevice::OnProcessAudioStream, after doing the synchrnous "state updates" for all of the music renderers to keep them in sync, we kick all the queued up tasks so async rendering can proceed.

[REVIEW] [at]aaron.mcleran [at]phil.popp [at]rob.gay [at]jimmy.smith
#preflight 6216c0c7db60b6b592017336

#ROBOMERGE-AUTHOR: buzz.burrowes
#ROBOMERGE-SOURCE: CL 19107053 via CL 19116514 via CL 19116561 via CL 19116594 via CL 19117383
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19153372 by buzz burrowes in ue5-main branch]
2022-02-25 14:37:02 -05:00
andriy tylychko
40d9f26fb5 disabled busy waiting for audio FDecodeHandle tasks to avoid it picking long running tasks and hitching, added an option for ThreadPool tasks to opt out of busy waiting
#rb danny.couture

#ROBOMERGE-AUTHOR: andriy.tylychko
#ROBOMERGE-SOURCE: CL 18443436 via CL 18443447 via CL 18443460 via CL 18444422 via CL 18445361
#ROBOMERGE-BOT: STARSHIP (Release-Engine-Staging -> Release-Engine-Test) (v897-18405271)

[CL 18445522 by andriy tylychko in ue5-release-engine-test branch]
2021-12-13 13:44:47 -05:00
aaron mcleran
a02b6321da Fixing metasounds cutting off too early when told they are done.
#rb Rob.gay
#jira UE-119444
[FYI] Sondra.Moyls

#ROBOMERGE-SOURCE: CL 16827752 via CL 16827756
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)

[CL 16827763 by aaron mcleran in ue5-release-engine-test branch]
2021-07-12 13:37:05 -04:00
maxwell hayes
a781a97922 Improvements to Metasound Wave decoding
#jira UE-108501, UE-107548, UEAU-693
#rb Phil.Popp

#ROBOMERGE-SOURCE: CL 15564761 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)

[CL 15564769 by maxwell hayes in ue5-main branch]
2021-03-01 20:25:28 -04:00
aaron mcleran
79e90ca0a0 Adding ability for procedural audio to use a u-object generator class.
All synths will eventually be implemented using this API.

Change also has a test synth that exercises code that is a hello-world style "tone generator".

#rb Ethan.Geller, Phil.Popp
#

#ROBOMERGE-OWNER: aaron.mcleran
#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 12996583 via CL 12996736 via CL 12996749
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v682-12900288)

[CL 12996768 by aaron mcleran in Main branch]
2020-04-23 01:02:01 -04:00
jordan cristiano
fc635c1a62 Added stat scopes for FAsyncDecodeWorker.
#rb ethan.geller
#rnx


#ROBOMERGE-SOURCE: CL 12436435 via CL 12436436 via CL 12445780
#ROBOMERGE-BOT: (v671-12333473)

[CL 12445945 by jordan cristiano in Release-Engine-Staging branch]
2020-03-26 08:12:15 -04:00
maxwell hayes
a34833c4ec Fix for Time Synth crash (race condition with GC). Sonud Source Decodes for the TimeSynth are now synchronous.
#rb Aaron.McLeran



#ROBOMERGE-OWNER: maxwell.hayes
#ROBOMERGE-AUTHOR: maxwell.hayes
#ROBOMERGE-SOURCE: CL 11211822 via CL 11211829 via CL 11211833
#ROBOMERGE-BOT: (v643-11205221)

[CL 11212274 by maxwell hayes in Main branch]
2020-02-03 20:02:12 -05:00
ryan durand
0f0464a30e Updating copyright for Engine Runtime.
#rnx
#rb none


#ROBOMERGE-OWNER: ryan.durand
#ROBOMERGE-AUTHOR: ryan.durand
#ROBOMERGE-SOURCE: CL 10869210 via CL 10869511 via CL 10869900
#ROBOMERGE-BOT: (v613-10869866)

[CL 10870549 by ryan durand in Main branch]
2019-12-26 14:45:42 -05:00
ethan geller
4b4baddf87 Band-aid fix for high volume iOS crash.
[REVIEW]


#ROBOMERGE-SOURCE: CL 10607075 via CL 10607077 via CL 10607399 via CL 10607407 via CL 10607413
#ROBOMERGE-BOT: (v607-10590470)

[CL 10607419 by ethan geller in Main branch]
2019-12-07 08:58:05 -05:00
maxwell hayes
5111e3bb24 Adding cvar to for synchronous audio decodes (au.ForceSyncAudioDecodes)
needs to be enabled to have any effect

#rb Aaron.McLeran
[FYI] Randolph.Kestner, Ryan Mangin


#ROBOMERGE-OWNER: maxwell.hayes
#ROBOMERGE-AUTHOR: maxwell.hayes
#ROBOMERGE-SOURCE: CL 8343245 via CL 8343249 via CL 8358255
#ROBOMERGE-BOT: (v401-8057353)

[CL 8360025 by maxwell hayes in Main branch]
2019-08-27 21:52:38 -04:00
maxwell hayes
a54ba91c44 Setting default vaule of ForceSyncAudioDecodesCvar to 0 instead of 1
#rb none


#ROBOMERGE-SOURCE: CL 8322660 via CL 8349587 via CL 8349630 via CL 8350561
#ROBOMERGE-BOT: (v401-8057353)

[CL 8352388 by maxwell hayes in Main branch]
2019-08-27 16:40:31 -04:00
maxwell hayes
35bd0f3862 Added cvar to force sync audio decodes (can be enabled for low-end/low-core devices)
#rb Aaron.McCleran
[FYI] Ethan.Halvorsen


#ROBOMERGE-SOURCE: CL 8322420 via CL 8349579 via CL 8349622 via CL 8350553
#ROBOMERGE-BOT: (v401-8057353)

[CL 8350593 by maxwell hayes in Main branch]
2019-08-27 15:48:42 -04:00
Josh Markiewicz
d79515867d Copying //UE4/Dev-Online to Dev-Main (//UE4/Dev-Main)
- Up to CL8320930 from DevOnline and 8311605 Merge Down from Main
- skipped some Fortnite content/plugins/code where it tried to reintegrate files that had been moved pending investigation
#rb none

[CL 8321295 by Josh Markiewicz in Main branch]
2019-08-26 18:35:22 -04:00
aaron mcleran
652a05b297 Fix for XMA2 popping.
- Partial fix only includes changes to xma2 cooking format while we're recooking.

#rb Ethan.Geller


#ROBOMERGE-OWNER: aaron.mcleran
#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-SOURCE: CL 7622400 via CL 7622401 via CL 7622402 via CL 7634704
#ROBOMERGE-BOT: (v372-7473910)

[CL 7634707 by aaron mcleran in Main branch]
2019-07-26 12:51:24 -04:00
ethan geller
1a099f7118 [REVIEW-5355511] aaron.mcleran, rob.gay
#rb ethan.geller


#ROBOMERGE-SOURCE: CL 5353457 via CL 5353458 via CL 5353459 via CL 5355479

[CL 5355509 by ethan geller in Main branch]
2019-03-08 19:01:38 -05:00
aaron mcleran
9e6d8634cb Fix for distortion and zippering during panning.
- Fix is to make sure the starting speaker map is set to the destination after doing the interpolation.

#rb Ethan.Geller


#ROBOMERGE-SOURCE: CL 5347741 via CL 5347743 via CL 5347744 via CL 5347807

[CL 5347810 by aaron mcleran in Main branch]
2019-03-08 01:06:12 -05:00
aaron mcleran
17dcbff766 Fixing crash involving async decoding during audio streaming.
Issue is streaming sound is being removed from the streaming manager before it's stopped playing in the audio renderer. Fix is to prevent any stream chunk or sound from getting removed from the streaming manager if there is an active decoder using any stream chunk.

#rb Ethan.Geller


#ROBOMERGE-SOURCE: CL 5275960 via CL 5275961 via CL 5292021

[CL 5292051 by aaron mcleran in Main branch]
2019-03-05 06:13:19 -05:00
aaron mcleran
139e987845 Enabling realtime decoding in audio mixer to be in background priority thread pool.
#rb Ethan.Geller
[FYI] Rex.Hill
#jira UE-69577


#ROBOMERGE-SOURCE: CL 5275172 via CL 5275173 via CL 5291382

[CL 5291420 by aaron mcleran in Main branch]
2019-03-05 00:19:24 -05:00
aaron mcleran
c30c37b8a3 Adding ability to customize the precache buffer size in engine ini files.
- Adding some new LLM categories to help track decoded precache buffer mem usage and fully decoded buffers.

More info:

Precache buffer sizes, on platforms that utilize the feature, can be a huge memory hog. By reducing their sizes, we can recover quite a bit of memory.
Tricky part of the change is accounting for the variable precache buffer size while still retaining the MONO_PCM_BUFFER_SIZE size for regular real-time decoding cases.
We do a "skip first buffer(s)" step when starting a real-time decoded sound so the smaller precache buffer size needs to be shared to the decoders.


#rb Ethan.Geller, Rob.Gay
#jira


#ROBOMERGE-SOURCE: CL 4696296

[CL 4696323 by aaron mcleran in Main branch]
2019-01-09 17:41:16 -05:00
Ben Marsh
7598af0532 Update copyright notices to 2019.
#rb none
#lockdown Nick.Penwarden

[CL 4662404 by Ben Marsh in Main branch]
2018-12-14 13:41:00 -05:00
Ben Marsh
ea340d3fbf Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main)
#rb none
#lockdown Nick.Penwarden

[CL 4567513 by Ben Marsh in Main branch]
2018-11-14 19:05:13 -05:00
Marc Audy
af90b7bcd4 Copying //UE4/Fortnite-Staging to Dev-Main (//UE4/Dev-Main) @ 4395008
#rb
#rnx
#lockdown Nick.Penwarden

[CL 4395058 by Marc Audy in Main branch]
2018-09-25 10:11:35 -04:00
aaron mcleran
4bf261e685 #jira UE-61350 Better fix for crash found in shooter game.
- Rather than a bool for flagging sounds as being used for GC, it's a ref count (multiple sound sources can play the same USoundWave).
- Removed a spot that was setting the flag to false causing a race condition.
- Tested with Shipping and Development client builds with shooter game and with very short match durations to exacerbate the GC flush.

#rb Ethan.Geller

#ROBOMERGE-SOURCE: CL 4186379 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: TEST (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: aaron.mcleran
#ROBOMERGE-OWNER: james.hopkin

[CL 4195485 by aaron mcleran in Staging-4.20 branch]
2018-07-09 04:56:07 -04:00
ethan geller
5bbd3f9cff [Release 4.20] Merge updates for Stopping Voices.
#jira  UE-60950 UE-60913 UE-60890 UE-60850
#rb Aaron.McLeran

#ROBOMERGE-SOURCE: CL 4162582 in //UE4/Release-4.20/...
#ROBOMERGE-BOT: RELEASE (Release-4.20 -> Release-Staging-4.20)
#ROBOMERGE-AUTHOR: ethan.geller

[CL 4167516 by ethan geller in Staging-4.20 branch]
2018-06-27 16:58:34 -04:00
Ben Marsh
13d012685f Merging copyright update from 4.19 branch.
#rb none
#rnx
#jira

[CL 3818977 by Ben Marsh in Staging-4.19 branch]
2018-01-02 15:30:26 -05:00