AZStd::fixed_vector had all its functions marked with constexpr, but this requires all member variables to be fully initialized. This meant that the internal array used to store elements always has to be fully initialized. This was done for trivial classes but not for non-trivial classes. As a result trivial classes always did a memset (or more optimized versions for smaller buffers) while the non-trivial version couldn't actually be stored in a constexpr variable. Since AZStd::fixed_vector is meant to be dynamic the choice was made to remove the constexpr from all non-static member functions in favor of avoiding the overhead of memset, which profiling showed was a considerable overhead depending on the reserved size. If a truly constexpr array is needed than AZStd::array is a better choice as that's designed to not by dynamic.
Signed-off-by: AMZN-koppersr <82230785+AMZN-koppersr@users.noreply.github.com>
* configure/generation working
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Generates deb package forLinux
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes to EngineFinder
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* changes the owner of the installed folder so it is writable by the user
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* jenkins scripts
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes execution permission for scripts
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes wrong parameter to build for linux
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* removal of clang parameters in build_config.json
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Simplifies and fixes build configs
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes to EngineFinder
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Adds linux deb package upload and small fixes/organization cleanup
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes checksum generation
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Some more small fixes for reviewing
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Test if this space is necessary for cpack
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* More fixes for installer jobs
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Adding eval to variables that need to double-expand
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Removing unused variables being passed
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Do not remove symlink
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Use cmake_path for concatenating paths
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* removing quotes so the variable expands
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* cleaned up some variables that have way too many ways to be passed
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Multiple fixes for Jenkins
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Cleanup/re-organization
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes some temp variables so we can run cpack jenkins jobs locally
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Delays cmake download to install step
Cleanup on installer_windows.cmd, we already have the path to cpack (same as cmake, which is added to the path)
Some simplification in the windows installer generation, we now generate the same even if we dont upload
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes mac install
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* CPack can generate hashes for us
Defiine CPACK_OUTPUT_FILE_PREFIX to prevent the exe/msi from ending in the bin dir
Remove unnecessary generation of folder from 3rdPartyPacakges which fails when including from cpack
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* multiple fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes typo
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* more fixes
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes for linux/mac/windows (fixing discrepancies with Jenkins)
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* uploads to S3 from the upload directory and fixes the latest upload
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Adds ERROR_VARIABLE to S3 upload to find a Jenkins issue
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* printing command invocation to try to figure out the errors
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Changes the hashing algorithm to sha256 and fixes the cmd used to call to pythojn
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* wrong path being passed in mac
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* removes compiler parameters from a config job (after rebase)
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* more fixes fro deb packaging job
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* small fix for fingerprint patching for latest
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Changing extension of public key and leaving better TODO places for code signing
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Removes sdl as a dependency, leaving it commented since it is needed for wwise
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* fixes runtime copy during install, makes it more consistent with regular runtime dependencies and optimizes copy when there is already an install
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* $ENV{DESTDIR} and CMAKE_INSTALL_PREFIX cannot be used in cmake_path because the CMAKE_INSTALL_PREFIX is absolute
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixing some runtime_dependencies optimizations, we cannot take size of a bundle
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes warning in mac for an unused variable
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixes a variable that was being passed to fix qt frameworks
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* More fixes for Jenkins
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Updates email to use for maintainer to match certificate
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* make directory because in some cases the dependency is copied before the actual library and the directory has to be created
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fix for a new warning/error in linux
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* The sha file is created after the upload happens, so creating it
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* remove the size comparison for install since it stomps over the copy from the target and doesnt trigger stripping
Signed-off-by: Esteban Papp <81431996+amznestebanpapp@users.noreply.github.com>
* Fixed race condition caused by trying to handle asset ready event before asset container has finished filling out all the data structures.
Added check to only handle asset ready once init is complete
Added unit test to verify fix
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Re-enable test
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add missing space to error message
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add comment on sleep
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Collapse nested namespace
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Collapse nested namespace
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Renamed ArchiveLocationPriority enum to FileSearchPriority and made it a proper enum class
Added an ArchiveVars.cpp which checks the a new define: `LY_ARCHIVE_FILE_SEARCH_MODE_DEFAULT`
That define represents the default value to use for the Archive system search mode
Moved the FileSearchLocation enum to the ArchiveVars.h header
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetBundleComponent to use AZ::IO::Path for level dirs
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added a LY_ARCHIVE_FILE_SEARCH_MODE cache variable
The Cache Variable default value is to Archive File Search Mode to PakOnly
in Release. This can be overridden using a value for all configurations
by specifying a number of 0, 1 or 2.
Alternatively a generator expression can be used to set the Archive File
Search Mode in specific configurations.
For example to set the FileSearchMode to 1 in profile and 2 in release
the following LY_ARCHIVE_FILE_SEARCH_MODE value can be used
`$<$<CONFIG:profile>:1>$<$<CONFIG:release>:2>`
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated AssetBundler(Batch) VS Debugger arguments to populate the
project-path optoin if a single project is configured.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Add support for serializing older versions of the AssetBundleManifest
This is done by attaching the "ObjectStreamWriteElementOverride"
attribute to the AssetBundleManifest reflection.
That attribute contains a function which outputs an older serialized
version of the AssetBundleManifest based on the `m_bundleVersion` member
value.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* AZStd::variant Serialization fix
The AttributeData<T> type is no longer suitable for storing the
ObjectStreamWriterOverrideCB function
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
This was due to incorrectly setting m_lastSimulationTickTimeUs when t_simulationTickDeltaOverride was enabled to the override.
m_lastSimulationTickTimeUs is now always set to the current time so the delta calculation will always be correct.
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
* Multiple cleanups ( tidy etc. )
Coalesce nested namespaces.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Multiple cleanups ( tidy etc. ) cntd.
Converted Uuid into POD ( defaulted the constructor )
Add `&/const &` to `for` loops that benefit from their use
Some Qt optimizations ( string ref, prevent container detaches, etc. )
Replace `::bind` in a few places.
Replaced the use of AZ_CRC with AZ_CRC_CE in a few places.
Replace a few `typedef`s with `using`s
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Linux compilation fix.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Apply review suggestions.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Fix vs2019 build
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Small clang re-format in StringFunc.cpp
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Apply reviewer's suggestions.
Signed-off-by: nemerle <96597+nemerle@users.noreply.github.com>
* Add interface to allow disabling global AZ Core test environment trace bus suppression
Update BaseAssetManagerTest class to disable the suppression by default
Update specific asset manager tests that rely on the trace bus suppression to ReEnable it
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Remove nodiscard
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Remove unique_ptr for disable token
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix move operator
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Switch to having individual flags for suppression of each type of output
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Add cvar to force stacktrace output.
Clean up whitespace
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
- Replace AZ_TRAIT_MAX_JOB_MANAGER_WORKER_THREADS with AZ_TRAIT_THREAD_NUM_JOB_MANAGER_WORKER_THREADS that allows the number of threads created by the job manager to be set directly.
- Add AZ_TRAIT_THREAD_NUM_TASK_GRAPH_WORKER_THREADS that allows the number of threads created by the task graph to be set directly.
- Add a define that forces the AsyncUploadQueue to use the primary copy queue instead of creating a secondary copy queue.
Signed-off-by: bosnichd <bosnichd@amazon.com>
* Fix race condition where asset would finish loading and another request would start before the streamer request could be cleared
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Re-enable disabled test which was failing for the same reason.
Fix test timeout which was way too long.
Reduce test iterations to keep test time safely under 5 seconds.
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Instead of using a mutex, re-order the statements to remove the streamer request first
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
(cherry picked from commit 0cea59d669)
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Fix race condition where asset would finish loading and another request would start before the streamer request could be cleared
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Re-enable disabled test which was failing for the same reason.
Fix test timeout which was way too long.
Reduce test iterations to keep test time safely under 5 seconds.
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
* Instead of using a mutex, re-order the statements to remove the streamer request first
Signed-off-by: amzn-mike <80125227+amzn-mike@users.noreply.github.com>
Replaced and removed the CryTimer (gEnv->pTimer). The new TimeSystem is a merger of the current time functionality found in the engine.
* Rename TimeSystemComponent.h/.cpp to TimeSystem.h/.cpp
* Adding New TimeSystem
* remove old timer cvars
* small improvements to the time system.
- updated parts to use the time conversion functions.
- in AdvanceTickDeltaTimes applying t_simulationTickScale is now uses doubles instead of floats.
* Replace gEnv->pTimer / ITimer usages with TimeSystem
* Updating usages of AZ::TimeMs{ 0 } and AZ::TimeUs{ 0 } to AZ::Time::ZeroTimeMs and AZ::Time::ZeroTimeUs
* red code the CryTimer
* using TimeUs instead of TimeMs is some cases + updating usages of old cvars to new
Signed-off-by: amzn-sean <75276488+amzn-sean@users.noreply.github.com>
* Add a name to JobManager, all worker threads use that name to label their threads
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* update with PR feedback, changed to use AZStd::fixed_string::format
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* Fix copy paste errors using local variable names
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* fix brute force mesh intersection function
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* add test for brute force ray intersection fix
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* refactor tests to remove as much duplication and provide API for future tests if required
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* small updates after review feedback
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* update following review feedback
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
* fix for pointer offset
Signed-off-by: Tom Hulton-Harrop <82228511+hultonha@users.noreply.github.com>
the owner has removed it!
This fixes the issue by forcing NameDictionary to not transfer
ownership. This means ComponentApplication()::Destroy will fully destroy
the NameDictionary before the OS::Allocator is destroyed.
In Windows the bug was not happening when running AssetProcessorBatch
because for Windows, _exit() is called before the application shutsdown
forcing all module to properly decrease the reference count of
EnvironmentVaqriableHolderBase::m_useCount for NameDictionary.
In MacOS, there's no _exit() so when the NameDictionary destructor was being called
before existing the application the reference count wouldn't be 0, and
would eventually try to destry the NameDictionary BUT the OS::Allocator
was already destroyed.
Signed-off-by: galibzon <66021303+galibzon@users.noreply.github.com>
* Enable relocation of the Project Game Release Layout
Relocating the Project Game Release Layout to another directory on the file system failed due to the querying of the engine root failing due to the ComponentApplication::m_engineRoot not using the project path stored in the SettingsRegisry if the engine root cannot be detected
Removed the ApplicationRequestBus GetEngineRoot function.
The ComponentApplicationRequestBus has a function of the same name that returns the same path.
Removed the deprecated GetAppRoot function.
The path it returns has no defined value. It was not the engine root or the project root.
Removed unused CFileUtil and CFileUtil_impl functions that were invoking the ApplicationREquestBus GetEngineRoot function.
On the way to update the functions it was discovered that they aren't called
Added a CalculateBranchToken overload that can populate a fixed_string to avoid heap allocations
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Protect against an empty list of artifacts to remove when generating the
engine.pak
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed the return value of the ConvertToAbsolutePath function
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added the generated cmake_dependencies.*.setreg files to engine.pak (#5073)
* Copied the generated cmake_dependencies.*.setreg file to the Cache
directory
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed the platform name from the bootstrap.game.*.setreg
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Update how the project related file paths are determined when not
supplied.
The project-path determination now goes back to only detecting a "project.json" file.
It no longer attempts to detect a "Cache" directory
The project-cache-path determination now in addition to checking the
project_cache_path key searches for a "Cache" directory.
The project-path defaults to executable folder if it cannot be detected.
The copying of generated executable folder Registry directory contents
to the product cache is now removed after the archive step.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the invocation of the AssetProcessor in Jenkins to supply an
absolute path to the project.
The project-path is no longer treated as relative to the engine root,
but instead relative to the current working directory at application
startup.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added constant for the storing the name of Cache directory
Fixed typos and grammatical errors in the SettingsRegistryMergeUtils.cpp
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated UnitTest prepend the EngineRoot path to "AutomatedTesting" when
setting the project path.
This is needed now that the project-path isn't treated relative to the
EngineRoot if it is not absolute.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix AssetSeedManagerTest and PlatformAddressedAssetCatalogManagerTest
Instead of trying to used the AutomatedTesting directory as the project root, the temp directory created during the test is used as the project root.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Moved the setting of the project cache root folder and project
asset platform root folder into the `if (!projectCachePath.empty())`
block
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removing the scan up logic for the "Cache" directory.
This is no longer needed to locate the project cache path in a Project Game Release Layout.
Because the project path defaults to the executable directory if, it is not found, the Cache directory will be set to the "Cache" directory within the executable directory.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixed some files missed when groundplane_521 was renamed to 512 (#4958)
* Fixed references to 521x521 to reference the correct 512x512 FBX file
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed asset hints
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Moved the Asset Catalog loading from LmbrCentral to the AzFramework::Application (#4568)
* Moved the loading of the AssetCatalog from LmbrCentralSystemComponent to AzFramework Application
Modified the AssetCatalog::InitializeCatalog function to no longer rely on the TickBus to send out the `AssetCatalogEventBus::OnCatalogLoaded` event.
It now queues a function on the AssetCatalogRequestBus to send the OnCatalogLoaded event as soon as the dispatching for the AssetCatalogRequestBus has completed on the current thread.
This is done by updating the AssetCatalogRequestBus to use EBus ThreadDispatchPolicy to add a callback to invoke any queued function has soon a thread has finished dispatching and has released its DispatchMutex
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetCatalogRequestBus to add a custom DispatchLockGuard
The AssetCatalogRequestBus uses the custom lock guard to dispatch queued
events after it has unlocked it's context mutex for the current thread.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed GetContext call from the
AssetCatalogRequests::PostThreadDispatchInvoker
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the definition of FileTagQueryManager::GetDefaultFileTagFilePath
function to return a path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AZ_CONSOLEFREEFUNC macro to actually use the _NAME
The _NAME parameter was not being used before, resulting in the Console
stringified name of the function being used.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed CrySystem dependencies from the BundlingSystemComponent
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Moved the loading of the AssetCatalog from LmbrCentralSystemComponent to AzFramework Application
Modified the AssetCatalog::InitializeCatalog function to no longer rely on the TickBus to send out the `AssetCatalogEventBus::OnCatalogLoaded` event.
It now queues a function on the AssetCatalogRequestBus to send the OnCatalogLoaded event as soon as the dispatching for the AssetCatalogRequestBus has completed on the current thread.
This is done by updating the AssetCatalogRequestBus to use EBus ThreadDispatchPolicy to add a callback to invoke any queued function has soon a thread has finished dispatching and has released its DispatchMutex
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AssetCatalogRequestBus to add a custom DispatchLockGuard
The AssetCatalogRequestBus uses the custom lock guard to dispatch queued
events after it has unlocked it's context mutex for the current thread.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed GetContext call from the
AssetCatalogRequests::PostThreadDispatchInvoker
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the definition of FileTagQueryManager::GetDefaultFileTagFilePath
function to return a path
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Updated the AZ_CONSOLEFREEFUNC macro to actually use the _NAME
The _NAME parameter was not being used before, resulting in the Console
stringified name of the function being used.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed CrySystem dependencies from the BundlingSystemComponent
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Addded missing template parameter to AssetCatalogRequests
The fixes the compile error.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Adding AssetBus::MultiHandler::BusDisconnect call
The BlastSystemComponent was connecting to the Bus, but not
disconnecting from it, causing an assert to fire to it being a
multi-thread bus
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added support for DataDrive lifecycle events to the ComponentApplication
The events are using the SettingsRegistry NotifyEvent to track when
certain keys are modified to signal handlers.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Corrected invalid JSON creation in ModuleManager::DeactivateEntities
Resolved clang warning about used type alias
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fix for dangling reference in lambda registered to the SettingsRegistry
Notifier event
This was causing the EditorPythonBinding tests to crash due to the
following circumstances.
First Python has created an instance of a SettingsRegistryProxy
Second the SettingsRegistry sends an event during the time when the
SettingsRegistryProxy exists.
This issue was exposed due to the ComponentApplication Lifecycle events
using the SettingsRegistry to dispatch during various times of the
application workflow.
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Added the generated cmake_dependencies.*.setreg files to engine.pak (#5073)
* Copied the generated cmake_dependencies.*.setreg file to the Cache
directory
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Removed the platform name from the bootstrap.game.*.setreg
Signed-off-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
* Fixes for release builds with DCO fix (#5164)
* This set of changes is work toward allowing release builds to work with asset bundler generated bundles and legacy, non-prefab levels. This requires some other in-flight changes before this work is complete.
Updated engine seed list + fixed automated test
ComponentApplicationLifecycle has the ability to automatically register events if asked to register a handler and the event doesn't exist. This is only intended for cases where you need to register a handler early in startup before the settings registry file is loaded.
Added two new lifecycle events: One after the system entity has been activated, and one after the system interface has been created.
If you load an archive before the system entity has been activated, archive.cpp caches information about those archives until that time, so it can finish registration. This is because the serialization system and BundlingSystemComponent both need to be available to do this registration, but the bundles have to be loaded before those are initialized so that the settings registry file can be loaded.
Fixed an error were mounted pak files were searching for levels.pak and not level.pak, and not finding them. I'm pretty sure this logic doesn't do anything functional either way, but I've been testing legacy levels with this change and they work now.
Moved wildcard pak loading to where engine.pak is loaded. This is because the settings registry file that defines the IO stack to spin up must be available early in application startup, and this file must be within a mounted pak file. If you're using asset bundler generated bundles, they need to be loaded at this time so that file can be loaded.
Atom's BootstrapSystemComponent.cpp no longer initializes on AssetCatalogLoaded, and instead initializes on the ApplicationLifecycle event SystemInterfaceCreated. This is because the base assetcatalog.xml file is really just a development time concept, this file should not be used in packaged release builds, because those builds will make use of delta catalogs in each bundle loaded. The asset catalog contains the list of all assets that were in the cache at development time, and this contains content that developers don't want to ship, and they may want to specifically hide from their customers, so data miners don't find secrets about upcoming game content.
Recovering from a branch that had incorrect DCO
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed an incorrect ebus disconnect and removed an include that's no longer needed
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed a copy and paste typo from trying to recover the previous pull request
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated product IDs for the settings registry builder to no longer collide with the JSON builder. Now they are based on a hash of the configuration.
Updated the engine default seed list to include the new asset ID info for the renamed bootstrap file
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated the path to the application lifecycle events, because runtime settings aren't included in the merged bootstrap file.
Addressed some feedback on printing out a string view on an error
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Removed a test that uses old assets that aren't relevant. We may not need this test anymore, but if we do we've backlogged a task to create a new test to cover this behavior without using old assets.
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Renamed SystemInterfaceCreated event to LegacySystemInterfaceCreated
Removed SystemEntityActivated event. Now that I have the rest of the fixes in this pull request, this new event wasn't needed, the already existing SystemComponentsActivated event does what I need.
Changed list to vector
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
Co-authored-by: lumberyard-employee-dm <56135373+lumberyard-employee-dm@users.noreply.github.com>
Enable Atom CullingScene to use TaskGraph
Enable Atom PNG save to use TaskGraph for red/blue color channel swap on save out.
Signed-off-by: rgba16f <82187279+rgba16f@users.noreply.github.com>
* This set of changes is work toward allowing release builds to work with asset bundler generated bundles and legacy, non-prefab levels. This requires some other in-flight changes before this work is complete.
Updated engine seed list + fixed automated test
ComponentApplicationLifecycle has the ability to automatically register events if asked to register a handler and the event doesn't exist. This is only intended for cases where you need to register a handler early in startup before the settings registry file is loaded.
Added two new lifecycle events: One after the system entity has been activated, and one after the system interface has been created.
If you load an archive before the system entity has been activated, archive.cpp caches information about those archives until that time, so it can finish registration. This is because the serialization system and BundlingSystemComponent both need to be available to do this registration, but the bundles have to be loaded before those are initialized so that the settings registry file can be loaded.
Fixed an error were mounted pak files were searching for levels.pak and not level.pak, and not finding them. I'm pretty sure this logic doesn't do anything functional either way, but I've been testing legacy levels with this change and they work now.
Moved wildcard pak loading to where engine.pak is loaded. This is because the settings registry file that defines the IO stack to spin up must be available early in application startup, and this file must be within a mounted pak file. If you're using asset bundler generated bundles, they need to be loaded at this time so that file can be loaded.
Atom's BootstrapSystemComponent.cpp no longer initializes on AssetCatalogLoaded, and instead initializes on the ApplicationLifecycle event SystemInterfaceCreated. This is because the base assetcatalog.xml file is really just a development time concept, this file should not be used in packaged release builds, because those builds will make use of delta catalogs in each bundle loaded. The asset catalog contains the list of all assets that were in the cache at development time, and this contains content that developers don't want to ship, and they may want to specifically hide from their customers, so data miners don't find secrets about upcoming game content.
Recovering from a branch that had incorrect DCO
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed an incorrect ebus disconnect and removed an include that's no longer needed
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Fixed a copy and paste typo from trying to recover the previous pull request
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated product IDs for the settings registry builder to no longer collide with the JSON builder. Now they are based on a hash of the configuration.
Updated the engine default seed list to include the new asset ID info for the renamed bootstrap file
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Updated the path to the application lifecycle events, because runtime settings aren't included in the merged bootstrap file.
Addressed some feedback on printing out a string view on an error
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Removed a test that uses old assets that aren't relevant. We may not need this test anymore, but if we do we've backlogged a task to create a new test to cover this behavior without using old assets.
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>
* Renamed SystemInterfaceCreated event to LegacySystemInterfaceCreated
Removed SystemEntityActivated event. Now that I have the rest of the fixes in this pull request, this new event wasn't needed, the already existing SystemComponentsActivated event does what I need.
Changed list to vector
Signed-off-by: stankowi <4838196+AMZN-stankowi@users.noreply.github.com>