feature: limit relaxed ordering max queue size

Related-To: NEO-7458

Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
This commit is contained in:
Dunajski, Bartosz
2023-06-20 09:37:39 +00:00
committed by Compute-Runtime-Automation
parent 8976d8b033
commit 7f3d09b287
3 changed files with 13 additions and 0 deletions

View File

@@ -34,6 +34,7 @@
#include "create_direct_submission_hw.inl"
#include <algorithm>
#include <cstring>
namespace NEO {
@@ -745,6 +746,8 @@ void *DirectSubmissionHw<GfxFamily, Dispatcher>::dispatchWorkloadSection(BatchBu
dispatchTaskStoreSection(batchBuffer.taskStartAddress);
uint32_t expectedQueueSize = batchBuffer.numCsrClients * RelaxedOrderingHelper::queueSizeMultiplier;
expectedQueueSize = std::min(expectedQueueSize, RelaxedOrderingHelper::maxQueueSize);
if (expectedQueueSize > this->currentRelaxedOrderingQueueSize && DebugManager.flags.DirectSubmissionRelaxedOrderingQueueSizeLimit.get() == -1) {
updateRelaxedOrderingQueueSize(expectedQueueSize);
}

View File

@@ -17,6 +17,7 @@ namespace RelaxedOrderingHelper {
bool isRelaxedOrderingDispatchAllowed(const CommandStreamReceiver &csr, uint32_t numWaitEvents);
static constexpr uint32_t queueSizeMultiplier = 4;
static constexpr uint32_t maxQueueSize = 16;
template <typename GfxFamily>
void encodeRegistersBeforeDependencyCheckers(LinearStream &cmdStream) {