mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-19 16:24:18 +08:00
Move builtin kernel logic out of blit enqueue path
Change-Id: I857ac7d1304f8b228bf558904ee929aa114ab003 Signed-off-by: Bartosz Dunajski <bartosz.dunajski@intel.com>
This commit is contained in:
@@ -43,9 +43,10 @@ class BuiltInOp<EBuiltInOps::CopyBufferToBuffer> : public BuiltinDispatchInfoBui
|
||||
"CopyBufferToBufferRightLeftover", kernRightLeftover);
|
||||
}
|
||||
template <typename OffsetType>
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d1D, SplitDispatch::SplitMode::KernelSplit> kernelSplit1DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
uintptr_t start = reinterpret_cast<uintptr_t>(operationParams.dstPtr) + operationParams.dstOffset.x;
|
||||
|
||||
size_t middleAlignment = MemoryConstants::cacheLineSize;
|
||||
@@ -111,8 +112,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferToBuffer> : public BuiltinDispatchInfoBui
|
||||
return true;
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -137,8 +138,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferToBufferStateless> : public BuiltInOp<EBu
|
||||
"CopyBufferToBufferRightLeftover", kernRightLeftover);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -156,9 +157,10 @@ class BuiltInOp<EBuiltInOps::CopyBufferRect> : public BuiltinDispatchInfoBuilder
|
||||
}
|
||||
|
||||
template <typename OffsetType>
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d3D, SplitDispatch::SplitMode::NoSplit> kernelNoSplit3DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
size_t hostPtrSize = 0;
|
||||
bool is3D = false;
|
||||
|
||||
@@ -237,8 +239,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferRect> : public BuiltinDispatchInfoBuilder
|
||||
return true;
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -258,8 +260,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferRectStateless> : public BuiltInOp<EBuiltI
|
||||
"CopyBufferRectBytes2d", kernelBytes[1],
|
||||
"CopyBufferRectBytes3d", kernelBytes[2]);
|
||||
}
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -277,9 +279,10 @@ class BuiltInOp<EBuiltInOps::FillBuffer> : public BuiltinDispatchInfoBuilder {
|
||||
}
|
||||
|
||||
template <typename OffsetType>
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d1D, SplitDispatch::SplitMode::KernelSplit> kernelSplit1DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
uintptr_t start = reinterpret_cast<uintptr_t>(operationParams.dstPtr) + operationParams.dstOffset.x;
|
||||
|
||||
size_t middleAlignment = MemoryConstants::cacheLineSize;
|
||||
@@ -335,8 +338,8 @@ class BuiltInOp<EBuiltInOps::FillBuffer> : public BuiltinDispatchInfoBuilder {
|
||||
return true;
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -358,8 +361,8 @@ class BuiltInOp<EBuiltInOps::FillBufferStateless> : public BuiltInOp<EBuiltInOps
|
||||
"FillBufferMiddle", kernMiddle,
|
||||
"FillBufferRightLeftover", kernRightLeftover);
|
||||
}
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfos) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfos);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -378,8 +381,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferToImage3d> : public BuiltinDispatchInfoBu
|
||||
"CopyBufferToImage3d16Bytes", kernelBytes[4]);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -387,9 +390,10 @@ class BuiltInOp<EBuiltInOps::CopyBufferToImage3d> : public BuiltinDispatchInfoBu
|
||||
BuiltInOp(BuiltIns &kernelsLib) : BuiltinDispatchInfoBuilder(kernelsLib){};
|
||||
|
||||
template <typename OffsetType>
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d3D, SplitDispatch::SplitMode::NoSplit> kernelNoSplit3DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
DEBUG_BREAK_IF(!(((operationParams.srcPtr != nullptr) || (operationParams.srcMemObj != nullptr)) && (operationParams.dstPtr == nullptr)));
|
||||
|
||||
auto dstImage = castToObjectOrAbort<Image>(operationParams.dstMemObj);
|
||||
@@ -471,8 +475,8 @@ class BuiltInOp<EBuiltInOps::CopyBufferToImage3dStateless> : public BuiltInOp<EB
|
||||
"CopyBufferToImage3d16Bytes", kernelBytes[4]);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -491,8 +495,8 @@ class BuiltInOp<EBuiltInOps::CopyImage3dToBuffer> : public BuiltinDispatchInfoBu
|
||||
"CopyImage3dToBuffer16Bytes", kernelBytes[4]);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint32_t>(multiDispatchInfo);
|
||||
}
|
||||
|
||||
protected:
|
||||
@@ -501,9 +505,10 @@ class BuiltInOp<EBuiltInOps::CopyImage3dToBuffer> : public BuiltinDispatchInfoBu
|
||||
BuiltInOp(BuiltIns &kernelsLib) : BuiltinDispatchInfoBuilder(kernelsLib) {}
|
||||
|
||||
template <typename OffsetType>
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
bool buildDispatchInfosTyped(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d3D, SplitDispatch::SplitMode::NoSplit> kernelNoSplit3DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
DEBUG_BREAK_IF(!((operationParams.srcPtr == nullptr) && ((operationParams.dstPtr != nullptr) || (operationParams.dstMemObj != nullptr))));
|
||||
|
||||
auto srcImage = castToObjectOrAbort<Image>(operationParams.srcMemObj);
|
||||
@@ -585,8 +590,8 @@ class BuiltInOp<EBuiltInOps::CopyImage3dToBufferStateless> : public BuiltInOp<EB
|
||||
"CopyImage3dToBuffer16Bytes", kernelBytes[4]);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo, operationParams);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
return buildDispatchInfosTyped<uint64_t>(multiDispatchInfo);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -601,9 +606,10 @@ class BuiltInOp<EBuiltInOps::CopyImageToImage3d> : public BuiltinDispatchInfoBui
|
||||
"CopyImageToImage3d", kernel);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d3D, SplitDispatch::SplitMode::NoSplit> kernelNoSplit3DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
|
||||
DEBUG_BREAK_IF(!((operationParams.srcPtr == nullptr) && (operationParams.dstPtr == nullptr)));
|
||||
|
||||
auto srcImage = castToObjectOrAbort<Image>(operationParams.srcMemObj);
|
||||
@@ -666,9 +672,9 @@ class BuiltInOp<EBuiltInOps::FillImage3d> : public BuiltinDispatchInfoBuilder {
|
||||
"FillImage3d", kernel);
|
||||
}
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const override {
|
||||
bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const override {
|
||||
DispatchInfoBuilder<SplitDispatch::Dim::d3D, SplitDispatch::SplitMode::NoSplit> kernelNoSplit3DBuilder;
|
||||
multiDispatchInfo.setBuiltinOpParams(operationParams);
|
||||
auto &operationParams = multiDispatchInfo.peekBuiltinOpParams();
|
||||
DEBUG_BREAK_IF(!((operationParams.srcMemObj == nullptr) && (operationParams.srcPtr != nullptr) && (operationParams.dstPtr == nullptr)));
|
||||
|
||||
auto image = castToObjectOrAbort<Image>(operationParams.dstMemObj);
|
||||
@@ -783,4 +789,4 @@ void BuiltInOwnershipWrapper::takeOwnership(BuiltinDispatchInfoBuilder &inputBui
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
} // namespace NEO
|
||||
|
||||
@@ -61,7 +61,7 @@ class BuiltinDispatchInfoBuilder {
|
||||
template <typename... KernelsDescArgsT>
|
||||
void populate(Device &device, EBuiltInOps::Type operation, ConstStringRef options, KernelsDescArgsT &&... desc);
|
||||
|
||||
virtual bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const {
|
||||
virtual bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@@ -349,7 +349,7 @@ class CommandQueueHw : public CommandQueue {
|
||||
cl_event *event);
|
||||
|
||||
template <uint32_t cmdType, size_t surfaceCount>
|
||||
void dispatchBcsOrGpgpuEnqueue(MultiDispatchInfo &dispatchInfo, Surface *(&surfaces)[surfaceCount], cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking);
|
||||
void dispatchBcsOrGpgpuEnqueue(MultiDispatchInfo &dispatchInfo, Surface *(&surfaces)[surfaceCount], EBuiltInOps::Type builtInOperation, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking);
|
||||
|
||||
template <uint32_t cmdType>
|
||||
void enqueueBlit(const MultiDispatchInfo &multiDispatchInfo, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking);
|
||||
|
||||
@@ -1099,10 +1099,16 @@ 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], cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking) {
|
||||
void CommandQueueHw<GfxFamily>::dispatchBcsOrGpgpuEnqueue(MultiDispatchInfo &dispatchInfo, Surface *(&surfaces)[surfaceCount], EBuiltInOps::Type builtInOperation, cl_uint numEventsInWaitList, const cl_event *eventWaitList, cl_event *event, bool blocking) {
|
||||
if (blitEnqueueAllowed(cmdType)) {
|
||||
enqueueBlit<cmdType>(dispatchInfo, numEventsInWaitList, eventWaitList, event, blocking);
|
||||
} else {
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(builtInOperation,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
builder.buildDispatchInfos(dispatchInfo);
|
||||
|
||||
enqueueHandler<cmdType>(
|
||||
surfaces,
|
||||
blocking,
|
||||
|
||||
@@ -30,31 +30,26 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBuffer(
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) {
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
auto eBuiltInOpsType = EBuiltInOps::CopyBufferToBuffer;
|
||||
|
||||
if (forceStateless(std::max(srcBuffer->getSize(), dstBuffer->getSize()))) {
|
||||
eBuiltInOpsType = EBuiltInOps::CopyBufferToBufferStateless;
|
||||
}
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOpsType,
|
||||
this->getDevice());
|
||||
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
BuiltinOpParams dc;
|
||||
dc.srcMemObj = srcBuffer;
|
||||
dc.dstMemObj = dstBuffer;
|
||||
dc.srcOffset = {srcOffset, 0, 0};
|
||||
dc.dstOffset = {dstOffset, 0, 0};
|
||||
dc.size = {size, 0, 0};
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
MemObjSurface s1(srcBuffer);
|
||||
MemObjSurface s2(dstBuffer);
|
||||
Surface *surfaces[] = {&s1, &s2};
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_COPY_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, false);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_COPY_BUFFER>(dispatchInfo, surfaces, eBuiltInOpsType, numEventsInWaitList, eventWaitList, event, false);
|
||||
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -38,10 +38,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBufferRect(
|
||||
eBuiltInOps = EBuiltInOps::CopyBufferRectStateless;
|
||||
}
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOps,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
MemObjSurface srcBufferSurf(srcBuffer);
|
||||
MemObjSurface dstBufferSurf(dstBuffer);
|
||||
Surface *surfaces[] = {&srcBufferSurf, &dstBufferSurf};
|
||||
@@ -57,10 +53,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBufferRect(
|
||||
dc.dstRowPitch = dstRowPitch;
|
||||
dc.dstSlicePitch = dstSlicePitch;
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_COPY_BUFFER_RECT>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, false);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_COPY_BUFFER_RECT>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, false);
|
||||
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -54,8 +54,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyBufferToImage(
|
||||
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, dstOrigin);
|
||||
}
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
builder.buildDispatchInfos(dispatchInfo);
|
||||
|
||||
enqueueHandler<CL_COMMAND_COPY_BUFFER_TO_IMAGE>(
|
||||
surfaces,
|
||||
|
||||
@@ -32,8 +32,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyImage(
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) {
|
||||
|
||||
MultiDispatchInfo di;
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
@@ -54,7 +52,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyImage(
|
||||
if (dstImage->getImageDesc().num_mip_levels > 0) {
|
||||
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, dstOrigin);
|
||||
}
|
||||
builder.buildDispatchInfos(di, dc);
|
||||
|
||||
MultiDispatchInfo di(dc);
|
||||
|
||||
builder.buildDispatchInfos(di);
|
||||
|
||||
enqueueHandler<CL_COMMAND_COPY_IMAGE>(
|
||||
surfaces,
|
||||
|
||||
@@ -53,8 +53,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueCopyImageToBuffer(
|
||||
dc.srcMipLevel = findMipLevel(srcImage->getImageDesc().image_type, srcOrigin);
|
||||
}
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
builder.buildDispatchInfos(dispatchInfo);
|
||||
|
||||
enqueueHandler<CL_COMMAND_COPY_IMAGE_TO_BUFFER>(
|
||||
surfaces,
|
||||
|
||||
@@ -66,8 +66,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueFillBuffer(
|
||||
dc.dstOffset = {offset, 0, 0};
|
||||
dc.size = {size, 0, 0};
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
builder.buildDispatchInfos(dispatchInfo);
|
||||
|
||||
MemObjSurface s1(buffer);
|
||||
GeneralSurface s2(patternAllocation);
|
||||
|
||||
@@ -30,8 +30,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueFillImage(
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) {
|
||||
|
||||
MultiDispatchInfo di;
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillImage3d,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
@@ -45,7 +43,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueFillImage(
|
||||
dc.srcOffset = {0, 0, 0};
|
||||
dc.dstOffset = origin;
|
||||
dc.size = region;
|
||||
builder.buildDispatchInfos(di, dc);
|
||||
|
||||
MultiDispatchInfo di(dc);
|
||||
|
||||
builder.buildDispatchInfos(di);
|
||||
|
||||
enqueueHandler<CL_COMMAND_FILL_IMAGE>(
|
||||
surfaces,
|
||||
|
||||
@@ -81,9 +81,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBuffer(
|
||||
if (forceStateless(buffer->getSize())) {
|
||||
eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless;
|
||||
}
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOps,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
void *dstPtr = ptr;
|
||||
|
||||
@@ -119,8 +116,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBuffer(
|
||||
dc.size = {size, 0, 0};
|
||||
dc.transferAllocation = mapAllocation ? mapAllocation : hostPtrSurf.getAllocation();
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
if (context->isProvidingPerformanceHints()) {
|
||||
context->providePerformanceHintForMemoryTransfer(CL_COMMAND_READ_BUFFER, true, static_cast<cl_mem>(buffer), ptr);
|
||||
@@ -129,7 +125,7 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBuffer(
|
||||
}
|
||||
}
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingRead);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, blockingRead);
|
||||
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -52,9 +52,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBufferRect(
|
||||
if (forceStateless(buffer->getSize())) {
|
||||
eBuiltInOps = EBuiltInOps::CopyBufferRectStateless;
|
||||
}
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOps,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
size_t hostPtrSize = Buffer::calculateHostPtrSize(hostOrigin, region, hostRowPitch, hostSlicePitch);
|
||||
void *dstPtr = ptr;
|
||||
@@ -90,10 +87,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadBufferRect(
|
||||
dc.dstRowPitch = hostRowPitch;
|
||||
dc.dstSlicePitch = hostSlicePitch;
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER_RECT>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingRead);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER_RECT>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, blockingRead);
|
||||
|
||||
if (context->isProvidingPerformanceHints()) {
|
||||
context->providePerformanceHintForMemoryTransfer(CL_COMMAND_READ_BUFFER_RECT, true, static_cast<cl_mem>(buffer), ptr);
|
||||
|
||||
@@ -46,7 +46,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadImage(
|
||||
notifyEnqueueReadImage(srcImage, !!blockingRead, EngineHelpers::isBcs(csr.getOsContext().getEngineType()));
|
||||
}
|
||||
|
||||
MultiDispatchInfo di;
|
||||
auto isMemTransferNeeded = true;
|
||||
if (srcImage->isMemObjZeroCopy()) {
|
||||
size_t hostOffset;
|
||||
@@ -104,7 +103,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueReadImage(
|
||||
if (srcImage->getImageDesc().num_mip_levels > 0) {
|
||||
dc.srcMipLevel = findMipLevel(srcImage->getImageDesc().image_type, origin);
|
||||
}
|
||||
builder.buildDispatchInfos(di, dc);
|
||||
|
||||
MultiDispatchInfo di(dc);
|
||||
|
||||
builder.buildDispatchInfos(di);
|
||||
|
||||
enqueueHandler<CL_COMMAND_READ_IMAGE>(
|
||||
surfaces,
|
||||
|
||||
@@ -106,11 +106,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMap(cl_bool blockingMap,
|
||||
return CL_SUCCESS;
|
||||
}
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
auto gpuAllocation = svmData->gpuAllocations.getGraphicsAllocation(getDevice().getRootDeviceIndex());
|
||||
|
||||
GeneralSurface dstSurface(svmData->cpuAllocation);
|
||||
@@ -129,9 +124,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMap(cl_bool blockingMap,
|
||||
dc.srcOffset = {svmOffset, 0, 0};
|
||||
dc.size = {size, 0, 0};
|
||||
dc.unifiedMemoryArgsRequireMemSync = externalAppCall;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blocking);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, EBuiltInOps::CopyBufferToBuffer, numEventsInWaitList, eventWaitList, event, blocking);
|
||||
|
||||
if (event) {
|
||||
castToObjectOrAbort<Event>(*event)->setCmdType(CL_COMMAND_SVM_MAP);
|
||||
@@ -198,11 +194,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMUnmap(void *svmPtr,
|
||||
gpuAllocation->setAubWritable(true, GraphicsAllocation::defaultBank);
|
||||
gpuAllocation->setTbxWritable(true, GraphicsAllocation::defaultBank);
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
GeneralSurface dstSurface(gpuAllocation);
|
||||
GeneralSurface srcSurface(svmData->cpuAllocation);
|
||||
|
||||
@@ -217,9 +208,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMUnmap(void *svmPtr,
|
||||
dc.srcOffset = {svmOperation->offset, 0, 0};
|
||||
dc.size = {svmOperation->regionSize, 0, 0};
|
||||
dc.unifiedMemoryArgsRequireMemSync = externalAppCall;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, false);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, EBuiltInOps::CopyBufferToBuffer, numEventsInWaitList, eventWaitList, event, false);
|
||||
|
||||
if (event) {
|
||||
castToObjectOrAbort<Event>(*event)->setCmdType(CL_COMMAND_SVM_UNMAP);
|
||||
@@ -330,9 +322,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
||||
builtInType = EBuiltInOps::CopyBufferToBufferStateless;
|
||||
}
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(builtInType,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
BuiltinOpParams operationParams;
|
||||
Surface *surfaces[2];
|
||||
@@ -354,9 +343,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
||||
setOperationParams(operationParams, size, srcPtr, srcSvmData->gpuAllocations.getGraphicsAllocation(rootDeviceIndex), dstPtr, dstHostPtrSurf.getAllocation());
|
||||
surfaces[0] = &srcSvmSurf;
|
||||
surfaces[1] = &dstHostPtrSurf;
|
||||
builder.buildDispatchInfos(dispatchInfo, operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
dispatchInfo.setBuiltinOpParams(operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_READ_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
|
||||
} else if (copyType == HostToSvm) {
|
||||
HostPtrSurface srcHostPtrSurf(const_cast<void *>(srcPtr), size);
|
||||
@@ -374,9 +364,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
||||
dstPtr, dstSvmData->gpuAllocations.getGraphicsAllocation(rootDeviceIndex));
|
||||
surfaces[0] = &dstSvmSurf;
|
||||
surfaces[1] = &srcHostPtrSurf;
|
||||
builder.buildDispatchInfos(dispatchInfo, operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
dispatchInfo.setBuiltinOpParams(operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
|
||||
} else if (copyType == SvmToSvm) {
|
||||
GeneralSurface srcSvmSurf(srcSvmData->gpuAllocations.getGraphicsAllocation(rootDeviceIndex));
|
||||
@@ -385,9 +376,10 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
||||
dstPtr, dstSvmData->gpuAllocations.getGraphicsAllocation(rootDeviceIndex));
|
||||
surfaces[0] = &srcSvmSurf;
|
||||
surfaces[1] = &dstSvmSurf;
|
||||
builder.buildDispatchInfos(dispatchInfo, operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_SVM_MEMCPY>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
dispatchInfo.setBuiltinOpParams(operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_SVM_MEMCPY>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
|
||||
} else {
|
||||
HostPtrSurface srcHostPtrSurf(const_cast<void *>(srcPtr), size);
|
||||
@@ -407,9 +399,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemcpy(cl_bool blockingCopy,
|
||||
surfaces[0] = &srcHostPtrSurf;
|
||||
surfaces[1] = &dstHostPtrSurf;
|
||||
|
||||
builder.buildDispatchInfos(dispatchInfo, operationParams);
|
||||
dispatchInfo.setBuiltinOpParams(operationParams);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, builtInType, numEventsInWaitList, eventWaitList, event, blockingCopy);
|
||||
}
|
||||
if (event) {
|
||||
auto pEvent = castToObjectOrAbort<Event>(*event);
|
||||
@@ -487,8 +479,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueSVMMemFill(void *svmPtr,
|
||||
operationParams.dstOffset = {dstPtrOffset, 0, 0};
|
||||
operationParams.size = {size, 0, 0};
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, operationParams);
|
||||
MultiDispatchInfo dispatchInfo(operationParams);
|
||||
builder.buildDispatchInfos(dispatchInfo);
|
||||
|
||||
GeneralSurface s1(gpuAllocation);
|
||||
GeneralSurface s2(patternAllocation);
|
||||
|
||||
@@ -73,10 +73,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBuffer(
|
||||
if (forceStateless(buffer->getSize())) {
|
||||
eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless;
|
||||
}
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOps,
|
||||
this->getDevice());
|
||||
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
void *srcPtr = const_cast<void *>(ptr);
|
||||
|
||||
@@ -113,10 +109,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBuffer(
|
||||
dc.size = {size, 0, 0};
|
||||
dc.transferAllocation = mapAllocation ? mapAllocation : hostPtrSurf.getAllocation();
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingWrite);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, blockingWrite);
|
||||
|
||||
if (context->isProvidingPerformanceHints()) {
|
||||
context->providePerformanceHint(CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL, CL_ENQUEUE_WRITE_BUFFER_REQUIRES_COPY_DATA, static_cast<cl_mem>(buffer));
|
||||
|
||||
@@ -51,9 +51,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBufferRect(
|
||||
if (forceStateless(buffer->getSize())) {
|
||||
eBuiltInOps = EBuiltInOps::CopyBufferRectStateless;
|
||||
}
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(eBuiltInOps,
|
||||
this->getDevice());
|
||||
BuiltInOwnershipWrapper builtInLock(builder, this->context);
|
||||
|
||||
size_t hostPtrSize = Buffer::calculateHostPtrSize(hostOrigin, region, hostRowPitch, hostSlicePitch);
|
||||
void *srcPtr = const_cast<void *>(ptr);
|
||||
@@ -89,10 +86,9 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteBufferRect(
|
||||
dc.dstRowPitch = bufferRowPitch;
|
||||
dc.dstSlicePitch = bufferSlicePitch;
|
||||
|
||||
MultiDispatchInfo dispatchInfo;
|
||||
builder.buildDispatchInfos(dispatchInfo, dc);
|
||||
MultiDispatchInfo dispatchInfo(dc);
|
||||
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER_RECT>(dispatchInfo, surfaces, numEventsInWaitList, eventWaitList, event, blockingWrite);
|
||||
dispatchBcsOrGpgpuEnqueue<CL_COMMAND_WRITE_BUFFER_RECT>(dispatchInfo, surfaces, eBuiltInOps, numEventsInWaitList, eventWaitList, event, blockingWrite);
|
||||
|
||||
if (context->isProvidingPerformanceHints()) {
|
||||
context->providePerformanceHint(CL_CONTEXT_DIAGNOSTICS_LEVEL_NEUTRAL_INTEL, CL_ENQUEUE_WRITE_BUFFER_RECT_REQUIRES_COPY_DATA, static_cast<cl_mem>(buffer));
|
||||
|
||||
@@ -35,7 +35,6 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteImage(
|
||||
const cl_event *eventWaitList,
|
||||
cl_event *event) {
|
||||
|
||||
MultiDispatchInfo di;
|
||||
auto isMemTransferNeeded = true;
|
||||
if (dstImage->isMemObjZeroCopy()) {
|
||||
size_t hostOffset;
|
||||
@@ -93,7 +92,8 @@ cl_int CommandQueueHw<GfxFamily>::enqueueWriteImage(
|
||||
dc.dstMipLevel = findMipLevel(dstImage->getImageDesc().image_type, origin);
|
||||
}
|
||||
|
||||
builder.buildDispatchInfos(di, dc);
|
||||
MultiDispatchInfo di(dc);
|
||||
builder.buildDispatchInfos(di);
|
||||
|
||||
enqueueHandler<CL_COMMAND_WRITE_IMAGE>(
|
||||
surfaces,
|
||||
|
||||
@@ -87,6 +87,7 @@ struct MultiDispatchInfo {
|
||||
}
|
||||
|
||||
explicit MultiDispatchInfo(Kernel *mainKernel) : mainKernel(mainKernel) {}
|
||||
explicit MultiDispatchInfo(const BuiltinOpParams &operationParams) : builtinOpParams(operationParams) {}
|
||||
MultiDispatchInfo() = default;
|
||||
|
||||
MultiDispatchInfo &operator=(const MultiDispatchInfo &) = delete;
|
||||
|
||||
@@ -165,7 +165,6 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBuffer) {
|
||||
MockBuffer &src = *srcPtr;
|
||||
MockBuffer &dst = *dstPtr;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcMemObj = &src;
|
||||
@@ -174,7 +173,8 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBuffer) {
|
||||
builtinOpsParams.dstPtr = dst.getCpuAddress();
|
||||
builtinOpsParams.size = {dst.getSize(), 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
|
||||
size_t leftSize = reinterpret_cast<uintptr_t>(dst.getCpuAddress()) % MemoryConstants::cacheLineSize;
|
||||
if (leftSize > 0) {
|
||||
@@ -608,14 +608,14 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferAligned) {
|
||||
AlignedBuffer src;
|
||||
AlignedBuffer dst;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcMemObj = &src;
|
||||
builtinOpsParams.dstMemObj = &dst;
|
||||
builtinOpsParams.size = {src.getSize(), 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
|
||||
@@ -653,7 +653,6 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToBufferStateless
|
||||
MockBuffer dstBuffer;
|
||||
dstBuffer.size = static_cast<size_t>(bigSize);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcMemObj = &srcBuffer;
|
||||
@@ -662,7 +661,8 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToBufferStateless
|
||||
builtinOpsParams.dstOffset = {0, 0, 0};
|
||||
builtinOpsParams.size = {static_cast<size_t>(size), 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
EXPECT_TRUE(compareBuiltinOpParams(multiDispatchInfo.peekBuiltinOpParams(), builtinOpsParams));
|
||||
}
|
||||
@@ -695,8 +695,8 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToBufferRectState
|
||||
dc.dstRowPitch = static_cast<size_t>(size);
|
||||
dc.dstSlicePitch = 0;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, dc));
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
EXPECT_TRUE(compareBuiltinOpParams(multiDispatchInfo.peekBuiltinOpParams(), dc));
|
||||
}
|
||||
@@ -724,8 +724,8 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderFillBufferStatelessIsUsedTh
|
||||
dc.dstOffset = {static_cast<size_t>(bigOffset), 0, 0};
|
||||
dc.size = {static_cast<size_t>(size), 0, 0};
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, dc));
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
EXPECT_TRUE(compareBuiltinOpParams(multiDispatchInfo.peekBuiltinOpParams(), dc));
|
||||
}
|
||||
@@ -755,8 +755,8 @@ HWTEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToImageStateles
|
||||
dc.dstRowPitch = 0;
|
||||
dc.dstSlicePitch = 0;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, dc));
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
EXPECT_TRUE(compareBuiltinOpParams(multiDispatchInfo.peekBuiltinOpParams(), dc));
|
||||
|
||||
@@ -789,8 +789,8 @@ HWTEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyImageToBufferStateles
|
||||
dc.dstOffset = {static_cast<size_t>(bigOffset), 0, 0};
|
||||
dc.size = {1, 1, 1};
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, dc));
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
EXPECT_TRUE(compareBuiltinOpParams(multiDispatchInfo.peekBuiltinOpParams(), dc));
|
||||
|
||||
@@ -806,7 +806,6 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferWithSourceOffse
|
||||
AlignedBuffer src;
|
||||
AlignedBuffer dst;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcMemObj = &src;
|
||||
@@ -814,7 +813,8 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferWithSourceOffse
|
||||
builtinOpsParams.dstMemObj = &dst;
|
||||
builtinOpsParams.size = {src.getSize(), 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
|
||||
@@ -832,14 +832,14 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderReadBufferAligned) {
|
||||
auto size = 10 * MemoryConstants::cacheLineSize;
|
||||
auto dstPtr = alignedMalloc(size, MemoryConstants::cacheLineSize);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcMemObj = &srcMemObj;
|
||||
builtinOpsParams.dstPtr = dstPtr;
|
||||
builtinOpsParams.size = {size, 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
|
||||
@@ -867,14 +867,14 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderWriteBufferAligned) {
|
||||
auto srcPtr = alignedMalloc(size, MemoryConstants::cacheLineSize);
|
||||
AlignedBuffer dstMemObj;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams builtinOpsParams;
|
||||
|
||||
builtinOpsParams.srcPtr = srcPtr;
|
||||
builtinOpsParams.dstMemObj = &dstMemObj;
|
||||
builtinOpsParams.size = {size, 0, 0};
|
||||
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo, builtinOpsParams));
|
||||
MultiDispatchInfo multiDispatchInfo(builtinOpsParams);
|
||||
ASSERT_TRUE(builder.buildDispatchInfos(multiDispatchInfo));
|
||||
|
||||
EXPECT_EQ(1u, multiDispatchInfo.size());
|
||||
|
||||
@@ -939,10 +939,10 @@ HWCMDTEST_F(IGFX_GEN8_CORE, BuiltInTests, getSchedulerKernelForSecondTimeDoesNot
|
||||
TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderReturnFalseIfUnsupportedBuildType) {
|
||||
auto &bs = *pDevice->getBuiltIns();
|
||||
BuiltinDispatchInfoBuilder bdib{bs};
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinOpParams params;
|
||||
|
||||
auto ret = bdib.buildDispatchInfos(multiDispatchInfo, params);
|
||||
MultiDispatchInfo multiDispatchInfo(params);
|
||||
auto ret = bdib.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_FALSE(ret);
|
||||
ASSERT_EQ(0U, multiDispatchInfo.size());
|
||||
|
||||
|
||||
@@ -706,14 +706,15 @@ void CloneMdi(MultiDispatchInfo &dst, const MultiDispatchInfo &src) {
|
||||
for (auto &srcDi : src) {
|
||||
dst.push(srcDi);
|
||||
}
|
||||
dst.setBuiltinOpParams(src.peekBuiltinOpParams());
|
||||
}
|
||||
|
||||
struct MockBuilder : BuiltinDispatchInfoBuilder {
|
||||
MockBuilder(NEO::BuiltIns &builtins) : BuiltinDispatchInfoBuilder(builtins) {
|
||||
}
|
||||
bool buildDispatchInfos(MultiDispatchInfo &d, const BuiltinOpParams &conf) const override {
|
||||
bool buildDispatchInfos(MultiDispatchInfo &d) const override {
|
||||
wasBuildDispatchInfosWithBuiltinOpParamsCalled = true;
|
||||
paramsReceived.multiDispatchInfo.setBuiltinOpParams(conf);
|
||||
paramsReceived.multiDispatchInfo.setBuiltinOpParams(d.peekBuiltinOpParams());
|
||||
return true;
|
||||
}
|
||||
bool buildDispatchInfos(MultiDispatchInfo &d, Kernel *kernel,
|
||||
|
||||
@@ -159,7 +159,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DTh
|
||||
enqueueCopyBufferRect2D<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -174,7 +173,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DTh
|
||||
dc.srcSlicePitch = slicePitch;
|
||||
dc.dstRowPitch = rowPitch;
|
||||
dc.dstSlicePitch = slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -204,8 +205,8 @@ HWTEST_F(EnqueueCopyBufferRectTest, WhenCopyingBufferRectStatelessThenStatelessK
|
||||
dc.dstRowPitch = rowPitch;
|
||||
dc.dstSlicePitch = slicePitch;
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -135,7 +135,6 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenIndirectDataGetsAdded) {
|
||||
|
||||
enqueueCopyBuffer();
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -146,7 +145,9 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenIndirectDataGetsAdded) {
|
||||
dc.srcOffset = {EnqueueCopyBufferTraits::srcOffset, 0, 0};
|
||||
dc.dstOffset = {EnqueueCopyBufferTraits::dstOffset, 0, 0};
|
||||
dc.size = {EnqueueCopyBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -163,7 +164,6 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferStatelessThenStatelessKernelIsU
|
||||
auto srcBuffer = std::unique_ptr<Buffer>(BufferHelper<>::create());
|
||||
auto dstBuffer = std::unique_ptr<Buffer>(BufferHelper<>::create());
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBufferStateless,
|
||||
pCmdQ->getDevice());
|
||||
|
||||
@@ -174,7 +174,9 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferStatelessThenStatelessKernelIsU
|
||||
dc.srcOffset = {EnqueueCopyBufferTraits::srcOffset, 0, 0};
|
||||
dc.dstOffset = {EnqueueCopyBufferTraits::dstOffset, 0, 0};
|
||||
dc.size = {EnqueueCopyBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -253,7 +255,7 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentZeroMatchesSourceAd
|
||||
enqueueCopyBufferAndParse<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -264,7 +266,9 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentZeroMatchesSourceAd
|
||||
dc.srcOffset = {EnqueueCopyBufferTraits::srcOffset, 0, 0};
|
||||
dc.dstOffset = {EnqueueCopyBufferTraits::dstOffset, 0, 0};
|
||||
dc.size = {EnqueueCopyBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -280,7 +284,6 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentOneMatchesDestinati
|
||||
enqueueCopyBufferAndParse<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -291,7 +294,9 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentOneMatchesDestinati
|
||||
dc.srcOffset = {EnqueueCopyBufferTraits::srcOffset, 0, 0};
|
||||
dc.dstOffset = {EnqueueCopyBufferTraits::dstOffset, 0, 0};
|
||||
dc.size = {EnqueueCopyBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -97,7 +97,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenIndirectDataGetsAdded)
|
||||
|
||||
EnqueueFillBufferHelper<>::enqueueFillBuffer(pCmdQ, buffer);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -109,7 +108,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenIndirectDataGetsAdded)
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -128,7 +129,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferRightLeftover) {
|
||||
|
||||
EnqueueFillBufferHelper<>::enqueueFillBuffer(pCmdQ, buffer);
|
||||
|
||||
MultiDispatchInfo mdi;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -140,7 +140,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferRightLeftover) {
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {0, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::patternSize, 0, 0};
|
||||
builder.buildDispatchInfos(mdi, dc);
|
||||
|
||||
MultiDispatchInfo mdi(dc);
|
||||
builder.buildDispatchInfos(mdi);
|
||||
EXPECT_EQ(1u, mdi.size());
|
||||
|
||||
auto kernel = mdi.begin()->getKernel();
|
||||
@@ -154,7 +156,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferMiddle) {
|
||||
|
||||
EnqueueFillBufferHelper<>::enqueueFillBuffer(pCmdQ, buffer);
|
||||
|
||||
MultiDispatchInfo mdi;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -166,7 +167,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferMiddle) {
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {0, 0, 0};
|
||||
dc.size = {MemoryConstants::cacheLineSize, 0, 0};
|
||||
builder.buildDispatchInfos(mdi, dc);
|
||||
|
||||
MultiDispatchInfo mdi(dc);
|
||||
builder.buildDispatchInfos(mdi);
|
||||
EXPECT_EQ(1u, mdi.size());
|
||||
|
||||
auto kernel = mdi.begin()->getKernel();
|
||||
@@ -180,7 +183,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferLeftLeftover) {
|
||||
|
||||
EnqueueFillBufferHelper<>::enqueueFillBuffer(pCmdQ, buffer);
|
||||
|
||||
MultiDispatchInfo mdi;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -192,7 +194,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferLeftLeftover) {
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::patternSize, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::patternSize, 0, 0};
|
||||
builder.buildDispatchInfos(mdi, dc);
|
||||
|
||||
MultiDispatchInfo mdi(dc);
|
||||
builder.buildDispatchInfos(mdi);
|
||||
EXPECT_EQ(1u, mdi.size());
|
||||
|
||||
auto kernel = mdi.begin()->getKernel();
|
||||
@@ -273,7 +277,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentZeroShouldMatch
|
||||
enqueueFillBuffer<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -285,7 +289,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentZeroShouldMatch
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -308,7 +314,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, DISABLED_WhenFillingBufferThenArgumentOneSho
|
||||
enqueueFillBuffer<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -320,7 +325,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, DISABLED_WhenFillingBufferThenArgumentOneSho
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -340,7 +347,6 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentTwoShouldMatchP
|
||||
enqueueFillBuffer<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -352,7 +358,9 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentTwoShouldMatchP
|
||||
dc.dstMemObj = buffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -381,8 +389,8 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferStatelessThenStatelessKerne
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -172,7 +172,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadBufferRectTest, WhenReadingBufferThenIndi
|
||||
enqueueReadBufferRect2D<FamilyType>();
|
||||
|
||||
// Extract the kernel used
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -187,7 +186,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadBufferRectTest, WhenReadingBufferThenIndi
|
||||
dc.srcSlicePitch = slicePitch;
|
||||
dc.dstRowPitch = rowPitch;
|
||||
dc.dstSlicePitch = slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -140,7 +140,6 @@ HWTEST_F(EnqueueReadBufferTypeTest, addsIndirectData) {
|
||||
srcBuffer->forceDisallowCPUCopy = true;
|
||||
EnqueueReadBufferHelper<>::enqueueReadBuffer(pCmdQ, srcBuffer.get(), CL_TRUE);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -150,7 +149,9 @@ HWTEST_F(EnqueueReadBufferTypeTest, addsIndirectData) {
|
||||
dc.srcMemObj = srcBuffer.get();
|
||||
dc.srcOffset = {EnqueueReadBufferTraits::offset, 0, 0};
|
||||
dc.size = {srcBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -146,7 +146,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteBufferRectTest, WhenWritingBufferThenInd
|
||||
|
||||
enqueueWriteBufferRect2D<FamilyType>();
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -161,7 +160,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteBufferRectTest, WhenWritingBufferThenInd
|
||||
dc.srcSlicePitch = slicePitch;
|
||||
dc.dstRowPitch = rowPitch;
|
||||
dc.dstSlicePitch = slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -138,7 +138,6 @@ HWTEST_F(EnqueueWriteBufferTypeTest, WhenWritingBufferThenIndirectDataIsAdded) {
|
||||
srcBuffer->forceDisallowCPUCopy = true;
|
||||
EnqueueWriteBufferHelper<>::enqueueWriteBuffer(pCmdQ, srcBuffer.get(), EnqueueWriteBufferTraits::blocking);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -148,7 +147,9 @@ HWTEST_F(EnqueueWriteBufferTypeTest, WhenWritingBufferThenIndirectDataIsAdded) {
|
||||
dc.dstMemObj = srcBuffer.get();
|
||||
dc.dstOffset = {EnqueueWriteBufferTraits::offset, 0, 0};
|
||||
dc.size = {srcBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -76,7 +76,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenFillingBufferThenHeapsAndCommandBufferCo
|
||||
auto retVal = EnqueueFillBufferHelper<>::enqueue(pCmdQ);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -88,7 +87,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenFillingBufferThenHeapsAndCommandBufferCo
|
||||
dc.dstMemObj = dstBuffer;
|
||||
dc.dstOffset = {EnqueueFillBufferTraits::offset, 0, 0};
|
||||
dc.size = {EnqueueFillBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -129,7 +130,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenCopyingBufferThenHeapsAndCommandBufferCo
|
||||
auto retVal = EnqueueCopyBufferHelper<>::enqueue(pCmdQ);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -140,7 +140,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenCopyingBufferThenHeapsAndCommandBufferCo
|
||||
dc.srcOffset = {EnqueueCopyBufferTraits::srcOffset, 0, 0};
|
||||
dc.dstOffset = {EnqueueCopyBufferTraits::dstOffset, 0, 0};
|
||||
dc.size = {EnqueueCopyBufferTraits::size, 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -183,7 +185,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferNonBlockingThenHeapsAndComm
|
||||
srcBuffer,
|
||||
CL_FALSE);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -193,7 +194,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferNonBlockingThenHeapsAndComm
|
||||
dc.srcMemObj = srcBuffer;
|
||||
dc.srcOffset = {EnqueueReadBufferTraits::offset, 0, 0};
|
||||
dc.size = {srcBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -237,7 +240,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferBlockingThenThenHeapsAndCom
|
||||
srcBuffer,
|
||||
CL_TRUE);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -247,7 +249,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferBlockingThenThenHeapsAndCom
|
||||
dc.srcMemObj = srcBuffer;
|
||||
dc.srcOffset = {EnqueueReadBufferTraits::offset, 0, 0};
|
||||
dc.size = {srcBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -291,7 +295,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferNonBlockingThenHeapsAndComm
|
||||
CL_FALSE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -301,7 +304,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferNonBlockingThenHeapsAndComm
|
||||
dc.dstMemObj = dstBuffer;
|
||||
dc.dstOffset = {EnqueueWriteBufferTraits::offset, 0, 0};
|
||||
dc.size = {dstBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -342,7 +347,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferBlockingThenHeapsAndCommand
|
||||
CL_TRUE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -352,7 +356,9 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferBlockingThenHeapsAndCommand
|
||||
dc.dstMemObj = dstBuffer;
|
||||
dc.dstOffset = {EnqueueWriteBufferTraits::offset, 0, 0};
|
||||
dc.size = {dstBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto usedAfterCS = commandStream.getUsed();
|
||||
@@ -377,7 +383,6 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferBlockingThenHeapsAndCommand
|
||||
}
|
||||
|
||||
HWTEST_F(GetSizeRequiredBufferTest, givenMultipleKernelRequiringSshWhenTotalSizeIsComputedThenItIsProperlyAligned) {
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -387,10 +392,13 @@ HWTEST_F(GetSizeRequiredBufferTest, givenMultipleKernelRequiringSshWhenTotalSize
|
||||
dc.dstMemObj = dstBuffer;
|
||||
dc.dstOffset = {EnqueueWriteBufferTraits::offset, 0, 0};
|
||||
dc.size = {dstBuffer->getSize(), 0, 0};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
|
||||
auto sizeSSH = multiDispatchInfo.begin()->getKernel()->getSurfaceStateHeapSize();
|
||||
sizeSSH += sizeSSH ? FamilyType::BINDING_TABLE_STATE::SURFACESTATEPOINTER_ALIGN_SIZE : 0;
|
||||
|
||||
@@ -67,7 +67,6 @@ HWTEST_F(GetSizeRequiredImageTest, WhenCopyingImageThenHeapsAndCommandBufferCons
|
||||
auto retVal = EnqueueCopyImageHelper<>::enqueueCopyImage(pCmdQ);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -78,7 +77,9 @@ HWTEST_F(GetSizeRequiredImageTest, WhenCopyingImageThenHeapsAndCommandBufferCons
|
||||
dc.srcOffset = EnqueueCopyImageTraits::srcOrigin;
|
||||
dc.dstOffset = EnqueueCopyImageTraits::dstOrigin;
|
||||
dc.size = {1, 1, 1};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -170,7 +171,6 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageNonBlockingThenHeapsAndComman
|
||||
CL_FALSE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -182,7 +182,9 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageNonBlockingThenHeapsAndComman
|
||||
dc.size = EnqueueReadImageTraits::region;
|
||||
dc.srcRowPitch = EnqueueReadImageTraits::rowPitch;
|
||||
dc.srcSlicePitch = EnqueueReadImageTraits::slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -224,7 +226,6 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageBlockingThenHeapsAndCommandBu
|
||||
CL_TRUE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -236,7 +237,9 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageBlockingThenHeapsAndCommandBu
|
||||
dc.size = EnqueueReadImageTraits::region;
|
||||
dc.srcRowPitch = EnqueueReadImageTraits::rowPitch;
|
||||
dc.srcSlicePitch = EnqueueReadImageTraits::slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -278,7 +281,6 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageNonBlockingThenHeapsAndComman
|
||||
CL_FALSE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -290,7 +292,9 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageNonBlockingThenHeapsAndComman
|
||||
dc.size = EnqueueWriteImageTraits::region;
|
||||
dc.dstRowPitch = EnqueueWriteImageTraits::rowPitch;
|
||||
dc.dstSlicePitch = EnqueueWriteImageTraits::slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -332,7 +336,6 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageBlockingThenHeapsAndCommandBu
|
||||
CL_TRUE);
|
||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d,
|
||||
pCmdQ->getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -344,7 +347,9 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageBlockingThenHeapsAndCommandBu
|
||||
dc.size = EnqueueWriteImageTraits::region;
|
||||
dc.dstRowPitch = EnqueueWriteImageTraits::rowPitch;
|
||||
dc.dstSlicePitch = EnqueueWriteImageTraits::slicePitch;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -66,7 +66,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenProgramInterfaceDescriptor
|
||||
std::unique_ptr<Image> dstImage(Image2dHelper<>::create(pContext));
|
||||
ASSERT_NE(nullptr, dstImage.get());
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
cmdQ.getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -77,7 +76,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenProgramInterfaceDescriptor
|
||||
dc.srcOffset = {0, 0, 0};
|
||||
dc.dstOffset = {0, 0, 0};
|
||||
dc.size = {1, 1, 1};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -138,7 +139,6 @@ HWTEST_F(HardwareCommandsTest, WhenCrossThreadDataIsCreatedThenOnlyRequiredSpace
|
||||
std::unique_ptr<Image> dstImage(Image2dHelper<>::create(pContext));
|
||||
ASSERT_NE(nullptr, dstImage.get());
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
cmdQ.getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -149,7 +149,9 @@ HWTEST_F(HardwareCommandsTest, WhenCrossThreadDataIsCreatedThenOnlyRequiredSpace
|
||||
dc.srcOffset = {0, 0, 0};
|
||||
dc.dstOffset = {0, 0, 0};
|
||||
dc.size = {1, 1, 1};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -286,7 +288,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenAllocatingIndirectStateRes
|
||||
std::unique_ptr<Image> dstImage(Image2dHelper<>::create(pContext));
|
||||
ASSERT_NE(nullptr, dstImage.get());
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
cmdQ.getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -297,7 +298,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenAllocatingIndirectStateRes
|
||||
dc.srcOffset = {0, 0, 0};
|
||||
dc.dstOffset = {0, 0, 0};
|
||||
dc.size = {1, 1, 1};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -504,7 +507,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, whenSendingIndirectStateThenKe
|
||||
|
||||
std::unique_ptr<Image> img(Image2dHelper<>::create(pContext));
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d,
|
||||
cmdQ.getDevice());
|
||||
|
||||
@@ -512,7 +514,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, whenSendingIndirectStateThenKe
|
||||
dc.srcMemObj = img.get();
|
||||
dc.dstMemObj = img.get();
|
||||
dc.size = {1, 1, 1};
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
ASSERT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
@@ -586,7 +590,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenSendingIndirectStateThenBi
|
||||
std::unique_ptr<Image> dstImage(Image2dHelper<>::create(pContext));
|
||||
ASSERT_NE(nullptr, dstImage.get());
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo;
|
||||
auto &builder = BuiltInDispatchBuilderOp::getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d,
|
||||
cmdQ.getDevice());
|
||||
ASSERT_NE(nullptr, &builder);
|
||||
@@ -598,7 +601,9 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, WhenSendingIndirectStateThenBi
|
||||
dc.size = {1, 1, 1};
|
||||
dc.dstRowPitch = 0;
|
||||
dc.dstSlicePitch = 0;
|
||||
builder.buildDispatchInfos(multiDispatchInfo, dc);
|
||||
|
||||
MultiDispatchInfo multiDispatchInfo(dc);
|
||||
builder.buildDispatchInfos(multiDispatchInfo);
|
||||
EXPECT_NE(0u, multiDispatchInfo.size());
|
||||
|
||||
auto kernel = multiDispatchInfo.begin()->getKernel();
|
||||
|
||||
@@ -20,18 +20,19 @@ class MockBuiltinDispatchInfoBuilder : public BuiltinDispatchInfoBuilder {
|
||||
|
||||
virtual void validateInput(const BuiltinOpParams &conf) const {};
|
||||
|
||||
bool buildDispatchInfos(MultiDispatchInfo &mdi, const BuiltinOpParams &conf) const override {
|
||||
validateInput(conf);
|
||||
builtinOpParams = conf;
|
||||
originalBuilder->buildDispatchInfos(mdi, conf);
|
||||
bool buildDispatchInfos(MultiDispatchInfo &mdi) const override {
|
||||
validateInput(mdi.peekBuiltinOpParams());
|
||||
|
||||
originalBuilder->buildDispatchInfos(mdi);
|
||||
for (auto &di : mdi) {
|
||||
multiDispatchInfo.push(di);
|
||||
}
|
||||
multiDispatchInfo.setBuiltinOpParams(mdi.peekBuiltinOpParams());
|
||||
return true;
|
||||
}
|
||||
|
||||
const BuiltinOpParams *getBuiltinOpParams() const {
|
||||
return &builtinOpParams;
|
||||
return &multiDispatchInfo.peekBuiltinOpParams();
|
||||
};
|
||||
const MultiDispatchInfo *getMultiDispatchInfo() const {
|
||||
return &multiDispatchInfo;
|
||||
@@ -48,7 +49,6 @@ class MockBuiltinDispatchInfoBuilder : public BuiltinDispatchInfoBuilder {
|
||||
}
|
||||
|
||||
protected:
|
||||
mutable BuiltinOpParams builtinOpParams;
|
||||
mutable MultiDispatchInfo multiDispatchInfo;
|
||||
BuiltinDispatchInfoBuilder *originalBuilder;
|
||||
bool withFailureInjection = false;
|
||||
|
||||
Reference in New Issue
Block a user