Commit Graph

1668 Commits (7dabe8b6e966273940e7d98284966104064b783e)

Author SHA1 Message Date
lumberyard-employee-dm 7dabe8b6e9
Updated Several Engine Gem's CMakeLists.txt to add themselves as required Gems (#1262)
* Fixed organization of the AssetProcessor SourceAssetBrowser

Assets within the Engine Root were grouped under a '/' entry.
That has been fixed to use the relative path within the engine root for
those assets
Assets outside of the Engine Root, but on the same drive were using
absolute paths before. Now there are child entries that navigate up the
directory hierarchy to those asset locations

* Added ly_enable_gems call to Atom gems targets that are required

The DefaultLevel.prefab contains several Atom components, that require
the Atom RHI, RPI, Common_Feature, ShaderBuilder and AtomLyIntegration CommonFeatures
gems to be enabled in order to successfully process in the
AssetProcessor.

* Added ly_enable_gems call to make the Camera gem required in Tools,
Builders and Clients.

This is needed as the DefaultLevel.prefab contains an Editor Camera
Component

* Adding the ly_enable_gem call to make the Maestro gem required

CrySystem currently requires Maestro to be enabled in order to
initialize

* Added ly_enable_gems call to the SceneProcessing gem to make it required

The SceneCore and SceneData libraries that are part of the core engine
Code folder requires the SceneProcessing gem to be enabled in order to
invoke the InitializeDynamicModule hooks in DllMain.cpp in order to
initialize those libraries.

* Fixed bad argument in comment for Prefab CMakeLists.txt

* Fixed Assert in Asset Builders due to the Atom RPI Builder

The Atom RPI Builder was enabling the Asset Catalog for the ScriptAsset a second time

The Atom Feature Common EditorSystemCommonComponent.cpp which also loads
in the AssetBuilder is enabling the Asset Catalog for the ScriptAsset

Added BehaviorContext reflection to the OutputDeviceTransformType enum
to fix the BehaviorContext errors about reflecting a method that returns
such an enum

* Added TypeId output to the JsonDeserializer report message about missing
ClassData

Previously the report callback would indicate that the target type was
missing Serialization class data, but didn't indicate the TypeId of the
target type

* Added support to the ly_enable_gems function to be able to support
0 gems being enabled.

Updated the Install step for CMake to propagate any ly_enable_gems
within a CMakeLists.txt for a target into the generated CMakeLists.txt
that is made for each installed IMPORTED target

* Adding newline to the end of the Camera Gem CMakeLists.txt

* Fixing target TYPE parameter for actual Gem Modules to use the GEM_MODULE tag instead of MODULE

* Reverting change to the DESTINATION directory for the installed CMakeLists.txt to use the relative path to the installed directory

* Adding the Atom_Bootstrap gem as a required gem

The Client and GameLaunchers required the Atom_Bootstrap gem in order to create the NativeWindow
Added Atom_Feature_Common client module as a runtime dependency of the AtomLyIntegration CommonsFeature client module

* Fixed register.py --all-projects-path and --all-gems-path arguments to
NOT register projects or gems that are within a template folder
Fixed reading of old pre-1.0 o3de_manifest.json files where the
"engines" key was a json array

* Changed how the relative target source directory is calculated when that source directroy resides outside of the engine root.
The final dirname component is used with a unique SHA256 has to form a <dirname>-<8 char SHA256> folder for installing files into

* Adding newline to the end of Atom_Bootstrap CMakeLists.txt

* Moving ly_enable_gems variants for Tools and Builders inside of PAL_TRAIT_BUILD_HOST_TOOLS block

