Commit Graph

12050 Commits

Author SHA1 Message Date
amzn-sj a6958e8166 Fix build error due to const qualifiers not matching
Signed-off-by: amzn-sj <srikkant@amazon.com>
2022-02-16 11:28:07 -08:00
jromnoa 8a1d63bab0 Merge pull request #7663 from aws-lumberyard-dev/Atom/jromnoa/move-benchmark-test-metrics-to-new-suite
Move benchmark test metrics to their own suite outside of the GPU suite.
2022-02-16 11:01:37 -08:00
Scott Romero d119501760 [development] fixes for targeting macOS Monterey (12.x) (#7666)
Targeting macOS 12.x fails to compile due to some named constants being deprecated and replaced

Signed-off-by: AMZN-ScottR 24445312+AMZN-ScottR@users.noreply.github.com
2022-02-16 10:37:36 -08:00
dmcdiarmid-ly b9fd9a43c6 Merge pull request #7669 from aws-lumberyard-dev/Atom/dmcdiar/LYN-10373
MaterialEditor fix for MSAA state
2022-02-16 11:32:51 -07:00
amzn-sj fef53bf4be Update ProcessFromListOfVector2 API functions to use bulk queries. (#7658) 2022-02-16 10:08:17 -08:00
Nicholas Van Sickle 26566a06d2 Merge pull request #7565 from aws-lumberyard-dev/nvsickle/DomPrefixTree
Add DomPrefixTree, a DOM path => value lookup structure
2022-02-16 11:50:43 -05:00
Roman f72c7da4a3 Change rotation camera to use RMB, and add orbit rotation camera using LMB + alt (#7610)
* Change rotation camera to use RMB, and add orbit rotation camera using LMB + Alt

Signed-off-by: rhhong <rhhong@amazon.com>

* add lookScrollCamera

Signed-off-by: rhhong <rhhong@amazon.com>
2022-02-16 08:38:51 -08:00
lumberyard-employee-dm ba48ef3949 GCC Build fix. (#7659)
GCC doesn't accept accessing member variables inside the noexcept expression of a member function.

GCC also requires that template specializations for an inner template be outside of all classes.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-02-16 10:06:00 -06:00
Chris Galvan 18631b1a30 Merge pull request #7563 from aws-lumberyard-dev/jckand/ImageGradientTests
Adding new Image Gradient test to validate surface modification
2022-02-16 10:02:30 -06:00
Benjamin Jillich a9d2ea660c EMotion FX: Colliders now also render without the collider plugins #7643
* Colliders only rendered in case the given plugin was active, no matter if they were enabled or not in the 3D viewport which was confusing for users. Colliders as well as ragdoll debug draw now renders independently of the plugins.
* Added debug rendering for colliders and ragdoll joint limits to the Atom debug draw class
* Automatically clear selection when closing skeleton outliner

Resolves #5982
Resolves #5980

Signed-off-by: Benjamin Jillich jillich@amazon.com
2022-02-16 16:43:28 +01:00
Chris Galvan c2d6ba0c69 Merge pull request #7625 from aws-lumberyard-dev/cgalvan/AddSupportForUNORM_SRGB
Added support for several UNORM_SRGB formats
2022-02-16 09:18:34 -06:00
Mike Balfour 0e328afcdd Optimize surface providers (#7631)
* Add comparison operators to SurfaceTagWeight.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed AddSurfaceTagWeight to always combine weights.
This simplifies the API a bit and defines the behavior if someone ever tries to add a duplicate tag.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added benchmarks for measuring the performance-critical APIs.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed SurfaceTagWeights to a fixed_vector.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add inPosition to AddSurfacePoint.
This will be used to detect which input the surface point is associated with.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add inPositionIndex to the appropriate APIs.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched Gradient Surface benchmarks to use actual surface components.
The gradient unit tests and benchmarks were previously using a mock surface data system, which led to misleading benchmark results. Now, the actual SurfaceData system gets constructed, and the tests use a mock provider, but the benchmarks use actual shape providers for more realistic benchmarking.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed unit tests to have better query ranges.
Half of each previous range was querying outside the surface provider's data.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* First attempt at removing SurfacePointLists.
This currently runs significantly slower than the previous code but passes the unit tests.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Another attempt at optimization.
This one runs faster than the previous, but still slow.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix the cmake dependency so that the gradient tests rebuild SurfaceData.dll when run.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switch SurfaceAltitudeGradient over to the new bulk API.
Also, optimized the non-bulk API by having it reuse the SurfacePointList to avoid the repeated allocation / deallocation cost.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched to using an indirect index so that all allocations are consecutive in our reserved buffer.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched back to SurfaceTagWeight again.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added runtime dependency to LmbrCentral for unit tests.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched code over to use the full EnumeratePoints in most cases.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added knowledge of max surface point creation into the system.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add generic GetSurfacePointsFromList API implementation for surface providers.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed implementation to use the correct maximum number of input points based on the surface providers being queried.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix out-of-bounds references on empty lists.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix memory allocation that caused benchmark runs to crash.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Starting to clean up the API.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Move SurfacePointList into separate files for easier maintainability.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed bug where too many points were filtered out due to using the position Z as a part of the AABB check.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Made FilterPoints an internal part of SurfacePointList so we can choose when and how to perform the filtering.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Final cleanup / comments.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added includes for non-unity builds.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Optimized GetValues() implementations.
Also consolidated GetValue() and GetValues() down to a single implementation under the covers for easier maintenance.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed how unit tests initialize the mock lists to try and fix the linux errors.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switch to explicit span declarations to help ensure this works with linux.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed compile error.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Make the bulk terrain APIs take in const Vector instead of non-const.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Optimize the surface data providers for bulk queries.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2022-02-16 09:17:01 -06:00
Benjamin Jillich 1413977aca Animation Editor: Motion event colors aren't in sync with the event presets (#7582)
The motion events in the timeview had the wrong colors assigned as they weren't correctly mapped to the given event presets.

Signed-off-by: Benjamin Jillich <jillich@amazon.com>
2022-02-16 16:07:33 +01:00
dmcdiarmid-ly e94d832e67 Set MSAA state in MaterialEditor startup
Signed-off-by: dmcdiarmid-ly <63674186+dmcdiarmid-ly@users.noreply.github.com>
2022-02-16 02:12:30 -07:00
Benjamin Jillich 5e3b176abf EMotion FX: Colliders now also render without the collider plugins
Colliders only rendered in case the given plugin was active, no matter if they were enabled or not in the 3D viewport which was confusing for users. Colliders as well as ragdoll debug draw now renders independently of the plugins.

Signed-off-by: Benjamin Jillich <jillich@amazon.com>
2022-02-16 09:25:49 +01:00
Nicholas Van Sickle de8b1496f0 Update DomPrefixTree range ctor with better validation
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-15 17:31:57 -08:00
jromnoa 19ccd59268 remove unused import
Signed-off-by: jromnoa <80134229+jromnoa@users.noreply.github.com>
2022-02-15 17:27:41 -08:00
jromnoa 79e32ce4e5 moving benchmark tests into their own file to prevent timeout failures of other tests potentially stopping the benchmarks
Signed-off-by: jromnoa <80134229+jromnoa@users.noreply.github.com>
2022-02-15 16:29:31 -08:00
jromnoa 932f0a4d84 Merge pull request #7596 from aws-lumberyard-dev/Atom/scottmur/editor_test_screenshot
Atom editor screenshot test refactor for nightly GPU
2022-02-15 16:07:19 -08:00
Mike Balfour 16d6cbca2a Fixed intermittent unit test failures. (#7651)
The problem is that SurfacePoint doesn't have default values when constructed, and a few of the unit tests weren't setting m_position because the values weren't strictly needed for the test. However, the SurfacePointList checks them for validity and asserted when they couldn't be found, which was hit-and-miss due to it being uninitialized memory that was usually but not always 0xCCCCCCCC.
Improved the assert message and set the position values everywhere.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2022-02-15 17:59:04 -06:00
Nicholas Van Sickle f60a24e07d Add support for Range-based DomPrefixTree construction, fix initializer_list
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-15 15:55:12 -08:00
Ronald Koppers f2378fc8d8 Merge pull request #7561 from aws-lumberyard-dev/ConfigurableStack
Improved the way the Settings Registry can handle stacks/arrays.
2022-02-15 15:41:33 -08:00
Chris Galvan 9a32d433f4 Changed to use the lookup table directly than have a helper method
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2022-02-15 17:29:53 -06:00
Chris Galvan 12d5a304b5 Improved performance of UNORM_SRGB pixel retrieval by switching to a pre-computed lookup table
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
2022-02-15 16:47:58 -06:00
Nicholas Van Sickle e149abe550 Tidy a bit of API
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-15 14:42:52 -08:00
Scott Murray 5124a6322d pulling in latest
Signed-off-by: Scott Murray <scottmur@amazon.com>
2022-02-15 13:10:12 -08:00
AMZN-koppersr f91ea8de13 Removed #pragma once in cpp file.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-02-15 13:10:10 -08:00
Allen Jackson de97ad6ade {lyn8578} adding UX for assinging a Python scene builder (#7551)
* {lyn8578} adding UX for assinging a Python scene builder

Signed-off-by: Allen Jackson <23512001+jackalbe@users.noreply.github.com>

* improved the Reset and Assign script logic

Signed-off-by: Allen Jackson <23512001+jackalbe@users.noreply.github.com>

* GUI updates to highlight the scene script


Signed-off-by: Allen Jackson <23512001+jackalbe@users.noreply.github.com>

* save off the script file name instead of holding onto the rule
update the header display name separate from setting the scene

Signed-off-by: Allen Jackson <23512001+jackalbe@users.noreply.github.com>
2022-02-15 15:01:43 -06:00
Nicholas Van Sickle 5543a0d32d Fix non-unity builds again
Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-15 12:52:24 -08:00
Mike Balfour 7fbcab9f13 gtest_repeat crashes (#7645)
* Moved allocation to avoid crash on gtest_repeat.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed GradientSignal tests to work with gtest_repeat.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2022-02-15 13:27:54 -06:00
Scott Romero aaa8b9df7c [development] automated tests for timing editor loading of the 10k levels (#7472)
It has been observed that when entering game mode in the editor with the 10k levels, the Vulkan backend performs significantly worse compared to DX12 on Windows. These tests are intended to detect if either backend gets worse with a currently generous timeout of 3 minutes to complete (10 for the Vulkan outlier) and should lowered over time as this metric stabilizes. Added a new periodic tests job to specifically run on a GPU instance.

Signed-off-by: AMZN-ScottR <24445312+AMZN-ScottR@users.noreply.github.com>
2022-02-15 11:17:15 -08:00
Nicholas Van Sickle f934984ffe Address review feedback:
- Use `unordred_map` (speed is about the same but providing a hash is slightly nicer than operator<)
- Do better arg forwarding where applicable
- Swap EXPECT_ test ordering

Signed-off-by: Nicholas Van Sickle <nvsickle@amazon.com>
2022-02-15 11:08:22 -08:00
moudgils 4bf6b6ba15 Add 3p vulkan validation layer support. (#7540)
* Add 3p vulkan validation layer support. Enabling device validation will automatically load the VkLayer_khronos_validation.dll ensuring that validation checks will work correctly

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Addressed feedback

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>

* Updating the hash to the new 3p package

Signed-off-by: moudgils <47460854+moudgils@users.noreply.github.com>
2022-02-15 10:22:32 -08:00
AMZN-koppersr 9bd487e3bd Minor fixes to the configurable stack based on provided feedback.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
2022-02-15 10:11:41 -08:00
Danilo Aimini 1c72d799f1 Prefabs UI | Refactor PrefabIntegrationManager into a separate class for save/load dialog management. (#7630)
* Split up the save/load handling functions from PrefabIntegrationManager to improve maintainability.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Turn WarnUserOfError into a widely available utility function.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Consolidate the definitions for AzToolsFramework Entity classes (List, IdList, IdSet) to avoid multiple redefinitions across the module.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix usage of EntityIdList I missed in the tests.

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>

* Fix EntityList def in SliceConverter

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-15 10:04:40 -08:00
Nicholas Van Sickle 0459aae295 Merge remote-tracking branch 'upstream/development' into nvsickle/DomPrefixTree 2022-02-15 09:49:00 -08:00
Chris Burel 28049f6321 Merge pull request #7633 from aws-lumberyard-dev/fixWindowsClangBuild
Fix windows clang build
2022-02-15 09:39:49 -08:00
Guthrie Adams b4f5b892cd Merge pull request #7629 from aws-lumberyard-dev/Atom/guthadam/atom_tools_restore_idle_input_behavior
Atom Tools: Restoring idle behavior for viewport input behavior contoller
2022-02-15 09:46:47 -06:00
Benjamin Jillich 9a19ffc5b4 EMotion FX: Added debug rendering for colliders and ragdoll joint limits to the Atom debug draw class
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
2022-02-15 16:36:04 +01:00
Benjamin Jillich 40c0edde85 EMotion FX: Automatically clear selection when closing skeleton outliner
Signed-off-by: Benjamin Jillich <jillich@amazon.com>
2022-02-15 14:48:15 +01:00
lumberyard-employee-dm cf9825d37e Mac Runtime Fix: Up the hard coded size for the HpAllocator buffer to 18KiB (#7634)
* Up the hard coded size for the HpAllocator buffer to 18KiB

Added a static assert in the HphaSchema.cpp file to validate that the
HpAllocator aligned storage buffer is at least the size of the
HpAllocator class.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Removed comment blocks with username from HphaSchema.h

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-02-14 23:50:53 -06:00
Olex Lozitskiy dff7d74e81 Adds support for additional VS debugger arguments 2022-02-14 19:05:53 -06:00
Chris Burel c89376e9c3 The flag is --no-undefined, not -Wl,-undefined,error
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-14 16:25:52 -08:00
Chris Burel 8acda7d04d Prefer CMake's built-in -fPIC and -fpie support
CMake has a built-in property, `POSITION_INDEPENDENT_CODE`, that determines
if code will be built with `-fPIC`. This property is `True` by default for
`SHARED` and `MODULE` library targets and `False` otherwise. Previously,
we were always passing the `-fPIC` flag manually. With this change, we set
the appropriate CMake variable that will enable the property for all
compile jobs.

Furthermore, with CMake policy CMP0083 set to "new" (which happens by
default when the `cmake_minimum_required` version is >=3.14), CMake has
built-in support for passing the `-fpie` flag when building executables. It
uses the same property, `POSITION_INDEPENDENT_CODE`, so setting this
property (and enabling it with the CMake `CheckPIESupported` module) allows
us to use CMake's built-in support for these flags.

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-14 16:25:50 -08:00
Chris Burel 377da0ed0c Ignore unused benchmark state variables
Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-14 16:25:46 -08:00
lumberyard-employee-dm 92cd457c25 MacOS build fix (#7627)
* MacOS build fix

Updated the HpAllocator::bucket to align upwards to the nearest power of
2.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>

* Adding static assets to validate teh AlignUpToPowerOfTwo function.

Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
2022-02-14 17:18:43 -06:00
Mike Balfour 8b82041361 Optimize SurfaceData bulk queries (#7593)
* Add comparison operators to SurfaceTagWeight.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed AddSurfaceTagWeight to always combine weights.
This simplifies the API a bit and defines the behavior if someone ever tries to add a duplicate tag.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added benchmarks for measuring the performance-critical APIs.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed SurfaceTagWeights to a fixed_vector.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add inPosition to AddSurfacePoint.
This will be used to detect which input the surface point is associated with.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add inPositionIndex to the appropriate APIs.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched Gradient Surface benchmarks to use actual surface components.
The gradient unit tests and benchmarks were previously using a mock surface data system, which led to misleading benchmark results. Now, the actual SurfaceData system gets constructed, and the tests use a mock provider, but the benchmarks use actual shape providers for more realistic benchmarking.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed unit tests to have better query ranges.
Half of each previous range was querying outside the surface provider's data.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* First attempt at removing SurfacePointLists.
This currently runs significantly slower than the previous code but passes the unit tests.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Another attempt at optimization.
This one runs faster than the previous, but still slow.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix the cmake dependency so that the gradient tests rebuild SurfaceData.dll when run.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switch SurfaceAltitudeGradient over to the new bulk API.
Also, optimized the non-bulk API by having it reuse the SurfacePointList to avoid the repeated allocation / deallocation cost.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched to using an indirect index so that all allocations are consecutive in our reserved buffer.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched back to SurfaceTagWeight again.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added runtime dependency to LmbrCentral for unit tests.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Switched code over to use the full EnumeratePoints in most cases.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added knowledge of max surface point creation into the system.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Add generic GetSurfacePointsFromList API implementation for surface providers.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed implementation to use the correct maximum number of input points based on the surface providers being queried.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix out-of-bounds references on empty lists.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fix memory allocation that caused benchmark runs to crash.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Starting to clean up the API.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Move SurfacePointList into separate files for easier maintainability.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed bug where too many points were filtered out due to using the position Z as a part of the AABB check.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Made FilterPoints an internal part of SurfacePointList so we can choose when and how to perform the filtering.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Final cleanup / comments.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Added includes for non-unity builds.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Changed how unit tests initialize the mock lists to try and fix the linux errors.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>

* Fixed compile error.

Signed-off-by: Mike Balfour <82224783+mbalfour-amzn@users.noreply.github.com>
2022-02-14 16:27:53 -06:00
Chris Burel d2cdb511d0 Improve the framerate of Editor widgets that update in the TickBus (#7408)
Previously, with no level loaded in the main editor, and no assets loaded
in the EMotionFX editor, the AnimGraph viewport would only update at 15fps,
even on a 64 core machine.

Digging into this with Pix, I found that EMotionFX's UI would only get
updated for every other call to the ComponentApplication tick.

The Editor's QApplication instance controls how the
`ComponentApplication::OnTick` method is called. This is done in the
`maybeProcessIdle()` method. Generally, I found callstacks like this:

```
EditorQtApplication::maybeProcessIdle()
  CCryEditApp::OnIdle()
    CCryEditApp::IdleProcessing()
      CGameEngine::Update()                  # ~2.2ms
        PhysX::Update()                      # ~1.8ms
        EMotionFX::Update()                  # ~0.2ms
          calls QWidget::update() on all the widgets that change per
          frame, only puts update events on the event queue, doesn't
          paint anything
      AZ::ComponentApplication::TickSystem() # ~25ms
        renders the frame with Atom          # ~24ms
```

The `maybeProcessIdle()` method is invoked by a QTimer, with a timeout
that changes depending on the application state. If the Editor is in
game mode, it used a timeout of 0, which essentially forced the game to
run at as high an fps as possible. If the Editor application has focus,
it used a timeout of 1ms, asking for the idle processing to happen at
1000 fps.  Otherwise, it used a timeout of 10ms, asking for idle
processing at 100 fps.

Those fps targets are not realistic. What happened in this case is that
while the PhysX system was being updated, while the previous
`maybeProcessIdle()` call was still processing, the idle processing
timer would timeout again, and place a timer event on Qt's event queue,
before anything else had a chance to do anything. Only afterward would
EMotionFX's MainWindow::OnTick would be invoked, placing paint events on
Qt's event queue.

The fix for this is to use a single shot timer at the end of each
`maybeProcessIdle()` call. This ensures that any events that are
enqueued during the `maybeProcessIdle()` call are processed prior to the
next call to `maybeProcessIdle()`.

Signed-off-by: Chris Burel <burelc@amazon.com>
2022-02-14 14:22:07 -08:00
Chris Burel 0b317ee0f5 Merge pull request #7566 from aws-lumberyard-dev/fixClangWindowsBuild
Fix clang windows build
2022-02-14 14:20:39 -08:00
AMZN-Olex f5dff748d9 Cleanup
Signed-off-by: AMZN-Olex <5432499+AMZN-Olex@users.noreply.github.com>
2022-02-14 15:47:56 -06:00