mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 14:02:58 +08:00
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:
committed by
sys_ocldev
parent
6a221bc7fc
commit
e7e23cd0b4
@@ -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 {
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user