* Adding a comment to AWSCore.ResourceMappingTool target to indicate that it is not a GEM_MODULE.
Furthermore it cannot be loaded with the Gem system because the library is in a different directory the executable
5 years ago
Gene Walters 4be9ce56c4
Merge pull request #1399 from aws-lumberyard-dev/CherryPickNetworkingFixes
Cherry pick networking fixes
5 years ago
Aaron Ruiz Mora 7781307afe
Fixed cloth automated tests. (#1400)
Bone transforms buffer is not valid when using Null renderer, which caused the test to fail since it reported an error and ultimately crashing as well. For now it's been worked around by checking the pointer is valid and not printing the error when null renderer is used, a task for the Atom team has been created to fix this properly in the future (ATOM-15807).
5 years ago
Guthrie Adams 593e8e6ca1
Merge pull request #1390 from aws-lumberyard-dev/Atom/guthadam/LYN-4251_material_component_menu_fixes
LYN-4251 fix confusing material component menu options
5 years ago
Guthrie Adams d7b5c1126d
Merge pull request #1391 from aws-lumberyard-dev/Atom/guthadam/LYN-4547_material_editor_display_name
LYN-4547 prepending O3DE to the material editor application name
5 years ago
mrieggeramzn 4746afa332
Merge pull request #1388 from aws-lumberyard-dev/Atom/mriegger/ATOM-15406
Fix for PCF shadow flickering
5 years ago
Gene Walters 0810f353c6 Cherrypick 7adf5ca5a5911997102017e2db7981e7b2926100. Fixed assert for network prefabs when asset path was empty 5 years ago
Gene Walters f2b6ea7d8d Cherry picking a47b30c708. Correcting the issue with processing of prefabs in Multiplayer projects 5 years ago
SergeyAMZN 39c396c4cd
Merge pull request #1379 from aws-lumberyard/LYN-3779_Blast_fix
Fixed crash when BlastFamilyComponent is used on an entity with no render mesh
5 years ago
guthadam 7e231c8e36 LYN-4547 prepending O3DE to the material editor application name 5 years ago
guthadam 58d516688f LYN-4251 fix confusing material component menu options 5 years ago
mriegger 709bca5849 Adding code that prevents nans occuring due to precision issues 5 years ago
galibzon 1097cb7ce3
[ATOM-14935] MaterialHotReloadTest Fails On Second Try (#1384)
[ATOM-14544] Add Reset() function to IShaderVariantFinder

ShaderVariantAsyncLoader::Reset() now Shutdown and Init(). It clears
the cache of ShaderVariantAssets it keeps in memory.

Signed-off-by: garrieta <garrieta@amazon.com>
5 years ago
Chris Santora 688c5d1052 Merge remote-tracking branch 'upstream/stabilization/2106' into santorac/stabilization/2106/HotReloadFixes 5 years ago
Chris Santora b176697ce9 Fixed ATOM-14613 Baseviewer MatertialHotReloadTest fails to change the color after turning blending on and off
The problem was...
After a MaterialAsset reload, there could be two different versions of the MaterialAsset in memory: the old one and the reloaded one. The old one is still connected to buses and can send reinitialization messages when other things reload or reinitialize. So when the shader asset reloaded, both the old and new MaterialAsset were sending reinitialization messages. Material::OnMaterialAssetReinitialized was using the materialAsset parameter to initialize the Material, and the latest call to OnMaterialAssetReinitialized was for the *old* MaterialAsset.

The solution is to use the m_materialAsset member when reinitializing the Material. I also added checks in a couple places to skip unnecessary reinitialization, and added comments in the bus headers to warn developers about this issue.

Testing: Added a new step to ASV's MaterialHotReloadTest.bv.lua script for the error scenario, and this now passes. Ran ASV full test suite, both dx12 and vulkan, only known issues occurred.
5 years ago
Qing Tao 7b0d2aac03
Fixed potential crash if an attachment binding doesn't connect to an attachment. (#1373) 5 years ago
pereslav 8921edb954 Fixed crash when BlastFamilyComponent is used on an entity with no render mesh data 5 years ago
Gene Walters 17d1f3ce18
Merge pull request #1357 from aws-lumberyard-dev/SPEC7214_SeparateNetworkPropertiesEventBindingsAndScriptBindings
SPEC-7214 New Network Property Attribute: "ExposeToScript"
5 years ago
amzn-hdoke b74a153f75
Update AWSAttribution endpoint to prod endpoint (#1335) 5 years ago
Qing Tao aa2c27b22d
ATOM-15780 Improve cpu profiler allows pause and output profiling data to a file for reference (#1358)
- Added a pause button in imgui cpu profiler.
- Added a capture button to save cpu profiling data to a data file.
- Added some profile marks in both RPI and RHI.
5 years ago
Chris Santora 15db879e43
Merge pull request #1356 from aws-lumberyard-dev/santorac/stabilization/2106/HotReloadFixes
Added new shader reinitialization signaling

This was done while working on "ATOM-15728 Shader Hot Reload Fails in Debug Build", but it turned out these changes did not actually fix the issue (or any other known hot-reload issue). Still, these improvements are appropriate as they correct logical oversights.

ShaderVariant was not listening to asset reloads. It needs to know when the ShaderVariantAsset reload happens so it can reinitialize it's members as well as propagate reinitialization messages. I added a member for the ShaderAsset as the class needs this to reinitialize itself. So now the class listens for reloads of both the ShaderVariantAsset and the ShaderAsset.

Shader was not listening for ShaderAsset reinitialization events.

Updated the API for ShaderReloadNotificationBus's OnShaderVariantReinitialized to include the ShaderVariant which is the most relevant information (the other information wasn't really being used anyway).

Testing: Ran ASV full test suite in dx12 and vulkan, saw only known issues. Tested hot reload in Material Editor and main Editor.

See also aws-lumberyard/o3de-atom-sampleviewer#118
5 years ago
Ken Pruiksma cf9e088133
ATOM-15708 ATOM-15709. Disabling the low end shader for blended and tinted transparencies. The standard shader is already drawing in the transparent pass for those blend modes. Also improving the way StandardPBR_HandleOpacityMode is getting the correct shader by using a tag instead of index. (#1355) 5 years ago
Alex Peterson b0bb29373b
Removed legacy PhysicsEntities gem 5 years ago
mrieggeramzn a505ed8a51
Merge pull request #1302 from aws-lumberyard-dev/Atom/mriegger/esmexponent2106
Atom/mriegger/esmexponent2106
5 years ago
Chris Santora ddfd0dd046 Merge remote-tracking branch 'upstream/stabilization/2106' into santorac/stabilization/2106/HotReloadFixes 5 years ago
Benjamin Jillich 2cfa1de148
[LYN-3117] Adding a skeletal mesh to a project doesn't include an Actor by default (#1303)
* Before we were skipping actors in case there was animation data present in the source asset to avoid having many duplicated actors.
* There was an issue though for simple test fbx files containing a full character with a test motion.
* The new rule is that we will be exporting actors on default whenever there is a skeleton including either skinning data or morph targets, as these usually are not included for animation assets to not increase disk space heavily.
* Tested with several of our assets and always showed the expected behavior with the new way.
5 years ago
Chris Burel 5946a5981e
Fix code that triggers `-Wnon-pod-varargs` (#1354)
This fixes mac-specific instances of the `-Wnon-pod-varargs` warning.
5 years ago
Gene Walters bcd008df20 Allowing network properties to generate event bindings while staying hidden from script by using a new ExposeToScript attribute. This was useful in hiding NetworkTransformComponent properties which needed event binding in order to update the normal transform, but remain hidden from scripters who should still be using the normal transform component 5 years ago
Chris Santora c158ca178f Added new shader reinitialization signaling.
This was done while working on "ATOM-15728 Shader Hot Reload Fails in Debug Build", but it turned out these changes did not actually fix the issue (or any other known hot-reload issue). Still, these improvements are appropriate as they correct logical oversights.

ShaderVariant was not listening to asset reloads. It needs to know when the ShaderVariantAsset reload happens so it can reinitialize it's members as well as propagate reinitialization messages. I added a member for the ShaderAsset as the class needs this to reinitialize itself. So now the class listens for reloads of both the ShaderVariantAsset and the ShaderAsset.

Shader was not listening for ShaderAsset reinitialization events.

Updated the API for ShaderReloadNotificationBus's OnShaderVariantReinitialized to include the ShaderVariant which is the most relevant information (the other information wasn't really being used anyway).
5 years ago
Chris Santora 634b755338
Merge pull request #1323 from aws-lumberyard-dev/santorac/stabilization/2106/HotReloadFixes
Fixed Shader Hot-Reload Race Condition

ATOM-15728 Shader Hot Reload Fails in Debug Build

The main change was to add OnAssetReady handlers to each of the asset classes. See comments in ShaderAsset::OnAssetReady for a detailed explanation. In short, OnAssetReloaded gets missed while assets are being reloaded at the same time on multiple threads, but OnAssetReady is always called whenever connecting to the AssetBus because of its AssetConnectionPolicy.

The above change required the addition of a new AssetInitBus to call the PostLoadInit() functions. Because OnAssetReady connects to buses that are not mutex-protected, they have to be connected on the main thread. AssetInitBus::PostLoadInit is called every frame in RPISystem::SimulationTick. All Atom's asset handlers that need to do post-load initialization must connect to the AssetInitBus, and the asset will disconnect itself after initialization is complete.

We also need the Shader class to handle OnShaderAssetReinitialized to properly handle the shader reload.

With these changes I can click back and forth between "Blending On" and "Blending Off" many times (like 20 times) without issue.

Testing: AtomSampleViewer passes in dx12 and vulkan (except for known issues). Opened several AtomTest levels. Opened a multilayer material in material editor and made changes to the multilayer forward pass .shader file and saw proper reload.
5 years ago
lumberyard-employee-dm 4014cacff8
Added a ${GemName}.Builders variant to Asset-Only Gems (#1324)
* Creating Builder variant aliases for all Asset Gems

* Added an AssetGem template for creating an Asset Gem

The AssetGem template is meant for non-code Gems

* Updated the engine_template.py commands to use pathlib

Each of the four commands: create-template, create-from-template,
create-project and create-gem have been updated to use pathlib.Path or
any path manipulation

Fix several python errors when instantiating a template with missing
o3de objects.
For example attempting to use the create-project command with the
"DefaultGem" template would result in a python exception instaed of a
error log and a return value 0..

Added a **force** option to the engine_template commands
to force overriding of existing files

* Optimized search through text files when the create-template command is
run when attempting to replace the license text section

* Adding a Minimal Project Template that contains the minimal set of gems
as stated by UX

* Minor changes to the DefaultProject template. Added a license section to the EngineFinder.cmake

* Adding the MinimalProject to the engine.json file
5 years ago
Chris Santora 7bfc6dd7cb Merge remote-tracking branch 'upstream/stabilization/2106' into santorac/stabilization/2106/HotReloadFixes 5 years ago
Chris Santora 570f4f5f36 Fixed unit test compile issue 5 years ago
Jonny Galloway 7c28b1ff86
Merge pull request #1346 from aws-lumberyard-dev/Atom/gallowj/stabilization/2106
Removing this superfluous data not used by engine
5 years ago
carlitosan 889e6e2b14
Merge pull request #1287 from aws-lumberyard-dev/carlito/stabilization/2106
Remove unwanted entries from ScriptCanvas node palette
5 years ago
chcurran 94edb18ed0 disabled upgrade menu until we can stabilize the tool (LYN-3799) 5 years ago
Jonny Galloway 76e0f84670
Merge pull request #1342 from aws-lumberyard-dev/Atom/gallowj/stabilization/2106
Removing the LookDevStudio asset gem from primary o3de repo
5 years ago
gallowj f558e961ae Removing this superflous data not used by engine 5 years ago
Chris Santora 03171fee54 Updated AssetInitBus comments. 5 years ago
chcurran 2fd985f162 Fix for unconverted once nodes 5 years ago
chcurran 9f7f6e84a4 Merge branch 'stabilization/2106' of https://github.com/aws-lumberyard/o3de into carlito/stabilization/2106 5 years ago
gallowj 5c952e2e14 Removing the LookDevStudio asset gem from primary o3de repo 5 years ago
mrieggeramzn 51ba3e9346
Merge pull request #1300 from aws-lumberyard-dev/Atom/mriegger/bsearchstab
Fixing boundary search
5 years ago
Aaron Ruiz Mora 62f3c93c68
Fixed HelpPageURL links in physics components (#1328) 5 years ago
moudgils 82c5adaaed
Merge pull request #1309 from aws-lumberyard-dev/MetalAsyncBufferFixes
Metal async buffer fixes related to meshes
5 years ago
AMZN-tpeng a671ebc699
Merge pull request #1291 from aws-lumberyard-dev/Atom/tonypeng/ATOM-15774
Atom/tonypeng/atom 15774
5 years ago
Benjamin Jillich 74e922a401
Compile fix in the editor actor component for release build (#1327) 5 years ago
Chris Santora 56cf345dba Fixed an issue where vulkan shaders didn't work in AtomSampleViewer because the correct API data wasn't being selected. 5 years ago
Chris Santora 276c3be617 Merge remote-tracking branch 'upstream/stabilization/2106' into santorac/stabilization/2106/HotReloadFixes 5 years ago
Roman 1f6bb14ed3
[EMFX][ATOM] crash during mesh reload (#1301)
* Fixed a crash when entering game mode, removing a mesh and re-adding mesh.
5 years ago