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();
}
bool CommandQueue::blitEnqueueAllowed(bool queueBlocked, cl_command_type cmdType) {
bool CommandQueue::blitEnqueueAllowed(cl_command_type cmdType) const {
bool blitAllowed = false;
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);
return commandAllowed && !queueBlocked && blitAllowed;
return commandAllowed && blitAllowed;
}
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);
void providePerformanceHint(TransferProperties &transferProperties);
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);
Context *context = nullptr;

View File

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

View File

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