Commit Graph

272 Commits (7c5120b72fadb51ebee07a408e3f62e6b7a63679)

Author SHA1 Message Date
Jacob Hilliard 7c5120b72f
[ATOM-16021] Initial continuous capture support (#2624)
* Profiler: Implement continuous capture internals

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: extend ProfileCaptureSystemComponent

Implements dumping of saved CPU profiling data to a local file, blocking
call.

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: Working IO thread for serialization

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: switch to AZ::JobFunction for IO

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: move to a ring buffer for storage

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: switch back to IO thread

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: add TODO

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>

* Profiler: correct thread safety issues

Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>
4 years ago
Cynthia Lin c1a0b5c686
performance benchmarks: Aggregate and report CPU frame times. (#2939)
* Add CaptureCpuFrameTime method to ProfilingCaptureSystemComponent for monitoring CPU performance.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>

* ly_test_tools: Refactor benchmark data aggregator in preparation for CPU frame times.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>

* performance benchmarks: Aggregate and report CPU frame times based on JSON data.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>

* AutomatedTesting: Capture CPU frame time in AtomFeatureIntegrationBenchmark.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>
4 years ago
Esteban Papp b33a4db332 Merge branch 'development' into cmake/SPEC-2513_w4267 4 years ago
santorac 9e6eadd9a9 Merge branch 'development' into Atom/santorac/OptionalSceneApiMaterialConversion 4 years ago
Jeremy Ong bb782e83b4 Promote IndexedDataVector to public Feature/Utils header
Signed-off-by: Jeremy Ong <jcong@amazon.com>
4 years ago
santorac 5d3d3b907e Changed a couple function parameters to const&
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Guthrie Adams e2eba69d33 updating FindMaterialAssignmentIdInLod to use ModelMaterialSlot
}

Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
santorac b407e501e3 Merge branch 'development' into Atom/santorac/OptionalSceneApiMaterialConversion 4 years ago
Chris Santora 66f7fa2f42 Fixed a bug where a new entity using a mesh that was already loaded would not be able to correctly initialize a material component.
Repro steps:
- Create two entities.
- Entity 1
  - Add a mesh component and assign a model with multiple sub-meshes
  - Add a material component. The material component looks correct.
- Entity 2
  - Add a mesh component and assign the same model as the other entity
  - Add a material component. The material component shows "<unknown>" for all material slot names

The problem was that ReflectedPropertyEditor creates a new Asset<> reference with the correct ID but does not load it. This asset is passed to EditorMaterialComponent, MaterialComponentController, and MeshFeatureProcessor and none of these tell the Asset to load. The MeshFeatureProcessor was not loading the Asset or connecting to the AssetBus because the instance already existed in the InstanceDatabse so from the FP's perspecive there was no need. But for the FP's GetModelAsset() API to function correctly it needs to have the asset initialized to the available AssetData pointer. So we updated the MeshFeatureProcessor to always connect to the AssetBus so it will find the available AssetData via the OnAssetReady callback.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora fec79a7d53 Moved the material slot list from ModelLodAsset to ModelAsset, so all the slots live in one main list. This removes data duplication between LODs and cleans up the code a bit.
I had to update the ModelLod class to take in both the ModelLodAsset and ModelAsset for initialization so it can fetch the slots for each mesh.

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora a71ee7eb3a Fixed the MaterialAssignmentId version converter to properly handle the default material assignment slot.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora 3daf3f7d7a Fixed an issue with Actors where the material slot IDs were incorrect, and caused the displayed slot labels to be all "<unknown>" (and likely other issues).
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora e3ceaa477e Added a version converter for MaterialAssignmentId. This allowed me to successfully load the Sponza level in AtomTest.
Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Chris Santora 14d2e38b90 Refactored how model material slots work in preparation to support more flexible material conversion options for the scene asset pipeline. The material slot IDs are based on the MaterialUid that come from SceneAPI. Since these IDs are also used as the AssetId sub-ID for the converted material assets, the system was just checking the material asset sub-ID to determine the material slot ID. But in order to support certain FBX material conversion options, we needed to break this tie, so the slot ID is separate from the AssetId of the material in that slot. This will allow some other material to be used in the slot, instead of being forced to use one that was generated from the FBX.
Here we inttroduce a new struct ModelMaterialSlot which formalizes the concept of material slot, with an ID, display name, and default material assignment. The ID still comes from the MaterialUid like before. The display name is built-in, rather than being parsed out from the asset file name. And the default material assignment can be any material asset, it doesn't have to come from the FBX (or other scene file).

This commit is just the preliminary set of changes. Cursory testing shows that it works pretty well but more testing is needed (and likely some fixes) before merging.

Here is what's left to do...
Add serialization version converters to preserve prior prefab data.
See if we can get rid of GetLabelByAssetId function only rely on the display name inside ModelMaterialSlot.
I'm not sure if the condition for enabling the "Edit Material Instance..." context menu item is correct.
Test actors
Lots more testing in general

Signed-off-by: santorac <55155825+santorac@users.noreply.github.com>
4 years ago
Guthrie Adams ffbeb903c1 Material Component: Add functions to lookup material ids by name
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
Guthrie Adams d12d7de139 Add missing display mapper operation type bindings
Signed-off-by: Guthrie Adams <guthadam@amazon.com>
4 years ago
Esteban Papp 074e33081f more fixes for w4267
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
pappeste 97f9ac870d Atom
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
Ken Pruiksma 33c408f654
Expose shadow bias to component & feature processors. (#2406)
* Expose shadow bias to component & feature processors. Shadow bias now works more consistently with various near / far shadow planes and caster positions. Bias now also affects esm shadows which helps eliminate acne in certain situations.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Adding jira comment to light configuration serialization version. Improved comment on final adjustment to bias before its sent to the shader.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>

* Hooking up bias to behavior context.

Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
4 years ago
Cynthia Lin 61f91d4a9a
Move benchmark data aggregation from ASV into ly_test_tools module. (#2335)
* fix: Correct typo in profiling capture system.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>

* Move benchmark data aggregation from ASV into ly_test_tools module.

Signed-off-by: Cynthia Lin <cyntlin@amazon.com>
4 years ago
moudgils 1c2f5ab6d5
Add support for LowEndRenderPipeline for mobile and the cleanup associated with it (#2292)
Signed-off-by: moudgils <moudgils@amazon.com>
4 years ago
Esteban Papp 706233f72c Merge branch 'development' into cmake/SPEC-7179 4 years ago
dmcdiar 918224e2d5 Moved render checks to a ShouldRender() helper function.
Skipped attachment readback on RealTime DiffuseProbeGrids if raytracing is not supported by the hardware.

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
Esteban Papp 1f9b284de2 Merge branch 'development' into cmake/SPEC-7179
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>

# Conflicts:
#	Code/Editor/Plugins/ComponentEntityEditorPlugin/ComponentEntityEditorPlugin_precompiled.h
#	Code/Editor/Plugins/EditorCommon/EditorCommon_precompiled.h
#	Code/Editor/Plugins/EditorCommon/stdafx.cpp
#	Code/Editor/Plugins/FFMPEGPlugin/FFMPEGPlugin_precompiled.h
#	Code/Editor/Plugins/PerforcePlugin/PerforcePlugin_precompiled.h
#	Code/Editor/Plugins/ProjectSettingsTool/ProjectSettingsTool_precompiled.h
#	Code/Framework/AzToolsFramework/AzToolsFramework/AzToolsFramework_precompiled.h
#	Code/Tools/AssetProcessor/native/precompiled.h
#	Code/Tools/Standalone/StandaloneTools_precompiled.h
#	Gems/AssetMemoryAnalyzer/Code/Source/AssetMemoryAnalyzer_precompiled.h
#	Gems/Atom/Asset/ImageProcessingAtom/Code/Source/ImageProcessing_precompiled.h
#	Gems/Atom/RHI/DX12/Code/Source/RHI/Atom_RHI_DX12_precompiled.h
#	Gems/Atom/RHI/Metal/Code/Include/Platform/Mac/Atom_RHI_Metal_precompiled_Platform.h
#	Gems/Atom/RHI/Metal/Code/Include/Platform/iOS/Atom_RHI_Metal_precompiled_Platform.h
#	Gems/Atom/RHI/Metal/Code/Source/Atom_RHI_Metal_precompiled.h
#	Gems/Atom/RHI/Metal/Code/atom_rhi_metal_common_files.cmake
#	Gems/Atom/RHI/Null/Code/Source/Atom_RHI_Null_precompiled.h
#	Gems/Atom/RHI/Null/Code/atom_rhi_null_common_files.cmake
#	Gems/Atom/RHI/Vulkan/Code/Include/Platform/Android/Atom_RHI_Vulkan_precompiled_Platform.h
#	Gems/Atom/RHI/Vulkan/Code/Include/Platform/Linux/Atom_RHI_Vulkan_precompiled_Platform.h
#	Gems/Atom/RHI/Vulkan/Code/Include/Platform/Mac/Atom_RHI_Vulkan_precompiled_Platform.h
#	Gems/Atom/RHI/Vulkan/Code/Include/Platform/Windows/Atom_RHI_Vulkan_precompiled_Platform.h
#	Gems/Atom/RHI/Vulkan/Code/Source/Atom_RHI_Vulkan_precompiled.h
#	Gems/Atom/RHI/Vulkan/Code/Source/RHI/SwapChain.cpp
#	Gems/Atom/RHI/Vulkan/Code/atom_rhi_vulkan_common_files.cmake
#	Gems/AtomLyIntegration/AtomFont/Code/Include/AtomLyIntegration/AtomFont/AtomFont_precompiled.h
#	Gems/Blast/Code/Source/StdAfx.cpp
#	Gems/Camera/Code/Source/Camera_precompiled.h
#	Gems/EMotionFX/Code/Source/EMotionFX_precompiled.h
#	Gems/FastNoise/Code/Source/FastNoise_precompiled.h
#	Gems/Gestures/Code/Source/Gestures_precompiled.h
#	Gems/GradientSignal/Code/Source/GradientSignal_precompiled.h
#	Gems/GraphCanvas/Code/precompiled.h
#	Gems/ImGui/Code/Source/ImGui_precompiled.h
#	Gems/InAppPurchases/Code/Source/InAppPurchases_precompiled.h
#	Gems/LmbrCentral/Code/Source/LmbrCentral_precompiled.h
#	Gems/LmbrCentral/Code/Tests/ShapeGeometryUtilTest.cpp
#	Gems/LyShine/Code/Editor/UiCanvasEditor_precompiled.h
#	Gems/LyShine/Code/Source/Animation/LyShine_precompiled.h
#	Gems/LyShine/Code/Source/LyShine_precompiled.h
#	Gems/LyShineExamples/Code/Source/LyShineExamples_precompiled.h
#	Gems/Maestro/Code/Source/Cinematics/Maestro_precompiled.h
#	Gems/Maestro/Code/Source/Maestro_precompiled.h
#	Gems/MessagePopup/Code/Source/MessagePopup_precompiled.h
#	Gems/Metastream/Code/Source/Metastream_precompiled.h
#	Gems/Microphone/Code/Source/Microphone_precompiled.h
#	Gems/Multiplayer/Code/Source/Multiplayer_precompiled.h
#	Gems/PhysX/Code/NumericalMethods/Source/NumericalMethods_precompiled.h
#	Gems/PhysX/Code/Source/PhysXUnsupported_precompiled.h
#	Gems/PhysX/Code/Source/PhysX_precompiled.h
#	Gems/PhysX/Code/physx_unsupported_files.cmake
#	Gems/PhysXDebug/Code/Source/PhysXDebugUnsupported_precompiled.h
#	Gems/PhysXDebug/Code/Source/PhysXDebug_precompiled.h
#	Gems/ScriptCanvas/Code/Editor/precompiled.h
#	Gems/ScriptCanvas/Code/Source/precompiled.h
#	Gems/ScriptCanvasDeveloper/Code/Source/precompiled.h
#	Gems/ScriptCanvasPhysics/Code/Source/ScriptCanvasPhysics_precompiled.h
#	Gems/ScriptEvents/Code/Source/precompiled.h
#	Gems/ScriptEvents/Code/Tests/Editor/EditorTests.cpp
#	Gems/ScriptedEntityTweener/Code/Source/ScriptedEntityTweener_precompiled.h
#	Gems/SliceFavorites/Code/Source/SliceFavorites_precompiled.h
#	Gems/StartingPointCamera/Code/Source/StartingPointCamera_precompiled.h
#	Gems/StartingPointInput/Code/Source/StartingPointInput_precompiled.h
#	Gems/StartingPointMovement/Code/Source/StartingPointMovement_precompiled.h
#	Gems/SurfaceData/Code/Source/SurfaceData_precompiled.h
#	Gems/TextureAtlas/Code/Source/TextureAtlas_precompiled.h
#	Gems/TickBusOrderViewer/Code/Source/TickBusOrderViewer_precompiled.h
#	Gems/Twitch/Code/Source/Twitch_precompiled.h
#	Gems/VirtualGamepad/Code/Source/VirtualGamepad_precompiled.h
#	Gems/WhiteBox/Code/Source/WhiteBoxUnsupported_precompiled.h
#	Gems/WhiteBox/Code/Source/WhiteBox_precompiled.h
4 years ago
Steve Pham 38261d0800
Shorten copyright headers by splitting into 2 lines (#2213)
* Updated all copyright headers to split the longer original copyright line into 2 shorter lines

Signed-off-by: Steve Pham <spham@amazon.com>
4 years ago
Esteban Papp 7c9653087d Builds Windows nounity and unity
Builds Linux nounity and unity

Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
4 years ago
dmcdiar e2e6637f33 The DiffuseProbeGridRenderPass is now always enabled to allow Baked GI to render on non-raytracing hardware.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
4 years ago
Chris Galvan e924ed0b86 Merged stabilization/2106 to development; Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
dmcdiar 2727f36621 Set DiffuseProbeGrids to visible when baking textures.
Added an initialization delay before starting the DiffuseProbeGrid texture readbacks, to allow the textures to settle.

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
5 years ago
dmcdiar 4efecb88a5 Merge branch 'stabilization/2106' into Atom/dmcdiar/ATOM-15951 5 years ago
dmcdiarmid-ly 6d0e1c121d
Merge pull request #2023 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15971
Meshes using forward-pass IBL do not update when a ReflectionProbe is baked
5 years ago
Tommy Walton 0d82c1e670
Use float buffer for skinning (#2009)
* Switching to Buffer<float> instead of Buffer<float3> in the skinning shader because metal doesn't support float3 buffers

Signed-off-by: amzn-tommy <waltont@amazon.com>

* Adding a comment to LinearSkinningPassSRG pointing out that positions, normals, and bitangents are using float buffers to work on Metal

Signed-off-by: amzn-tommy <waltont@amazon.com>
5 years ago
dmcdiar 9794182842 Notified the MeshFeatureProcessor when a ReflectionProbe is baked.
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
5 years ago
Chris Galvan 3b1873b045 Merged stabilization/2106 -> development (resolved merge conflicts).
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
Qing Tao 6d9230e292
ATOM-15939 Add support to capture attachment for ParentPass (#1887)
* ATOM-15939 Add support to capture attachment for ParentPass
- Moved the attachment read back support to Pass class so it supports both ParentPass and RenderPass.
- Added support to output input or output state of an InputOutput attachment.
- Enabled showing ParentPass attachments in PassTree tool.

Signed-off-by: Tao <qingtao@amazon.com>
5 years ago
dmcdiar 762b3ee582 Suspended ray tracing for DiffuseProbeGrids that are not visible, either off-screen or behind an occlusion culling plane
Added a culling flag that indicates if the cullable object is currently visible in any view

Signed-off-by: dmcdiar <dmcdiar@amazon.com>
5 years ago
Chris Galvan d7574777a8 Resolved merge conflicts
Signed-off-by: Chris Galvan <chgalvan@amazon.com>
5 years ago
dmcdiarmid-ly 328a0f09a5
Merge pull request #1711 from aws-lumberyard-dev/Atom/dmcdiar/ATOM-15921
[ATOM-15921] ReflectionProbe cubemaps bake with incorrect exposure value
5 years ago
amzn-sean aff4859251 short term fix for editor/game mode/launcher tick times consistency (#1720)
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
5 years ago
amzn-sean a02ecefab9
short term fix for editor/game mode/launcher tick times consistency (#1720)
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
5 years ago
Steve Pham b4a2edec6a
Final update copyright headers to reference license files at the repo root (#1693)
* Final update copyright headers to reference license files at the repo root

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

* Fix copyright validator unit tests to support the stale O3DE header scenario

Signed-off-by: spham <spham@amazon.com>
5 years ago
Cynthia Lin 82bd18ef5a [ATOM-15868] Collect and serialize initial benchmark metadata.
Signed-off-by: Cynthia Lin <cyntlin@amazon.com>
5 years ago
dmcdiar ca606a5e08 Set IBL exposure value to 0.0 while baking ReflectionProbe cubemaps
Signed-off-by: dmcdiar <dmcdiar@amazon.com>
5 years ago
Ken Pruiksma 7b1c37f296
[ATOM-15917] Taa pass will no longer crash if an input attachment is invalid. (#1702)
Signed-off-by: Ken Pruiksma <pruiksma@amazon.com>
5 years ago
mrieggeramzn 345be58ca8
Merge pull request #1668 from aws-lumberyard-dev/Atom/mriegger/shadowonoffbug
Fix for shadow aliasing appearing when enabling/disabling lights
5 years ago
Jacob Hilliard ed9232563d
[ATOM-15862] Fixing CPU profiler to save multiple regions within the same thread (#1636)
Signed-off-by: Jacob Hilliard <jhlliar@amazon.com>
5 years ago
Riegger 30834a33a4 Fix for shadow aliasing appearing when enabling/disabling lights
Signed-off-by: Riegger <mriegger@amazon.com>
5 years ago
hershey5045 ccb784d7d5
Fix weight blending in look modification postfx. (#1627)
Signed-off-by: Robin <rbarrand@amazon.com>
5 years ago
Gene Walters 4e14c0069b Merge branch 'upstream/stabilization/2106' into genewalt/gitflow_210628 5 years ago
moudgils 7780b83fdc
Fix SSR Reflections on Mac amongst other things (#1618)
Fix writing to the correct mip in Metal
Set default m_outputScale to 1 in order to fix a 1/0 error
Add support for logging/printing errors pertaining to GPU crashes.
Setting Release queue's collection latency to MaxFrames.
Fix managed mem synchronization related offset bug
5 years ago