Commit Graph

176 Commits

Author SHA1 Message Date
ionut matasaru
7f8829bd4c Fixed usage of TRACE_CPUPROFILER_EVENT_SCOPE macros in various engine files.
* TRACE_CPUPROFILER_EVENT_SCOPE(ScopeName) --> to be used with a plain text as scope name (not a string!). If the parameter is a string ("abc" or TEXT("abc")), the quotes (and the TEXT prefix) will be included in the actual timer name.
* TRACE_CPUPROFILER_EVENT_SCOPE_STR("scope name") --> to be used with a static string (const ANSICHAR* or const TCHAR*); ex: when the scope name needs to include a space char
* TRACE_CPUPROFILER_EVENT_SCOPE_TEXT(*MyScopeName) --> to be used with a dynamic string (const ANSICHAR* or const TCHAR*)
See also the comments for these macros in ProfilingDebugging\CpuProfilerTrace.h.

#rb Catalin.Dragoiu

[CL 28337510 by ionut matasaru in ue5-main branch]
2023-09-29 04:05:39 -04:00
rob krajcarski
34a47d29bc Fix deterministic output for EVVM byte code
#rb stu.mckenna

[CL 27535251 by rob krajcarski in ue5-main branch]
2023-08-31 16:00:24 -04:00
shawn mcgrath
d6be895e0f #jira UE-193982
#rb none

VectorVM aligned store fix for Linux

[CL 27484467 by shawn mcgrath in ue5-main branch]
2023-08-30 10:40:47 -04:00
rob krajcarski
55c4555cb3 Fix for EVVM scripts not being tagged properly as including randoms if the script only contains merged random functions (random_add or random_2x)
#rb stu.mckenna

[CL 27353508 by rob krajcarski in ue5-main branch]
2023-08-24 15:20:21 -04:00
rob krajcarski
79b5d6242b Collection of EVVM fixes
-Cleans up the checks of the constant buffers at runtime
-Removes the search for conflicts that was exclusive to exec_index & i2f and makes sure merging exec_index only considers temp registers
-Adds an EVVM assembly string representation in the Generated Code view
-fixes random_addi implementation that was sharing the buffer increment value between the random seed and the addition operand
-fixes a OOB access/stomp when dealing with newly identified unused ext function output operands
#jira UE-193006, UE-193112
#rb stu.mckenna

[CL 27182518 by rob krajcarski in ue5-main branch]
2023-08-17 15:34:02 -04:00
bryan sefcik
39a0a9b5bd [Backout] - CL27078945
[FYI] bryan.sefcik
Original CL Desc
-----------------------------------------------------------------
Win ARM64 compile fix.

[FYI] shawn.mcgrath
#jira
#rnx

[CL 27079579 by bryan sefcik in ue5-main branch]
2023-08-14 14:40:36 -04:00
bryan sefcik
c375ac2461 Win ARM64 compile fix.
[FYI] shawn.mcgrath
#jira
#rnx

[CL 27079045 by bryan sefcik in ue5-main branch]
2023-08-14 14:29:03 -04:00
shawn mcgrath
d700e06855 compiler fix
[CL 26809460 by shawn mcgrath in ue5-main branch]
2023-08-03 10:05:39 -04:00
shawn mcgrath
fa57ee7b7f fixing compiler error
[CL 26808955 by shawn mcgrath in ue5-main branch]
2023-08-03 09:40:37 -04:00
shawn mcgrath
8d361f2fcf Experimental Vector VM improvements: faster execution speed, faster optimization speed, uses less runtime memory, added debugging features
[CL 26804446 by shawn mcgrath in ue5-main branch]
2023-08-03 07:16:11 -04:00
stu mckenna
fd6cae6b42 - Add VVM support for bit casting between floats and ints
#rb rob.krajcarski
#preflight 6466532e743f7c995bc67a0f

[CL 25548196 by stu mckenna in ue5-main branch]
2023-05-19 13:51:29 -04:00
simon tovey
c8105e2753 Fixes and improvements to write DI.
Fixing Same Frame Reads. We currently write to local data and then publish in post simulate, however post simulate tick can be moved to the end to the frame which means it's impossible to get same frame reads in the subsequent tick phases.
- Moved Begin/End simulate of write DI dataset to new Pre/Post stage tick path.
- Write DI now publishes from post stage so made publishing to data channel data threadsafe.
- Write DI now grabs it's data channel data once in presimulate rather than in post simulate.
- Fixed issue preventing proper init of Pre/Post simulate tick lists.

Write and Append now updating NumInstances via atomic in post stage to fix threadsafety with parallem VM exec.

Added optimized path through Append() in cases where we're emitting every particle.
This required a slight tweak to the DI handlers.

#rb Stu.Mckenna,Rob.Krajcarski
#preflight 646620cb063e77985c3efc3f

[CL 25525227 by simon tovey in ue5-main branch]
2023-05-18 10:31:25 -04:00
bryan sefcik
91c57d395e Removed redundant module includes.
#preflight 645d4bf3aa3c584c0b5b3a67

[CL 25435653 by bryan sefcik in ue5-main branch]
2023-05-11 16:48:21 -04:00
simon tovey
b6da6ca240 Niagara Data Interfaces now have an optional pre and post tick stage callback hook.
This is preliminary work for sim stages on CPU but also required for some upcomming Data Channels work.

Niagara DI VM handlers can now reset themselves back to the original state allowing DIs to iterate over the same register inputs if needed.

#rb Stu.Mckenna

