Commit Graph

12043 Commits

Author SHA1 Message Date
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
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 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
Guthrie Adams 3bdb0f5d9b Atom Tools: Restoring idle behavior for viewport input behavior controller
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
2022-02-14 15:37:39 -06:00
Roman da421b7056 Change actorRenderFlag to use AZ ENUM CLASS instead of azstd::bitset (#7542)
* Fixes the problem with using actor render flags in actor component

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

* In progress work for actor render flag rework

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

* add an utlity function to check bit

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

* code cleanup

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

* More CR cleanup

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

* build fix

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

* CR feedback

Signed-off-by: rhhong <rhhong@amazon.com>
2022-02-14 13:27:37 -08:00
Scott Murray 9335ce7ba9 removing pytest marks and debugging prints
Signed-off-by: Scott Murray <scottmur@amazon.com>
2022-02-14 12:21:51 -08:00
dmcdiarmid-ly 60d7533301 Merge pull request #7607 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-17302
Added the DiffuseProbeGridVisualizationCompositePass
2022-02-14 12:46:45 -07:00
Danilo Aimini 31fb5322ed Refactor the Outliner drag&drop and selection to fix UX and technical issues. (#7559)
* Prototype - refactor the selection system for the Outliner (WIP)

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

* WIP - unify custom drag, still trying to find a way to make it so that the selection isn't affected by drag/drop of unselected entity

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

* Wrap up changes

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

* Minor refactor - move from enum to bool

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

* Prevent clicks on the spacing column from selecting the entity; better refresh the hover state.

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

* Fix weird flicker introduced by latest commit

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

* Change color for the drag select rectangle.

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

* Add more thorough comments, and also make some helper variables const.

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

* Fixed incorrect variable types (Qt uses ints for on-screen dimensions)

Signed-off-by: Danilo Aimini <82231674+AMZN-daimini@users.noreply.github.com>
2022-02-14 10:32:22 -08:00
Steve Pham 0f9c369d7c Fix Clang built executables so they can be launched from the file explorer (#7562)
* Remove Position Independent Executable link flags from EXEs

Signed-off-by: Steve Pham <82231385+spham-amzn@users.noreply.github.com>
2022-02-14 10:30:00 -08:00
Guthrie Adams ba43efd3d2 Merge pull request #7613 from aws-lumberyard-dev/Atom/guthadam/centralize_shader_management_console_operations_in_document_class
Atom Tools: Moving shader management console file operations into document class
2022-02-14 12:17:35 -06:00