* 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]
-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]
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]
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]
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]
Change consist of only forward declaration and additional includes
#preflight 63789c1de30d438849c48188
#rb none
[CL 23218412 by henrik karlsson in ue5-main branch]
-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]