Remove queueBlocked restriction from blitEnqueueAllowed

Change-Id: If7fcd15cbbb4e749d16b9d028dac33a8a7b20bde
Signed-off-by: Dunajski, Bartosz <bartosz.dunajski@intel.com>
Related-To: NEO-3020
This commit is contained in:
Dunajski, Bartosz
2019-09-02 10:16:44 +02:00
committed by sys_ocldev
parent 6a221bc7fc
commit e7e23cd0b4
4 changed files with 8 additions and 5 deletions

View File

@@ -577,7 +577,7 @@ bool CommandQueue::queueDependenciesClearRequired() const {
return isOOQEnabled() || DebugManager.flags.OmitTimestampPacketDependencies.get(); return isOOQEnabled() || DebugManager.flags.OmitTimestampPacketDependencies.get();
} }
bool CommandQueue::blitEnqueueAllowed(bool queueBlocked, cl_command_type cmdType) { bool CommandQueue::blitEnqueueAllowed(cl_command_type cmdType) const {
bool blitAllowed = false; bool blitAllowed = false;
if (DebugManager.flags.EnableBlitterOperationsForReadWriteBuffers.get() != -1) { if (DebugManager.flags.EnableBlitterOperationsForReadWriteBuffers.get() != -1) {
@@ -587,7 +587,7 @@ bool CommandQueue::blitEnqueueAllowed(bool queueBlocked, cl_command_type cmdType
bool commandAllowed = (CL_COMMAND_READ_BUFFER == cmdType) || (CL_COMMAND_WRITE_BUFFER == cmdType); bool commandAllowed = (CL_COMMAND_READ_BUFFER == cmdType) || (CL_COMMAND_WRITE_BUFFER == cmdType);
return commandAllowed && !queueBlocked && blitAllowed; return commandAllowed && blitAllowed;
} }
bool CommandQueue::isBlockedCommandStreamRequired(uint32_t commandType, const EventsRequest &eventsRequest, bool blockedQueue) const { bool CommandQueue::isBlockedCommandStreamRequired(uint32_t commandType, const EventsRequest &eventsRequest, bool blockedQueue) const {

View File

@@ -437,7 +437,7 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
cl_uint numEventsInWaitList, const cl_event *eventWaitList); cl_uint numEventsInWaitList, const cl_event *eventWaitList);
void providePerformanceHint(TransferProperties &transferProperties); void providePerformanceHint(TransferProperties &transferProperties);
bool queueDependenciesClearRequired() const; bool queueDependenciesClearRequired() const;
bool blitEnqueueAllowed(bool queueBlocked, cl_command_type cmdType); bool blitEnqueueAllowed(cl_command_type cmdType) const;
void aubCaptureHook(bool &blocking, bool &clearAllDependencies, const MultiDispatchInfo &multiDispatchInfo); void aubCaptureHook(bool &blocking, bool &clearAllDependencies, const MultiDispatchInfo &multiDispatchInfo);
Context *context = nullptr; Context *context = nullptr;

View File

@@ -338,6 +338,7 @@ class CommandQueueHw : public CommandQueue {
const MultiDispatchInfo &multiDispatchInfo, const MultiDispatchInfo &multiDispatchInfo,
TimestampPacketContainer *previousTimestampPacketNodes, TimestampPacketContainer *previousTimestampPacketNodes,
std::unique_ptr<KernelOperation> &blockedCommandsData, std::unique_ptr<KernelOperation> &blockedCommandsData,
const EnqueueProperties &enqueueProperties,
EventsRequest &eventsRequest, EventsRequest &eventsRequest,
EventBuilder &externalEventBuilder, EventBuilder &externalEventBuilder,
std::unique_ptr<PrintfHandler> printfHandler); std::unique_ptr<PrintfHandler> printfHandler);

View File

@@ -170,7 +170,7 @@ void CommandQueueHw<GfxFamily>::enqueueHandler(Surface **surfacesForResidency,
auto blockQueue = false; auto blockQueue = false;
auto taskLevel = 0u; auto taskLevel = 0u;
obtainTaskLevelAndBlockedStatus(taskLevel, numEventsInWaitList, eventWaitList, blockQueue, commandType); obtainTaskLevelAndBlockedStatus(taskLevel, numEventsInWaitList, eventWaitList, blockQueue, commandType);
bool blitEnqueue = blitEnqueueAllowed(blockQueue, commandType); bool blitEnqueue = blitEnqueueAllowed(commandType);
DBG_LOG(EventsDebugEnable, "blockQueue", blockQueue, "virtualEvent", virtualEvent, "taskLevel", taskLevel); DBG_LOG(EventsDebugEnable, "blockQueue", blockQueue, "virtualEvent", virtualEvent, "taskLevel", taskLevel);
@@ -345,6 +345,7 @@ void CommandQueueHw<GfxFamily>::enqueueHandler(Surface **surfacesForResidency,
multiDispatchInfo, multiDispatchInfo,
&previousTimestampPacketNodes, &previousTimestampPacketNodes,
blockedCommandsData, blockedCommandsData,
enqueueProperties,
eventsRequest, eventsRequest,
eventBuilder, eventBuilder,
std::move(printfHandler)); std::move(printfHandler));
@@ -720,6 +721,7 @@ void CommandQueueHw<GfxFamily>::enqueueBlocked(
const MultiDispatchInfo &multiDispatchInfo, const MultiDispatchInfo &multiDispatchInfo,
TimestampPacketContainer *previousTimestampPacketNodes, TimestampPacketContainer *previousTimestampPacketNodes,
std::unique_ptr<KernelOperation> &blockedCommandsData, std::unique_ptr<KernelOperation> &blockedCommandsData,
const EnqueueProperties &enqueueProperties,
EventsRequest &eventsRequest, EventsRequest &eventsRequest,
EventBuilder &externalEventBuilder, EventBuilder &externalEventBuilder,
std::unique_ptr<PrintfHandler> printfHandler) { std::unique_ptr<PrintfHandler> printfHandler) {
@@ -752,7 +754,7 @@ void CommandQueueHw<GfxFamily>::enqueueBlocked(
std::unique_ptr<Command> command; std::unique_ptr<Command> command;
bool storeTimestampPackets = blockedCommandsData && timestampPacketContainer; bool storeTimestampPackets = blockedCommandsData && timestampPacketContainer;
if (multiDispatchInfo.empty()) { if (enqueueProperties.operation != EnqueueProperties::Operation::GpuKernel) {
command = std::make_unique<CommandMarker>(*this, blockedCommandsData); command = std::make_unique<CommandMarker>(*this, blockedCommandsData);
} else { } else {
//store task data in event //store task data in event