mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 17:13:29 +08:00
Do not use blitter for clEnqueueCopyBuffer
Signed-off-by: Maciej Dziuban <maciej.dziuban@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
fcf6ecfad7
commit
2cd6809d1e
@@ -698,6 +698,13 @@ bool CommandQueue::blitEnqueueAllowed(cl_command_type cmdType) const {
|
||||
}
|
||||
}
|
||||
|
||||
bool CommandQueue::blitEnqueuePreferred(cl_command_type cmdType) const {
|
||||
if (cmdType == CL_COMMAND_COPY_BUFFER) {
|
||||
return DebugManager.flags.PreferCopyEngineForCopyBufferToBuffer.get() == 1;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CommandQueue::blitEnqueueImageAllowed(const size_t *origin, const size_t *region) {
|
||||
auto blitEnqueuImageAllowed = false;
|
||||
|
||||
|
||||
@@ -353,6 +353,7 @@ class CommandQueue : public BaseObject<_cl_command_queue> {
|
||||
void providePerformanceHint(TransferProperties &transferProperties);
|
||||
bool queueDependenciesClearRequired() const;
|
||||
bool blitEnqueueAllowed(cl_command_type cmdType) const;
|
||||
bool blitEnqueuePreferred(cl_command_type cmdType) const;
|
||||
MOCKABLE_VIRTUAL bool blitEnqueueImageAllowed(const size_t *origin, const size_t *region);
|
||||
void aubCaptureHook(bool &blocking, bool &clearAllDependencies, const MultiDispatchInfo &multiDispatchInfo);
|
||||
virtual bool obtainTimestampPacketForCacheFlush(bool isCacheFlushRequired) const = 0;
|
||||
|
||||
@@ -1136,7 +1136,11 @@ void CommandQueueHw<GfxFamily>::enqueueBlit(const MultiDispatchInfo &multiDispat
|
||||
template <typename GfxFamily>
|
||||
template <uint32_t cmdType, size_t surfaceCount>
|
||||
void CommandQueueHw<GfxFamily>::dispatchBcsOrGpgpuEnqueue(MultiDispatchInfo &dispatchInfo, Surface *(&surfaces)[surfaceCount], EBuiltInOps::Type builtInOperation, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking, bool blitAllowed) {
|
||||
if (blitAllowed) {
|
||||
const bool blitPreferred = blitEnqueuePreferred(cmdType);
|
||||
const bool blitRequired = isCopyOnly;
|
||||
const bool blit = blitAllowed && (blitPreferred || blitRequired);
|
||||
|
||||
if (blit) {
|
||||
enqueueBlit<cmdType>(dispatchInfo, numEventsInWaitList, eventWaitList, event, blocking);
|
||||
} else {
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(builtInOperation,
|
||||
|
||||
Reference in New Issue
Block a user