Enable out of order execution for all submissions.

- This change enabled multiple independent command queues to execute
concurrently without stalling pipe controls in between
- This change removes L3 flushes between kernels
- Dependencies between commands are resolved via task level mechanism
- Out of order queues are not changing task level between submissions
- In order queues are increasing task level between submissions
- Whenever task level changes there is pipe control with cs stall emitted
between GPGPU_WALKERs

Change-Id: I558653b296424e4775d060df3072e2a50684b715
This commit is contained in:
Mrozek, Michal
2018-02-07 15:49:04 +01:00
committed by sys_ocldev
parent 043ad0eeba
commit d8f2142faa
2 changed files with 23 additions and 1 deletions

View File

@@ -538,7 +538,7 @@ CompletionStamp CommandQueueHw<GfxFamily>::enqueueNonBlocked(
dispatchFlags.implicitFlush = implicitFlush;
dispatchFlags.flushStampReference = this->flushStamp->getStampReference();
dispatchFlags.preemptionMode = PreemptionHelper::taskPreemptionMode(*device, multiDispatchInfo);
dispatchFlags.outOfOrderExecutionAllowed = this->isOOQEnabled();
dispatchFlags.outOfOrderExecutionAllowed = true;
DEBUG_BREAK_IF(taskLevel >= Event::eventNotReady);