Commit Graph

33 Commits

Author SHA1 Message Date
Adric Worley
d50d728c30 Move VectorVM tests into separate file
[CL 2680715 by Adric Worley in Main branch]
2015-09-04 14:05:03 -04:00
Adric Worley
9d134e7464 #ENGINE - Integrating automation test flags refactor
- New filter flags in automationtest.h
- Compile time errors if proper flags are not specified
- Existing tests converted to new flags
- New "disabled" flag
- Filter dropdown in automation UI replaces Smoke Tests button
- Automation features are no longer compiled out in Test configuration at runtime (except in Shipping)
- Enabled automation tests to be triggered from in-game console in non-editor builds (automation controller is enabled)

NOTE: This will force licensees who use automation to update their tests.
#codereview: jason.bestimt, mike.fricker, ben.salem

[CL 2672561 by Adric Worley in Main branch]
2015-08-28 13:23:02 -04:00
Simon Tovey
863277b415 Hopeful, blind compile fix for xbone.
[CL 2664211 by Simon Tovey in Main branch]
2015-08-21 06:17:53 -04:00
Simon Tovey
f7ffe5c68e ** PRIMARY FEATURE **
- Events
Events work by writing to a preallocated buffer exposed to the VM as "SharedData". The underlying data storage for these is the same as particle attriubtes. Each "Shared Data" view in the VM has a counter which is incremented or decremented to aqcuire and consume a slot in this buffer for any particle that wished to write or read from it.
In the graph, this is done via ReadEvent and WriteEvent nodes. Each lets the user define the data they wish to read or write, just like for particle attributes.
Each also has a mandatory "Valid" pin which indicates whether the data being read or written is valid.
e.g.
A write would be marked deliberately valid or invalid by the user to control which particles write out event data. Valid <= 0.0f means dont' write. Valid > 0.0f means do write. Matches current working of less than etc. Should probably change to use ints when they're supported.
A read would be valid or not depending on whether there is data available in the event buffer.

Events TODO:
Once ints are supported, alot more power can be had using direct indexing of the buffers.
This leads me onto supporting generic, non-event buffers. Should be very easy to do.
Much of the VM support is hacked in and will want to be replaced after scalarization.
I may also move away form a "Shared Data" area and write a more general array feature. Couldn't really do this initially with no int support. Should have really done scalarization+int support first.
Needs BP interface.

** SECONDARY FEATURES **
- VM Debugger working - Still basic and rough. Allows a single particle to be traced through the VM for it's lifetime.
- Function Merging changes - Merged as needed during compiler traversal rather than all at start.
- Constatnt changes - Splat scalars when building table, not runtime. Faster and reduced code complexity.
- Fixed reallocation of niagara node pins so that existing connections are preserved.
- Added a reregister context class to reregister all niagara components that use a particualr script when that script is recompiled. TODO: Should also do this for property changes in the editor I think.
- Implemented GreaterThan Op. The reverse of LessThan
- Implemented VectorSelect Op.  > 0.0f Selects input A, otherwise B.
- Added a new Graph Editor Tab to the Niagara Graph Editor. "Flattened Graph" shows you the scripts graph but with all the function calls merged into the main graph. Useful for debugging. Still a bit rough around the edges. Might not make it to V1.0 of niagara but useful for the moment.

** MINOR FIXES **
Fixed crash in Dev UI in the effect editor.
Tweakd the details customization for the dev ui.
Fixed leakage of all effect instances that were created. This stuff still needs some work. Need to do a pass over the high level stuff in Niagara and more carefully define lifetimes and ownerships.

[CL 2662489 by Simon Tovey in Main branch]
2015-08-20 08:49:28 -04:00
Olaf Piesche
143d0ef9a7 Niagara: adding mesh effect renderer; few additional bug fixes
[CL 2636020 by Olaf Piesche in Main branch]
2015-07-28 16:50:47 -04:00
Simon Tovey
149ff75b67 Added a new, alternate UI to the Niagara effect editor. Accesible as a new tab under the windows menu.
This arranges all emitters in an SDetailView with some customization.
Primary benefit of this is that hooking things into the UI will require almost no work and elements can still be customized for a good UX.
Previous UI is still available and should work exactly as before.

Quite a bit of refactoring was needed to acheive this but much of it was needed for other things anyway and/or has some nice additonal benefits.
E.g.
- All constant types are supported easily.
- You can now create a default data object in the graph which will propagate through to the effect editor.
- Adding new data object types will be very easy.

Also added a delete and duplicate button for emitters in both UIs.

#codereview olaf.piesche

