cherry pick atom optimizations

Pull over the changes to move some expensive validation to debug builds only, and use finer grained jobs for the frame scheduler work.
This commit is contained in:
rgba16f
2021-11-11 17:22:08 -06:00
committed by GitHub
4 changed files with 6 additions and 3 deletions
@@ -41,9 +41,12 @@ namespace AZ
AZ_Assert(readOnlyCache.empty(), "Inactive library has pipeline states in its global entry.");
}
#if defined(AZ_DEBUG_BUILD)
// the PipelineStateSet is expensive to duplicate, only do this in debug.
PipelineStateSet readOnlyCacheCopy = readOnlyCache;
AZ_Assert(AZStd::unique(readOnlyCacheCopy.begin(), readOnlyCacheCopy.end()) == readOnlyCacheCopy.end(),
"'%d' Duplicates existed in the read-only cache!", readOnlyCache.size() - readOnlyCacheCopy.size());
#endif
}
m_threadLibrarySet.ForEach([this](const ThreadLibrarySet& threadLibrarySet)
@@ -40,7 +40,7 @@ namespace AZ
uint32_t m_swapChainsPerCommandList = 8;
// The maximum cost that can be associated with a single command list.
uint32_t m_commandListCostThresholdMin = 1000;
uint32_t m_commandListCostThresholdMin = 250;
// The maximum number of command lists per scope.
uint32_t m_commandListsPerScopeMax = 16;
@@ -31,7 +31,7 @@ namespace AZ
uint32_t m_swapChainsPerCommandList = 8;
// The maximum cost that can be associated with a single command list.
uint32_t m_commandListCostThresholdMin = 1000;
uint32_t m_commandListCostThresholdMin = 250;
// The maximum number of command lists per scope.
uint32_t m_commandListsPerScopeMax = 16;
@@ -33,7 +33,7 @@ namespace AZ
uint32_t m_swapChainsPerCommandList = 8;
// The maximum cost that can be associated with a single command list.
uint32_t m_commandListCostThresholdMin = 1000;
uint32_t m_commandListCostThresholdMin = 250;
// The maximum number of command lists per scope.
uint32_t m_commandListsPerScopeMax = 16;