[CL 25158681 by simon tovey in ue5-main branch]
2023-04-22 18:39:43 -04:00
rob krajcarski
10234620d7 Small optimization to Legacy VM (contributed by licensee limztudio
#jira UE-174066
#preflight 63e2be42c11233cdcaa90502
#rb shawn.mcgrath

[CL 24386313 by rob krajcarski in ue5-main branch]
2023-02-23 14:32:28 -05:00
joe kirchoff
4eb0d7b810 Remove unnecessary private include path
#rnx
#jira UE-177808

[CL 24351077 by joe kirchoff in ue5-main branch]
2023-02-21 17:19:34 -05:00
simon tovey
361dd96bfd Niagara Data Channels v0.1
Niagara Data Channels are new system for communication between Niagara Systems and with game code/BP.

The system has a few peices.

DataChannel - Data Definition for a named channel of data. New types can be added to deal with the channel differently.
DataChannelHander - Runtime counterpart for DataChannels each Channel Type will have a handler that uses the data definition to manager the channel data accordingly.
DataChannelDefinitions - Asset class containing one or more Data Channel.
DataChannelManager - Manger class contianing and providing access to all currently loaded Data Channels and their Handlers.
DataChannelAccessor - Temporary initial BP API allowing BPs to read and write to Data Channels.
Data Channel Global - Initial simple Data Channel Type. Stores all data globally.
Data Interface Data Channel Read - New DI that allows Niagara Systems to read data from a Data Channel.
Data Interface Data Channel Write - New DI that allows Niagara Systems to write data toi a Data Channel.
Data Interface Data Channel Spawn - Specialization of the Read DI which allows for easy spwaning based on the contents of a Data Channel.

Data Channels can be enabled/disabled via FX.Niagara.DataChannels.Enabled = 0.
Initially this defaults to off.

Misc:

- New DI node action providers to enable actions on the Data Channel DI nodes.
- Details customized reference class for data channels that avoids any typing the available channel names etc.
- DIs now have a post compile step that can be used to cache of certain data at compile time.
- NiagaraDataInterfaceUtilities now has an optional SearchOptions parameter that allows us to include "internal" DIs. This is required to support the above PostCompile step.
- Niagara Type Definitions now optionally allow LWC types, previously any LWC types would be auto converted to SWC on load.
- Asset Registry now tracks SWC Sim types as we would get duplicated entires in several places of the UI due to confusion between LWC and SWC types.


#jira UE-153996
#rb Stu.Mckenna, Rob.Krajcarski, Michael.Galetzka
#preflight 63c91387ac35a0e9da6adde0

[CL 23773845 by simon tovey in ue5-main branch]
2023-01-19 10:44:04 -05:00
henrik karlsson
ce587eb612 Added markups for headers that can't be compiled standalone.. this is needed for both Header units and IWYU
#preflight 63789b0c170bc34a93a869e5
#rb none

[CL 23552160 by henrik karlsson in ue5-main branch]
2022-12-21 02:46:50 -05:00
bryan sefcik
b30383a834 Fixed compile issues found after moving module files around in the unity files.
Also added missing generated.h includes.

#jira
#preflight 639bbcb2776b61ba3b35a835

[CL 23535000 by bryan sefcik in ue5-main branch]
2022-12-15 19:56:15 -05:00
rob krajcarski
dbf7f97c04 Fix for experimental VM not supporting FExternalFuncConstHandler
#rb stu.mckenna
#preflight 637fcd2e18176c67c217b0cf

[CL 23263095 by rob krajcarski in ue5-main branch]
2022-11-24 19:14:42 -05:00
henrik karlsson
b5164ac775 Fixes to make modules compile with IWYU. We've added to IWYU toolchain so it compiles "orphaned" headers which does not have a owning cpp file. This identified lots of headers that couldn't be compiled by themselves (or if they were to included first)
Change consist of only forward declaration and additional includes

#preflight 63789c1de30d438849c48188
#rb none

[CL 23218412 by henrik karlsson in ue5-main branch]
2022-11-21 03:22:23 -05:00
rob krajcarski
2aa0c9da90 Guard against integer overflow with integer divide within VectorVM
#rb stu.mckenna
#preflight 63753bfe953c19d4351d4edb

[CL 23164295 by rob krajcarski in ue5-main branch]
2022-11-16 17:41:55 -05:00
rob krajcarski
41ef4d5701 Couple of fixes for NiagaraScript's DDC content to be non-deterministic
-Cleans up some of the data written into the payload (removing compile times & writing out zeroes for unneeded non-determinstic pointers)
-Incorporates the AssetPath of the script to the DDC key to prevent identical scripts from sharing the same DDC as we still have some data in the DDC value (node guis & emitter names, ..)
#rb stu.mckenna
#jira none
#preflight 63752bdd32484253058adae3

[CL 23161488 by rob krajcarski in ue5-main branch]
2022-11-16 15:42:00 -05:00
joe pribele
58e5ef0030 removing PRAGMA_DISABLE_OPTIMIZATION or upgrading to UE_DISABLE_OPTIMIZATION_SHIP preparing for deprication of PRAGMA_DISABLE_OPTIMIZATION
#preflight 6372d56b324842530500335a

[CL 23130066 by joe pribele in ue5-main branch]
2022-11-14 19:05:15 -05:00
shawn mcgrath
049afd6ada Build health fix for previous submission. EVVM fix. #preflight 636921f24d3c1d9d925ce533 #rb none
[CL 23011308 by shawn mcgrath in ue5-main branch]
2022-11-07 10:50:21 -05:00