[CL 2590057 by Simon Tovey in Main branch]
2015-06-17 10:12:41 -04:00
Olaf Piesche
3335a1e952 Hopefully fixing a compiler error on the build machine that never showed up in my local builds.
[CL 2587903 by Olaf Piesche in Main branch]
2015-06-15 17:29:23 -04:00
Olaf Piesche
0bd22cbcfd Niagara: proper serialization of data objects; couple of bug fixes
[CL 2587782 by Olaf Piesche in Main branch]
2015-06-15 15:51:40 -04:00
Olaf Piesche
888f5f5961 Niagara fixes:
- much improved noise, should be more or less divergence free now
- sin/cos/tan now have a full period within [0:1]
- added a Divide node

[CL 2551525 by Olaf Piesche in Main branch]
2015-05-14 18:00:40 -04:00
Adric Worley
e578e2d7cd Separate automated system tests from project-specific tests
[CL 2514485 by Adric Worley in Main branch]
2015-04-16 12:40:47 -04:00
Matt Kuhlenschmidt
ad7f0afa82 Fix build
#lockdown Zachary.EdgertonJones

[CL 2511924 by Matt Kuhlenschmidt in Main branch]
2015-04-14 14:09:51 -04:00
Graeme Thornton
47c8b039a5 Fix for monolithic build fails
#codereview Olaf.Piesche

[CL 2511405 by Graeme Thornton in Main branch]
2015-04-14 05:23:40 -04:00
Olaf Piesche
afd4769c9a Missing file
[CL 2510815 by Olaf Piesche in Main branch]
2015-04-13 17:21:38 -04:00
Olaf Piesche
89375030fe Moved Niagara to its own module; made curve access work; fixed various small things
#codereview simon.tovey

[CL 2510645 by Olaf Piesche in Main branch]
2015-04-13 15:25:14 -04:00
Dmitry Rekman
c97f88bcc1 Win32: Pass aligned variables by reference.
- Aligned types cannot be passed by values in Win32 (ABI restriction; appropriate stack alignment is not guaranteed).

#codereview Olaf.Piesche

[CL 2494907 by Dmitry Rekman in Main branch]
2015-03-27 21:53:04 -04:00
Olaf Piesche
1a91cde253 Fixing compile error. Stupid mistake, forgetting to completely remove an experiment.
[CL 2494345 by Olaf Piesche in Main branch]
2015-03-27 15:47:28 -04:00
Olaf Piesche
2dd94d0b5f Niagara; first pass buffer write, curve data object, curve data editor in the effect editor
[CL 2494172 by Olaf Piesche in Main branch]
2015-03-27 14:18:23 -04:00
Olaf Piesche
91ab96bfca Re-submitting compile fix.
[CL 2401141 by Olaf Piesche in Main branch]
2015-01-08 13:26:51 -05:00
Olaf Piesche
e6d04275b7 Niagara: various changes, fixes, and optimizations; first pass data objects (for buffer access, curves, etc.), to be enabled when niagara is in its own module (Curve data object sample currently always returns (1,0,0,1)).
[CL 2401041 by Olaf Piesche in Main branch]
2015-01-08 11:49:58 -05:00
Olaf Piesche
ce262e0d30 Niagara:
-adding renderer configuration
-fixing various bugs, including crashes, failed rendering, and weird behavior
-some additional UI love, making preview viewport work properly, more consistent updating of in-level effects after changes, immediate constant display in the effect editor on script compile for both update and spawn scripts
-changed sin/cos/tan nodes to use [0:1] instead of [0:Pi] for half a period (most range restricted values we deal with are [0:1], so it makes more sense to scale implicitly)
-added less than comparison operator; outputs 0 if false, 1 if true. Still experimental, may change

[CL 2383563 by Olaf Piesche in Main branch]
2014-12-10 10:48:03 -05:00
Ben Marsh
149375b14b Update copyright notices to 2015.
[CL 2379638 by Ben Marsh in Main branch]
2014-12-07 19:09:38 -05:00
Simon Tovey
dc448bd092 Stubbed out support for all VM ops. Most need a vectorized implementation.
Sin and Cos implementation is done.

#codereview Lee.Clark, Olaf.Piesche

[CL 2373587 by Simon Tovey in Main branch]
2014-12-02 05:52:32 -05:00
Olaf Piesche
37aed713fd Bunch of Niagara work: effects editor, underlying infrastructure changes to the component, scene proxy, effect renderers, NiagaraSimulation, and some code cleanup; next up, proper serialization and more code cleanup.
[CL 2334728 by Olaf Piesche in Main branch]
2014-10-20 14:14:16 -04:00
Olaf Piesche
62947ae8f7 Hopefully fixing compiler error on XBone.
[CL 2333500 by Olaf Piesche in Main branch]
2014-10-17 16:14:11 -04:00
Simon Tovey
57184746dc More compile fixes. Will be at least 1 more as there's an xbone error I've not sussed yet.
[CL 2331497 by Simon Tovey in Main branch]
2014-10-16 08:17:17 -04:00