You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Code/Framework/AtomCore
Tommy Walton d0810892f1
ATOM-15358 : Culling concurrency checker fails in AtomSampleViewer (merge from 1.0->main)
Inserting, updating, and removing entries from a VisibilityScene was made thread safe in a previous change, and now both the MeshFeatureProcessor and DiffuseProbeGridFeatureProcessor update entries at the same time from multiple threads. This leads to an assert in the Culling concurrency_checker, even though this is now valid behavior.

However, we still don't want to be adding, removing, or updating cullables between BeginCulling and EndCulling, which could cause a mismatch between the result of OctreeScene::GetEntryCount and the actual number of cullables in the scene.

-Added soft_lock_shared/soft_unlock_shared to the concurrency checker to allow multiple threads to acquire a lock when that is the desired behavior, while still asserting that nothing tries to acquire a shared lock when the concurrency checker is already locked.
-Update Culling.cpp to use the new soft_lock_shared when adding, updating, or removing cullables
-Added unit tests for the concurrency_checker
-Updated ArrayView unit test to use AZ_TEST_START_TRACE_SUPPRESSION instead of manually checking the assertion count, so that test now passes in release builds which do not assert.
5 years ago
..
AtomCore ATOM-15358 : Culling concurrency checker fails in AtomSampleViewer (merge from 1.0->main) 5 years ago
Tests ATOM-15358 : Culling concurrency checker fails in AtomSampleViewer (merge from 1.0->main) 5 years ago
CMakeLists.txt Initial commit 5 years ago