diff --git a/core/unit_tests/compiler_interface/compiler_cache_tests.cpp b/core/unit_tests/compiler_interface/compiler_cache_tests.cpp index 521779a332..6afc997b00 100644 --- a/core/unit_tests/compiler_interface/compiler_cache_tests.cpp +++ b/core/unit_tests/compiler_interface/compiler_cache_tests.cpp @@ -314,7 +314,7 @@ TEST(CompilerInterfaceCachedTests, GivenCachedBinaryWhenBuildingThenSuccessIsRet TEST(CompilerInterfaceCachedTests, givenKernelWithoutIncludesAndBinaryInCacheWhenCompilationRequestedThenFCLIsNotCalled) { MockClDevice device{new MockDevice}; MockContext context(&device, true); - MockProgram program(*device.getExecutionEnvironment(), &context, false); + MockProgram program(*device.getExecutionEnvironment(), &context, false, nullptr); TranslationInput inputArgs{IGC::CodeType::oclC, IGC::CodeType::oclGenBin}; auto src = "__kernel k() {}"; @@ -347,7 +347,7 @@ TEST(CompilerInterfaceCachedTests, givenKernelWithoutIncludesAndBinaryInCacheWhe TEST(CompilerInterfaceCachedTests, givenKernelWithIncludesAndBinaryInCacheWhenCompilationRequestedThenFCLIsCalled) { MockClDevice device{new MockDevice}; MockContext context(&device, true); - MockProgram program(*device.getExecutionEnvironment(), &context, false); + MockProgram program(*device.getExecutionEnvironment(), &context, false, nullptr); TranslationInput inputArgs{IGC::CodeType::oclC, IGC::CodeType::oclGenBin}; auto src = "#include \"file.h\"\n__kernel k() {}"; diff --git a/runtime/api/api.cpp b/runtime/api/api.cpp index 97312f1eda..a687281228 100644 --- a/runtime/api/api.cpp +++ b/runtime/api/api.cpp @@ -1367,11 +1367,9 @@ cl_program CL_API_CALL clCreateProgramWithBuiltInKernels(cl_context context, if (retVal == CL_SUCCESS) { for (cl_uint i = 0; i < numDevices; i++) { - auto pContext = castToObject(context); auto pDevice = castToObject(*deviceList); program = pDevice->getExecutionEnvironment()->getBuiltIns()->createBuiltInProgram( - *pContext, pDevice->getDevice(), kernelNames, retVal); @@ -1489,7 +1487,7 @@ cl_program CL_API_CALL clLinkProgram(cl_context context, pContext = castToObject(context); } if (pContext != nullptr) { - program = new Program(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false); + program = new Program(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, &pContext->getDevice(0)->getDevice()); retVal = program->link(numDevices, deviceList, options, numInputPrograms, inputPrograms, funcNotify, userData); diff --git a/runtime/built_ins/aux_translation_builtin.h b/runtime/built_ins/aux_translation_builtin.h index 3bc62f6200..7637a077d2 100644 --- a/runtime/built_ins/aux_translation_builtin.h +++ b/runtime/built_ins/aux_translation_builtin.h @@ -17,7 +17,7 @@ namespace NEO { template <> class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device); + BuiltInOp(BuiltIns &kernelsLib, Device &device); template bool buildDispatchInfosForAuxTranslation(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const { size_t kernelInstanceNumber = 0; diff --git a/runtime/built_ins/built_ins.cpp b/runtime/built_ins/built_ins.cpp index 64be639b5d..c52caf8039 100644 --- a/runtime/built_ins/built_ins.cpp +++ b/runtime/built_ins/built_ins.cpp @@ -55,7 +55,8 @@ const SipKernel &BuiltIns::getSipKernel(SipKernelType type, Device &device) { nullptr, sipBinary, sipBinary.size(), - &retVal); + &retVal, + &device); DEBUG_BREAK_IF(retVal != CL_SUCCESS); UNRECOVERABLE_IF(program == nullptr); @@ -94,7 +95,6 @@ static const std::tuple mediaBuiltIns[] = { // Pointer to program with built in kernels is returned to the user through API // call and user is responsible for releasing it by calling clReleaseProgram. Program *BuiltIns::createBuiltInProgram( - Context &context, Device &device, const char *kernelNames, int &errcodeRet) { @@ -123,16 +123,16 @@ Program *BuiltIns::createBuiltInProgram( Program *pBuiltInProgram = nullptr; - pBuiltInProgram = Program::create(programSourceStr.c_str(), &context, device, true, nullptr); + pBuiltInProgram = Program::create(programSourceStr.c_str(), nullptr, device, true, nullptr); if (pBuiltInProgram) { std::unordered_map builtinsBuilders; builtinsBuilders["block_motion_estimate_intel"] = - &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, context, device); + &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, device); builtinsBuilders["block_advanced_motion_estimate_check_intel"] = - &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, context, device); + &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, device); builtinsBuilders["block_advanced_motion_estimate_bidirectional_check_intel"] = - &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, context, device); + &device.getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, device); errcodeRet = pBuiltInProgram->build( &device, mediaKernelsBuildOptions, @@ -147,9 +147,9 @@ Program *BuiltIns::createBuiltInProgram( template <> class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferToBuffer, "", "CopyBufferToBufferLeftLeftover", kernLeftLeftover, @@ -241,9 +241,9 @@ class BuiltInOp : public BuiltinDispatchInfoBui template <> class BuiltInOp : public BuiltInOp { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltInOp(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferToBufferStateless, CompilerOptions::greaterThan4gbBuffersRequired, "CopyBufferToBufferLeftLeftover", kernLeftLeftover, @@ -259,9 +259,9 @@ class BuiltInOp : public BuiltInOp class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib), kernelBytes{nullptr} { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferRect, "", "CopyBufferRectBytes2d", kernelBytes[0], @@ -363,9 +363,9 @@ class BuiltInOp : public BuiltinDispatchInfoBuilder template <> class BuiltInOp : public BuiltInOp { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltInOp(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferRectStateless, CompilerOptions::greaterThan4gbBuffersRequired, "CopyBufferRectBytes2d", kernelBytes[0], @@ -380,9 +380,9 @@ class BuiltInOp : public BuiltInOp class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::FillBuffer, "", "FillBufferLeftLeftover", kernLeftLeftover, @@ -463,8 +463,8 @@ class BuiltInOp : public BuiltinDispatchInfoBuilder { template <> class BuiltInOp : public BuiltInOp { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) : BuiltInOp(kernelsLib) { - populate(context, device, + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltInOp(kernelsLib) { + populate(device, EBuiltInOps::FillBufferStateless, CompilerOptions::greaterThan4gbBuffersRequired, "FillBufferLeftLeftover", kernLeftLeftover, @@ -479,9 +479,9 @@ class BuiltInOp : public BuiltInOp class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferToImage3d, "", "CopyBufferToImage3dBytes", kernelBytes[0], @@ -572,9 +572,9 @@ class BuiltInOp : public BuiltinDispatchInfoBu template <> class BuiltInOp : public BuiltInOp { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltInOp(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyBufferToImage3dStateless, CompilerOptions::greaterThan4gbBuffersRequired, "CopyBufferToImage3dBytes", kernelBytes[0], @@ -592,9 +592,9 @@ class BuiltInOp : public BuiltInOp class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyImage3dToBuffer, "", "CopyImage3dToBufferBytes", kernelBytes[0], @@ -686,9 +686,9 @@ class BuiltInOp : public BuiltinDispatchInfoBu template <> class BuiltInOp : public BuiltInOp { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltInOp(kernelsLib) { - populate(context, device, + populate(device, EBuiltInOps::CopyImage3dToBufferStateless, CompilerOptions::greaterThan4gbBuffersRequired, "CopyImage3dToBufferBytes", kernelBytes[0], @@ -706,9 +706,9 @@ class BuiltInOp : public BuiltInOp class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib), kernel(nullptr) { - populate(context, device, + populate(device, EBuiltInOps::CopyImageToImage3d, "", "CopyImageToImage3d", kernel); @@ -771,9 +771,9 @@ class BuiltInOp : public BuiltinDispatchInfoBui template <> class BuiltInOp : public BuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) + BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib), kernel(nullptr) { - populate(context, device, + populate(device, EBuiltInOps::FillImage3d, "", "FillImage3d", kernel); @@ -826,60 +826,60 @@ class BuiltInOp : public BuiltinDispatchInfoBuilder { Kernel *kernel; }; -BuiltinDispatchInfoBuilder &BuiltIns::getBuiltinDispatchInfoBuilder(EBuiltInOps::Type operation, Context &context, Device &device) { +BuiltinDispatchInfoBuilder &BuiltIns::getBuiltinDispatchInfoBuilder(EBuiltInOps::Type operation, Device &device) { uint32_t operationId = static_cast(operation); auto &operationBuilder = BuiltinOpsBuilders[operationId]; switch (operation) { case EBuiltInOps::CopyBufferToBuffer: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyBufferToBufferStateless: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyBufferRect: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyBufferRectStateless: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::FillBuffer: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::FillBufferStateless: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyBufferToImage3d: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyBufferToImage3dStateless: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyImage3dToBuffer: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyImage3dToBufferStateless: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::CopyImageToImage3d: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::FillImage3d: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::VmeBlockMotionEstimateIntel: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; case EBuiltInOps::AuxTranslation: - std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, context, device); }); + std::call_once(operationBuilder.second, [&] { operationBuilder.first = std::make_unique>(*this, device); }); break; default: - return getUnknownDispatchInfoBuilder(operation, context, device); + return getUnknownDispatchInfoBuilder(operation, device); } return *operationBuilder.first; } diff --git a/runtime/built_ins/built_ins.h b/runtime/built_ins/built_ins.h index 82c49d7d9b..0e9dfd9602 100644 --- a/runtime/built_ins/built_ins.h +++ b/runtime/built_ins/built_ins.h @@ -140,7 +140,7 @@ class BuiltinsLib { BuiltinsLib(); BuiltinCode getBuiltinCode(EBuiltInOps::Type builtin, BuiltinCode::ECodeType requestedCodeType, Device &device); - static std::unique_ptr createProgramFromCode(const BuiltinCode &bc, Context &context, Device &device); + static std::unique_ptr createProgramFromCode(const BuiltinCode &bc, Device &device); protected: BuiltinResourceT getBuiltinResource(EBuiltInOps::Type builtin, BuiltinCode::ECodeType requestedCodeType, Device &device); @@ -167,15 +167,14 @@ class BuiltIns { public: std::pair, std::once_flag> BuiltinOpsBuilders[static_cast(EBuiltInOps::COUNT)]; - BuiltinDispatchInfoBuilder &getBuiltinDispatchInfoBuilder(EBuiltInOps::Type op, Context &context, Device &device); - BuiltinDispatchInfoBuilder &getUnknownDispatchInfoBuilder(EBuiltInOps::Type op, Context &context, Device &device); - std::unique_ptr setBuiltinDispatchInfoBuilder(EBuiltInOps::Type op, Context &context, Device &device, + BuiltinDispatchInfoBuilder &getBuiltinDispatchInfoBuilder(EBuiltInOps::Type op, Device &device); + BuiltinDispatchInfoBuilder &getUnknownDispatchInfoBuilder(EBuiltInOps::Type op, Device &device); + std::unique_ptr setBuiltinDispatchInfoBuilder(EBuiltInOps::Type op, Device &device, std::unique_ptr newBuilder); BuiltIns(); virtual ~BuiltIns(); Program *createBuiltInProgram( - Context &context, Device &device, const char *kernelNames, int &errcodeRet); diff --git a/runtime/built_ins/built_ins.inl b/runtime/built_ins/built_ins.inl index 231153048b..b941626c33 100644 --- a/runtime/built_ins/built_ins.inl +++ b/runtime/built_ins/built_ins.inl @@ -11,8 +11,8 @@ #include "runtime/mem_obj/buffer.h" namespace NEO { -BuiltInOp::BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { - BuiltinDispatchInfoBuilder::populate(context, device, EBuiltInOps::AuxTranslation, "", "fullCopy", baseKernel); +BuiltInOp::BuiltInOp(BuiltIns &kernelsLib, Device &device) : BuiltinDispatchInfoBuilder(kernelsLib) { + BuiltinDispatchInfoBuilder::populate(device, EBuiltInOps::AuxTranslation, "", "fullCopy", baseKernel); resizeKernelInstances(5); } diff --git a/runtime/built_ins/built_ins_storage.cpp b/runtime/built_ins/built_ins_storage.cpp index 5fc39d79df..7c4f01482d 100644 --- a/runtime/built_ins/built_ins_storage.cpp +++ b/runtime/built_ins/built_ins_storage.cpp @@ -182,7 +182,7 @@ BuiltinCode BuiltinsLib::getBuiltinCode(EBuiltInOps::Type builtin, BuiltinCode:: return ret; } -std::unique_ptr BuiltinsLib::createProgramFromCode(const BuiltinCode &bc, Context &context, Device &device) { +std::unique_ptr BuiltinsLib::createProgramFromCode(const BuiltinCode &bc, Device &device) { std::unique_ptr ret; const char *data = bc.resource.data(); size_t dataLen = bc.resource.size(); @@ -192,10 +192,10 @@ std::unique_ptr BuiltinsLib::createProgramFromCode(const BuiltinCode &b break; case BuiltinCode::ECodeType::Source: case BuiltinCode::ECodeType::Intermediate: - ret.reset(Program::create(data, &context, device, true, &err)); + ret.reset(Program::create(data, nullptr, device, true, &err)); break; case BuiltinCode::ECodeType::Binary: - ret.reset(Program::createFromGenBinary(*device.getExecutionEnvironment(), &context, data, dataLen, true, nullptr)); + ret.reset(Program::createFromGenBinary(*device.getExecutionEnvironment(), nullptr, data, dataLen, true, nullptr, &device)); break; } return ret; diff --git a/runtime/built_ins/builtins_dispatch_builder.h b/runtime/built_ins/builtins_dispatch_builder.h index 5a8f5a7187..b10bdf955c 100644 --- a/runtime/built_ins/builtins_dispatch_builder.h +++ b/runtime/built_ins/builtins_dispatch_builder.h @@ -57,7 +57,7 @@ class BuiltinDispatchInfoBuilder { virtual ~BuiltinDispatchInfoBuilder() = default; template - void populate(Context &context, Device &device, EBuiltInOps::Type operation, const char *options, KernelsDescArgsT &&... desc); + void populate(Device &device, EBuiltInOps::Type operation, const char *options, KernelsDescArgsT &&... desc); virtual bool buildDispatchInfos(MultiDispatchInfo &multiDispatchInfo, const BuiltinOpParams &operationParams) const { return false; diff --git a/runtime/built_ins/populate_built_ins.inl b/runtime/built_ins/populate_built_ins.inl index eeed8bc29d..81f4fcdc31 100644 --- a/runtime/built_ins/populate_built_ins.inl +++ b/runtime/built_ins/populate_built_ins.inl @@ -7,9 +7,9 @@ namespace NEO { template -void BuiltinDispatchInfoBuilder::populate(Context &context, Device &device, EBuiltInOps::Type op, const char *options, KernelsDescArgsT &&... desc) { +void BuiltinDispatchInfoBuilder::populate(Device &device, EBuiltInOps::Type op, const char *options, KernelsDescArgsT &&... desc) { auto src = kernelsLib.getBuiltinsLib().getBuiltinCode(op, BuiltinCode::ECodeType::Any, device); - prog.reset(BuiltinsLib::createProgramFromCode(src, context, device).release()); + prog.reset(BuiltinsLib::createProgramFromCode(src, device).release()); prog->build(0, nullptr, options, nullptr, nullptr, kernelsLib.isCacheingEnabled()); grabKernels(std::forward(desc)...); } diff --git a/runtime/built_ins/unknown_built_in_name.cpp b/runtime/built_ins/unknown_built_in_name.cpp index da65746620..47b416209f 100644 --- a/runtime/built_ins/unknown_built_in_name.cpp +++ b/runtime/built_ins/unknown_built_in_name.cpp @@ -13,7 +13,7 @@ const char *getUnknownBuiltinAsString(EBuiltInOps::Type builtin) { return "unknown"; } -BuiltinDispatchInfoBuilder &BuiltIns::getUnknownDispatchInfoBuilder(EBuiltInOps::Type operation, Context &context, Device &device) { +BuiltinDispatchInfoBuilder &BuiltIns::getUnknownDispatchInfoBuilder(EBuiltInOps::Type operation, Device &device) { throw std::runtime_error("getBuiltinDispatchInfoBuilder failed"); } } // namespace NEO diff --git a/runtime/built_ins/vme_dispatch_builder.h b/runtime/built_ins/vme_dispatch_builder.h index e4f358228b..41bd9285ff 100644 --- a/runtime/built_ins/vme_dispatch_builder.h +++ b/runtime/built_ins/vme_dispatch_builder.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2019 Intel Corporation + * Copyright (C) 2017-2020 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -18,10 +18,10 @@ namespace NEO { class VmeBuiltinDispatchInfoBuilder : public BuiltinDispatchInfoBuilder { public: - VmeBuiltinDispatchInfoBuilder(BuiltIns &kernelsLib, Context &context, Device &device, EBuiltInOps::Type builtinOp, + VmeBuiltinDispatchInfoBuilder(BuiltIns &kernelsLib, Device &device, EBuiltInOps::Type builtinOp, const char *kernelName) : BuiltinDispatchInfoBuilder(kernelsLib) { - populate(context, device, builtinOp, + populate(device, builtinOp, mediaKernelsBuildOptions, kernelName, vmeKernel); widthArgNum = vmeKernel->getKernelInfo().getArgNumByName("width"); @@ -240,17 +240,17 @@ class VmeBuiltinDispatchInfoBuilder : public BuiltinDispatchInfoBuilder { template <> class BuiltInOp : public VmeBuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) - : VmeBuiltinDispatchInfoBuilder(kernelsLib, context, device, + BuiltInOp(BuiltIns &kernelsLib, Device &device) + : VmeBuiltinDispatchInfoBuilder(kernelsLib, device, EBuiltInOps::VmeBlockMotionEstimateIntel, "block_motion_estimate_intel") { } }; class AdvancedVmeBuiltinDispatchInfoBuilder : public VmeBuiltinDispatchInfoBuilder { public: - AdvancedVmeBuiltinDispatchInfoBuilder(BuiltIns &kernelsLib, Context &context, Device &device, EBuiltInOps::Type builtinOp, + AdvancedVmeBuiltinDispatchInfoBuilder(BuiltIns &kernelsLib, Device &device, EBuiltInOps::Type builtinOp, const char *kernelName) - : VmeBuiltinDispatchInfoBuilder(kernelsLib, context, device, builtinOp, + : VmeBuiltinDispatchInfoBuilder(kernelsLib, device, builtinOp, kernelName) { flagsArgNum = this->vmeKernel->getKernelInfo().getArgNumByName("flags"); intraSrcImgArgNum = this->vmeKernel->getKernelInfo().getArgNumByName("intraSrcImg"); @@ -440,8 +440,8 @@ class AdvancedVmeBuiltinDispatchInfoBuilder : public VmeBuiltinDispatchInfoBuild template <> class BuiltInOp : public AdvancedVmeBuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) - : AdvancedVmeBuiltinDispatchInfoBuilder(kernelsLib, context, device, EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, + BuiltInOp(BuiltIns &kernelsLib, Device &device) + : AdvancedVmeBuiltinDispatchInfoBuilder(kernelsLib, device, EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, "block_advanced_motion_estimate_check_intel") { } @@ -464,8 +464,8 @@ class BuiltInOp : public template <> class BuiltInOp : public AdvancedVmeBuiltinDispatchInfoBuilder { public: - BuiltInOp(BuiltIns &kernelsLib, Context &context, Device &device) - : AdvancedVmeBuiltinDispatchInfoBuilder(kernelsLib, context, device, EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, + BuiltInOp(BuiltIns &kernelsLib, Device &device) + : AdvancedVmeBuiltinDispatchInfoBuilder(kernelsLib, device, EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, "block_advanced_motion_estimate_bidirectional_check_intel") { } diff --git a/runtime/command_queue/command_queue_hw_base.inl b/runtime/command_queue/command_queue_hw_base.inl index d9a3e5f73f..71a27f96ed 100644 --- a/runtime/command_queue/command_queue_hw_base.inl +++ b/runtime/command_queue/command_queue_hw_base.inl @@ -108,7 +108,7 @@ void CommandQueueHw::dispatchAuxTranslationBuiltin(MultiDispatchInfo &mu return; } - auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, getContext(), getDevice()); + auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, getDevice()); auto &auxTranslationBuilder = static_cast &>(builder); BuiltinOpParams dispatchParams; diff --git a/runtime/command_queue/enqueue_common.h b/runtime/command_queue/enqueue_common.h index 88a43157a7..8838e76375 100644 --- a/runtime/command_queue/enqueue_common.h +++ b/runtime/command_queue/enqueue_common.h @@ -61,7 +61,7 @@ void CommandQueueHw::enqueueHandler(Surface *(&surfaces)[surfaceCount forceDispatchScheduler(multiDispatchInfo); } else { if (kernel->isAuxTranslationRequired()) { - auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, getContext(), getDevice()); + auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, getDevice()); builtInLock.takeOwnership(builder, this->context); kernel->fillWithBuffersForAuxTranslation(memObjsForAuxTranslation); multiDispatchInfo.setMemObjsForAuxTranslation(memObjsForAuxTranslation); diff --git a/runtime/command_queue/enqueue_copy_buffer.h b/runtime/command_queue/enqueue_copy_buffer.h index 42f9ef1a9d..076f2fb286 100644 --- a/runtime/command_queue/enqueue_copy_buffer.h +++ b/runtime/command_queue/enqueue_copy_buffer.h @@ -37,7 +37,6 @@ cl_int CommandQueueHw::enqueueCopyBuffer( } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOpsType, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_copy_buffer_rect.h b/runtime/command_queue/enqueue_copy_buffer_rect.h index eae46e251b..87e2f0f4f5 100644 --- a/runtime/command_queue/enqueue_copy_buffer_rect.h +++ b/runtime/command_queue/enqueue_copy_buffer_rect.h @@ -38,7 +38,6 @@ cl_int CommandQueueHw::enqueueCopyBufferRect( } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_copy_buffer_to_image.h b/runtime/command_queue/enqueue_copy_buffer_to_image.h index bb4478e9f7..2d8043deff 100644 --- a/runtime/command_queue/enqueue_copy_buffer_to_image.h +++ b/runtime/command_queue/enqueue_copy_buffer_to_image.h @@ -36,7 +36,6 @@ cl_int CommandQueueHw::enqueueCopyBufferToImage( } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOpsType, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_copy_image.h b/runtime/command_queue/enqueue_copy_image.h index a6fab24f6c..878df54dcd 100644 --- a/runtime/command_queue/enqueue_copy_image.h +++ b/runtime/command_queue/enqueue_copy_image.h @@ -34,7 +34,7 @@ cl_int CommandQueueHw::enqueueCopyImage( MultiDispatchInfo di; auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); MemObjSurface srcImgSurf(srcImage); diff --git a/runtime/command_queue/enqueue_copy_image_to_buffer.h b/runtime/command_queue/enqueue_copy_image_to_buffer.h index c9eb3fe975..105578ed6e 100644 --- a/runtime/command_queue/enqueue_copy_image_to_buffer.h +++ b/runtime/command_queue/enqueue_copy_image_to_buffer.h @@ -35,7 +35,6 @@ cl_int CommandQueueHw::enqueueCopyImageToBuffer( eBuiltInOpsType = EBuiltInOps::CopyImage3dToBufferStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOpsType, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_fill_buffer.h b/runtime/command_queue/enqueue_fill_buffer.h index 59377123d2..3f5a83a7c0 100644 --- a/runtime/command_queue/enqueue_fill_buffer.h +++ b/runtime/command_queue/enqueue_fill_buffer.h @@ -50,7 +50,6 @@ cl_int CommandQueueHw::enqueueFillBuffer( } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_fill_image.h b/runtime/command_queue/enqueue_fill_image.h index fa4baa9076..248dcd177e 100644 --- a/runtime/command_queue/enqueue_fill_image.h +++ b/runtime/command_queue/enqueue_fill_image.h @@ -32,7 +32,7 @@ cl_int CommandQueueHw::enqueueFillImage( MultiDispatchInfo di; auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::FillImage3d, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); MemObjSurface dstImgSurf(image); diff --git a/runtime/command_queue/enqueue_read_buffer.h b/runtime/command_queue/enqueue_read_buffer.h index bc8f83dd06..bb86aebf4a 100644 --- a/runtime/command_queue/enqueue_read_buffer.h +++ b/runtime/command_queue/enqueue_read_buffer.h @@ -76,7 +76,6 @@ cl_int CommandQueueHw::enqueueReadBuffer( eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_read_buffer_rect.h b/runtime/command_queue/enqueue_read_buffer_rect.h index 8e7686a193..96c749c3cf 100644 --- a/runtime/command_queue/enqueue_read_buffer_rect.h +++ b/runtime/command_queue/enqueue_read_buffer_rect.h @@ -51,7 +51,6 @@ cl_int CommandQueueHw::enqueueReadBufferRect( eBuiltInOps = EBuiltInOps::CopyBufferRectStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_read_image.h b/runtime/command_queue/enqueue_read_image.h index ad6252fa23..fd59441aee 100644 --- a/runtime/command_queue/enqueue_read_image.h +++ b/runtime/command_queue/enqueue_read_image.h @@ -55,7 +55,7 @@ cl_int CommandQueueHw::enqueueReadImage( } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_svm.h b/runtime/command_queue/enqueue_svm.h index 4d03b73df7..6e0f964bca 100644 --- a/runtime/command_queue/enqueue_svm.h +++ b/runtime/command_queue/enqueue_svm.h @@ -107,7 +107,7 @@ cl_int CommandQueueHw::enqueueSVMMap(cl_bool blockingMap, MultiDispatchInfo dispatchInfo; auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); GeneralSurface dstSurface(svmData->cpuAllocation); @@ -200,7 +200,7 @@ cl_int CommandQueueHw::enqueueSVMUnmap(void *svmPtr, MultiDispatchInfo dispatchInfo; auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); GeneralSurface dstSurface(svmData->gpuAllocation); @@ -335,7 +335,6 @@ cl_int CommandQueueHw::enqueueSVMMemcpy(cl_bool blockingCopy, } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(builtInType, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); MultiDispatchInfo dispatchInfo; @@ -478,7 +477,6 @@ cl_int CommandQueueHw::enqueueSVMMemFill(void *svmPtr, } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(builtInType, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_write_buffer.h b/runtime/command_queue/enqueue_write_buffer.h index 3a5fc6d3da..bc09d4708f 100644 --- a/runtime/command_queue/enqueue_write_buffer.h +++ b/runtime/command_queue/enqueue_write_buffer.h @@ -72,7 +72,6 @@ cl_int CommandQueueHw::enqueueWriteBuffer( eBuiltInOps = EBuiltInOps::CopyBufferToBufferStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_write_buffer_rect.h b/runtime/command_queue/enqueue_write_buffer_rect.h index 777b6c2aa8..61d71762c3 100644 --- a/runtime/command_queue/enqueue_write_buffer_rect.h +++ b/runtime/command_queue/enqueue_write_buffer_rect.h @@ -50,7 +50,6 @@ cl_int CommandQueueHw::enqueueWriteBufferRect( eBuiltInOps = EBuiltInOps::CopyBufferRectStateless; } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(eBuiltInOps, - this->getContext(), this->getDevice()); BuiltInOwnershipWrapper builtInLock(builder, this->context); diff --git a/runtime/command_queue/enqueue_write_image.h b/runtime/command_queue/enqueue_write_image.h index 1a5b017746..98f25fdd22 100644 --- a/runtime/command_queue/enqueue_write_image.h +++ b/runtime/command_queue/enqueue_write_image.h @@ -46,7 +46,7 @@ cl_int CommandQueueHw::enqueueWriteImage( numEventsInWaitList, eventWaitList, event); } auto &builder = getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - this->getContext(), this->getDevice()); + this->getDevice()); BuiltInOwnershipWrapper lock(builder, this->context); diff --git a/runtime/context/context.cpp b/runtime/context/context.cpp index d3b5a71171..d7406034a0 100644 --- a/runtime/context/context.cpp +++ b/runtime/context/context.cpp @@ -346,7 +346,8 @@ SchedulerKernel &Context::getSchedulerKernel() { src.resource.data(), src.resource.size(), true, - &retVal); + &retVal, + &getDevice(0)->getDevice()); DEBUG_BREAK_IF(retVal != CL_SUCCESS); DEBUG_BREAK_IF(!program); diff --git a/runtime/helpers/built_ins_helper.cpp b/runtime/helpers/built_ins_helper.cpp index 2c78f7d5cf..e0bc576fb4 100644 --- a/runtime/helpers/built_ins_helper.cpp +++ b/runtime/helpers/built_ins_helper.cpp @@ -18,15 +18,17 @@ Program *createProgramForSip(ExecutionEnvironment &executionEnvironment, Context *context, std::vector &binary, size_t size, - cl_int *errcodeRet) { + cl_int *errcodeRet, + Device *device) { cl_int retVal = 0; auto program = Program::createFromGenBinary(executionEnvironment, - nullptr, + context, binary.data(), size, true, - &retVal); + &retVal, + device); DEBUG_BREAK_IF(retVal != 0); return program; } diff --git a/runtime/helpers/built_ins_helper.h b/runtime/helpers/built_ins_helper.h index 22e3ac649d..bfcd4366be 100644 --- a/runtime/helpers/built_ins_helper.h +++ b/runtime/helpers/built_ins_helper.h @@ -17,5 +17,6 @@ Program *createProgramForSip(ExecutionEnvironment &executionEnvironment, Context *context, std::vector &binary, size_t size, - cl_int *errcodeRet); + cl_int *errcodeRet, + Device *device); } // namespace NEO diff --git a/runtime/kernel/kernel.cpp b/runtime/kernel/kernel.cpp index 03bcc5c944..655416e499 100644 --- a/runtime/kernel/kernel.cpp +++ b/runtime/kernel/kernel.cpp @@ -1068,7 +1068,7 @@ inline void Kernel::makeArgsResident(CommandStreamReceiver &commandStreamReceive if (kernelArguments[argIndex].object) { if (kernelArguments[argIndex].type == SVM_ALLOC_OBJ) { auto pSVMAlloc = (GraphicsAllocation *)kernelArguments[argIndex].object; - auto pageFaultManager = this->getContext().getMemoryManager()->getPageFaultManager(); + auto pageFaultManager = device.getMemoryManager()->getPageFaultManager(); if (pageFaultManager && this->isUnifiedMemorySyncRequired) { pageFaultManager->moveAllocationToGpuDomain(reinterpret_cast(pSVMAlloc->getGpuAddress())); diff --git a/runtime/kernel/kernel.h b/runtime/kernel/kernel.h index 7775099731..2d67ae8542 100644 --- a/runtime/kernel/kernel.h +++ b/runtime/kernel/kernel.h @@ -8,6 +8,7 @@ #pragma once #include "core/command_stream/thread_arbitration_policy.h" #include "core/debug_settings/debug_settings_manager.h" +#include "core/device/device.h" #include "core/helpers/address_patch.h" #include "core/helpers/preamble.h" #include "core/unified_memory/unified_memory.h" @@ -76,7 +77,9 @@ class Kernel : public BaseObject<_cl_kernel> { cl_int retVal; kernel_t *pKernel = nullptr; - pKernel = new kernel_t(program, kernelInfo, program->getDevice(0)); + auto clDevice = program->getDevice().template getSpecializedDevice(); + + pKernel = new kernel_t(program, kernelInfo, *clDevice); retVal = pKernel->initialize(); if (retVal != CL_SUCCESS) { diff --git a/runtime/program/build.cpp b/runtime/program/build.cpp index 518a29d6f5..e88bec9099 100644 --- a/runtime/program/build.cpp +++ b/runtime/program/build.cpp @@ -97,8 +97,10 @@ cl_int Program::build( options = std::string("-s ") + filename + " " + options; } } + auto clDevice = this->pDevice->getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); - auto compilerExtensionsOptions = this->pDevice->peekCompilerExtensions(); + auto compilerExtensionsOptions = clDevice->peekCompilerExtensions(); if (internalOptions.find(compilerExtensionsOptions) == std::string::npos) { CompilerOptions::concatenateAppend(internalOptions, compilerExtensionsOptions); } @@ -114,7 +116,7 @@ cl_int Program::build( "\nBuild Internal Options", inputArgs.internalOptions.begin()); inputArgs.allowCaching = enableCaching; NEO::TranslationOutput compilerOuput = {}; - auto compilerErr = pCompilerInterface->build(this->pDevice->getDevice(), inputArgs, compilerOuput); + auto compilerErr = pCompilerInterface->build(*this->pDevice, inputArgs, compilerOuput); this->updateBuildLog(this->pDevice, compilerOuput.frontendCompilerLog.c_str(), compilerOuput.frontendCompilerLog.size()); this->updateBuildLog(this->pDevice, compilerOuput.backendCompilerLog.c_str(), compilerOuput.backendCompilerLog.size()); retVal = asClError(compilerErr); @@ -144,9 +146,11 @@ cl_int Program::build( if (isKernelDebugEnabled()) { processDebugData(); - if (pDevice->getSourceLevelDebugger()) { + auto clDevice = this->pDevice->getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); + if (clDevice->getSourceLevelDebugger()) { for (auto kernelInfo : kernelInfoArray) { - pDevice->getSourceLevelDebugger()->notifyKernelDebugData(kernelInfo); + clDevice->getSourceLevelDebugger()->notifyKernelDebugData(kernelInfo); } } } @@ -172,7 +176,11 @@ cl_int Program::build( bool Program::appendKernelDebugOptions() { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::debugKernelEnable); CompilerOptions::concatenateAppend(options, CompilerOptions::generateDebugInfo); - auto debugger = pDevice->getSourceLevelDebugger(); + + auto clDevice = this->pDevice->getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); + + auto debugger = clDevice->getSourceLevelDebugger(); if (debugger && debugger->isOptimizationDisabled()) { CompilerOptions::concatenateAppend(options, CompilerOptions::optDisable); } @@ -180,8 +188,11 @@ bool Program::appendKernelDebugOptions() { } void Program::notifyDebuggerWithSourceCode(std::string &filename) { - if (pDevice->getSourceLevelDebugger()) { - pDevice->getSourceLevelDebugger()->notifySourceCode(sourceCode.c_str(), sourceCode.size(), filename); + auto clDevice = this->pDevice->getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); + + if (clDevice->getSourceLevelDebugger()) { + clDevice->getSourceLevelDebugger()->notifySourceCode(sourceCode.c_str(), sourceCode.size(), filename); } } diff --git a/runtime/program/compile.cpp b/runtime/program/compile.cpp index 297fa0926b..970d94aa3b 100644 --- a/runtime/program/compile.cpp +++ b/runtime/program/compile.cpp @@ -128,7 +128,9 @@ cl_int Program::compile( TranslationInput inputArgs = {IGC::CodeType::elf, IGC::CodeType::undefined}; // set parameters for compilation - auto compilerExtensionsOptions = this->pDevice->peekCompilerExtensions(); + auto clDevice = this->pDevice->getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); + auto compilerExtensionsOptions = clDevice->peekCompilerExtensions(); CompilerOptions::concatenateAppend(internalOptions, compilerExtensionsOptions); if (isKernelDebugEnabled()) { @@ -145,7 +147,7 @@ cl_int Program::compile( inputArgs.internalOptions = ArrayRef(internalOptions.c_str(), internalOptions.length()); TranslationOutput compilerOuput; - auto compilerErr = pCompilerInterface->compile(this->pDevice->getDevice(), inputArgs, compilerOuput); + auto compilerErr = pCompilerInterface->compile(*this->pDevice, inputArgs, compilerOuput); this->updateBuildLog(this->pDevice, compilerOuput.frontendCompilerLog.c_str(), compilerOuput.frontendCompilerLog.size()); this->updateBuildLog(this->pDevice, compilerOuput.backendCompilerLog.c_str(), compilerOuput.backendCompilerLog.size()); retVal = asClError(compilerErr); diff --git a/runtime/program/create.cpp b/runtime/program/create.cpp index fe5ef00e27..3d649277e9 100644 --- a/runtime/program/create.cpp +++ b/runtime/program/create.cpp @@ -15,5 +15,5 @@ template Program *Program::create(cl_context, cl_uint, const char **, c template Program *Program::create(const char *, Context *, ClDevice &, bool, cl_int *); template Program *Program::create(const char *, Context *, Device &, bool, cl_int *); template Program *Program::createFromIL(Context *, const void *, size_t length, cl_int &); -template Program *Program::createFromGenBinary(ExecutionEnvironment &executionEnvironment, Context *context, const void *binary, size_t size, bool isBuiltIn, cl_int *errcodeRet); +template Program *Program::createFromGenBinary(ExecutionEnvironment &executionEnvironment, Context *context, const void *binary, size_t size, bool isBuiltIn, cl_int *errcodeRet, Device *device); } // namespace NEO diff --git a/runtime/program/create.inl b/runtime/program/create.inl index 7f6e1ba62d..8564f5ea1e 100644 --- a/runtime/program/create.inl +++ b/runtime/program/create.inl @@ -30,7 +30,7 @@ T *Program::create( auto pContext = castToObject(context); DEBUG_BREAK_IF(!pContext); - auto program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false); + auto program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, &pContext->getDevice(0)->getDevice()); auto retVal = program->createProgramFromBinary(binaries[0], lengths[0]); @@ -71,7 +71,7 @@ T *Program::create( lengths); if (CL_SUCCESS == retVal) { - program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false); + program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, &pContext->getDevice(0)->getDevice()); program->sourceCode.swap(combinedString); program->createdFrom = CreatedFrom::SOURCE; } @@ -103,7 +103,7 @@ T *Program::create( if (program->context && !program->isBuiltIn) { program->context->incRefInternal(); } - program->pDevice = &device; + program->pDevice = &device.getDevice(); program->numDevices = 1; if (is32bit || DebugManager.flags.DisableStatelessToStatefulOptimization.get() || device.areSharedSystemAllocationsAllowed()) { CompilerOptions::concatenateAppend(program->internalOptions, CompilerOptions::greaterThan4gbBuffersRequired); @@ -134,7 +134,8 @@ T *Program::createFromGenBinary( const void *binary, size_t size, bool isBuiltIn, - cl_int *errcodeRet) { + cl_int *errcodeRet, + Device *device) { cl_int retVal = CL_SUCCESS; T *program = nullptr; @@ -143,7 +144,7 @@ T *Program::createFromGenBinary( } if (CL_SUCCESS == retVal) { - program = new T(executionEnvironment, context, isBuiltIn); + program = new T(executionEnvironment, context, isBuiltIn, device); program->numDevices = 1; program->replaceDeviceBinary(makeCopy(binary, size), size); program->isCreatedFromBinary = true; @@ -171,7 +172,7 @@ T *Program::createFromIL(Context *ctx, return nullptr; } - T *program = new T(*ctx->getDevice(0)->getExecutionEnvironment(), ctx, false); + T *program = new T(*ctx->getDevice(0)->getExecutionEnvironment(), ctx, false, &ctx->getDevice(0)->getDevice()); errcodeRet = program->createProgramFromBinary(il, length); program->createdFrom = CreatedFrom::IL; diff --git a/runtime/program/get_info.cpp b/runtime/program/get_info.cpp index 83154b13b9..c1e6270215 100644 --- a/runtime/program/get_info.cpp +++ b/runtime/program/get_info.cpp @@ -7,6 +7,7 @@ #include "core/helpers/get_info.h" +#include "core/device/device.h" #include "runtime/context/context.h" #include "runtime/device/cl_device.h" #include "runtime/helpers/base_object.h" @@ -24,7 +25,7 @@ cl_int Program::getInfo(cl_program_info paramName, size_t paramValueSize, size_t srcSize = 0; size_t retSize = 0; std::string kernelNamesString; - cl_device_id device_id = pDevice; + cl_device_id device_id = pDevice->getSpecializedDevice(); cl_uint refCount = 0; size_t numKernels; cl_context clContext = context; @@ -154,17 +155,12 @@ cl_int Program::getBuildInfo(cl_device_id device, cl_program_build_info paramNam const void *pSrc = nullptr; size_t srcSize = 0; size_t retSize = 0; - cl_device_id device_id = pDevice; + cl_device_id device_id = pDevice->getSpecializedDevice(); if (device != device_id) { return CL_INVALID_DEVICE; } - retVal = validateObjects(device); - if (retVal != CL_SUCCESS) { - return CL_INVALID_DEVICE; - } - auto pClDev = castToObject(device); switch (paramName) { @@ -179,7 +175,7 @@ cl_int Program::getBuildInfo(cl_device_id device, cl_program_build_info paramNam break; case CL_PROGRAM_BUILD_LOG: { - const char *pBuildLog = getBuildLog(pClDev); + const char *pBuildLog = getBuildLog(&pClDev->getDevice()); if (pBuildLog != nullptr) { pSrc = pBuildLog; diff --git a/runtime/program/link.cpp b/runtime/program/link.cpp index f0f28c9a60..1fc56c77ec 100644 --- a/runtime/program/link.cpp +++ b/runtime/program/link.cpp @@ -6,6 +6,7 @@ */ #include "core/compiler_interface/compiler_interface.h" +#include "core/device/device.h" #include "core/device_binary_format/elf/elf.h" #include "core/device_binary_format/elf/elf_encoder.h" #include "core/device_binary_format/elf/ocl_elf.h" @@ -118,7 +119,7 @@ cl_int Program::link( if (!isCreateLibrary) { inputArgs.outType = IGC::CodeType::oclGenBin; NEO::TranslationOutput compilerOuput = {}; - auto compilerErr = pCompilerInterface->link(this->pDevice->getDevice(), inputArgs, compilerOuput); + auto compilerErr = pCompilerInterface->link(this->getDevice(), inputArgs, compilerOuput); this->updateBuildLog(this->pDevice, compilerOuput.frontendCompilerLog.c_str(), compilerOuput.frontendCompilerLog.size()); this->updateBuildLog(this->pDevice, compilerOuput.backendCompilerLog.c_str(), compilerOuput.backendCompilerLog.size()); retVal = asClError(compilerErr); @@ -138,14 +139,16 @@ cl_int Program::link( if (isKernelDebugEnabled()) { processDebugData(); + auto clDevice = this->getDevice().getSpecializedDevice(); + UNRECOVERABLE_IF(clDevice == nullptr); for (auto kernelInfo : kernelInfoArray) { - pDevice->getSourceLevelDebugger()->notifyKernelDebugData(kernelInfo); + clDevice->getSourceLevelDebugger()->notifyKernelDebugData(kernelInfo); } } } else { inputArgs.outType = IGC::CodeType::llvmBc; NEO::TranslationOutput compilerOuput = {}; - auto compilerErr = pCompilerInterface->createLibrary(this->pDevice->getDevice(), inputArgs, compilerOuput); + auto compilerErr = pCompilerInterface->createLibrary(*this->pDevice, inputArgs, compilerOuput); this->updateBuildLog(this->pDevice, compilerOuput.frontendCompilerLog.c_str(), compilerOuput.frontendCompilerLog.size()); this->updateBuildLog(this->pDevice, compilerOuput.backendCompilerLog.c_str(), compilerOuput.backendCompilerLog.size()); retVal = asClError(compilerErr); diff --git a/runtime/program/process_device_binary.cpp b/runtime/program/process_device_binary.cpp index e9f0e25116..5cd00bbd23 100644 --- a/runtime/program/process_device_binary.cpp +++ b/runtime/program/process_device_binary.cpp @@ -176,12 +176,12 @@ cl_int Program::processProgramInfo(ProgramInfo &src) { auto svmAllocsManager = context ? context->getSVMAllocsManager() : nullptr; if (src.globalConstants.size != 0) { UNRECOVERABLE_IF(nullptr == pDevice); - this->constantSurface = allocateGlobalsSurface(svmAllocsManager, pDevice->getDevice(), src.globalConstants.size, true, linkerInput.get(), src.globalConstants.initData); + this->constantSurface = allocateGlobalsSurface(svmAllocsManager, *pDevice, src.globalConstants.size, true, linkerInput.get(), src.globalConstants.initData); } if (src.globalVariables.size != 0) { UNRECOVERABLE_IF(nullptr == pDevice); - this->globalSurface = allocateGlobalsSurface(svmAllocsManager, pDevice->getDevice(), src.globalVariables.size, false, linkerInput.get(), src.globalVariables.initData); + this->globalSurface = allocateGlobalsSurface(svmAllocsManager, *pDevice, src.globalVariables.size, false, linkerInput.get(), src.globalVariables.initData); } this->globalVarTotalSize = src.globalVariables.size; diff --git a/runtime/program/program.cpp b/runtime/program/program.cpp index 7737768f01..db7bca64e1 100644 --- a/runtime/program/program.cpp +++ b/runtime/program/program.cpp @@ -33,24 +33,28 @@ namespace NEO { const std::string Program::clOptNameClVer("-cl-std=CL"); -Program::Program(ExecutionEnvironment &executionEnvironment) : Program(executionEnvironment, nullptr, false) { +Program::Program(ExecutionEnvironment &executionEnvironment) : Program(executionEnvironment, nullptr, false, nullptr) { numDevices = 0; } -Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn) : executionEnvironment(executionEnvironment), - context(context), - isBuiltIn(isBuiltIn) { +Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn, Device *device) : executionEnvironment(executionEnvironment), + context(context), + pDevice(device), + isBuiltIn(isBuiltIn) { if (this->context && !this->isBuiltIn) { this->context->incRefInternal(); } blockKernelManager = new BlockKernelManager(); - pDevice = context ? context->getDevice(0) : nullptr; + auto clDevice = context != nullptr ? context->getDevice(0) : (device != nullptr) ? device->getSpecializedDevice() : nullptr; + if (pDevice == nullptr && context != nullptr) { + pDevice = &context->getDevice(0)->getDevice(); + } numDevices = 1; char paramValue[32] = {}; bool force32BitAddressess = false; - if (pDevice) { - pDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, nullptr); + if (clDevice) { + clDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, nullptr); if (strstr(paramValue, "2.1")) { internalOptions = "-ocl-version=210 "; } else if (strstr(paramValue, "2.0")) { @@ -58,13 +62,13 @@ Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, b } else if (strstr(paramValue, "1.2")) { internalOptions = "-ocl-version=120 "; } - force32BitAddressess = pDevice->getDeviceInfo().force32BitAddressess; + force32BitAddressess = clDevice->getDeviceInfo().force32BitAddressess; if (force32BitAddressess) { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::arch32bit); } - if (pDevice->areSharedSystemAllocationsAllowed() || + if (clDevice->areSharedSystemAllocationsAllowed() || DebugManager.flags.DisableStatelessToStatefulOptimization.get()) { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::greaterThan4gbBuffersRequired); } @@ -77,9 +81,9 @@ Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, b CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::bindlessImages); } - kernelDebugEnabled = pDevice->isDebuggerActive(); + kernelDebugEnabled = clDevice->isDebuggerActive(); - auto enableStatelessToStatefullWithOffset = pDevice->getHardwareCapabilities().isStatelesToStatefullWithOffsetSupported; + auto enableStatelessToStatefullWithOffset = clDevice->getHardwareCapabilities().isStatelesToStatefullWithOffsetSupported; if (DebugManager.flags.EnableStatelessToStatefulBufferOffsetOpt.get() != -1) { enableStatelessToStatefullWithOffset = DebugManager.flags.EnableStatelessToStatefulBufferOffsetOpt.get() != 0; } @@ -88,8 +92,8 @@ Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, b CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::hasBufferOffsetArg); } - auto &hwHelper = HwHelper::get(pDevice->getHardwareInfo().platform.eRenderCoreFamily); - if (hwHelper.isForceEmuInt32DivRemSPWARequired(pDevice->getHardwareInfo())) { + auto &hwHelper = HwHelper::get(clDevice->getHardwareInfo().platform.eRenderCoreFamily); + if (hwHelper.isForceEmuInt32DivRemSPWARequired(clDevice->getHardwareInfo())) { CompilerOptions::concatenateAppend(internalOptions, CompilerOptions::forceEmuInt32DivRemSP); } } @@ -216,7 +220,7 @@ cl_int Program::setProgramSpecializationConstant(cl_uint specId, size_t specSize } SpecConstantInfo specConstInfo; - auto retVal = pCompilerInterface->getSpecConstantsInfo(this->getDevice(0).getDevice(), ArrayRef(sourceCode), specConstInfo); + auto retVal = pCompilerInterface->getSpecConstantsInfo(this->getDevice(), ArrayRef(sourceCode), specConstInfo); if (retVal != TranslationOutput::ErrorCode::Success) { return CL_INVALID_VALUE; @@ -243,7 +247,7 @@ cl_int Program::updateSpecializationConstant(cl_uint specId, size_t specSize, co } void Program::setDevice(Device *device) { - this->pDevice = device->getSpecializedDevice(); + this->pDevice = device; } cl_int Program::getSource(std::string &binary) const { @@ -256,7 +260,7 @@ cl_int Program::getSource(std::string &binary) const { return retVal; } -void Program::updateBuildLog(const ClDevice *pDevice, const char *pErrorString, +void Program::updateBuildLog(const Device *pDevice, const char *pErrorString, size_t errorStringSize) { if ((pErrorString == nullptr) || (errorStringSize == 0) || (pErrorString[0] == '\0')) { return; @@ -277,7 +281,7 @@ void Program::updateBuildLog(const ClDevice *pDevice, const char *pErrorString, buildLog[pDevice].append(pErrorString, pErrorString + errorStringSize); } -const char *Program::getBuildLog(const ClDevice *pDevice) const { +const char *Program::getBuildLog(const Device *pDevice) const { const char *entry = nullptr; auto it = buildLog.find(pDevice); @@ -339,7 +343,7 @@ void Program::allocateBlockPrivateSurfaces(uint32_t rootDeviceIndex) { size_t privateSize = info->patchInfo.pAllocateStatelessPrivateSurface->PerThreadPrivateMemorySize; if (privateSize > 0 && blockKernelManager->getPrivateSurface(i) == nullptr) { - privateSize *= getDevice(0).getDeviceInfo().computeUnitsUsedForScratch * info->getMaxSimdSize(); + privateSize *= getDevice().getDeviceInfo().computeUnitsUsedForScratch * info->getMaxSimdSize(); auto *privateSurface = this->executionEnvironment.memoryManager->allocateGraphicsMemoryWithProperties({rootDeviceIndex, privateSize, GraphicsAllocation::AllocationType::PRIVATE_SURFACE}); blockKernelManager->pushPrivateSurface(privateSurface, i); } diff --git a/runtime/program/program.h b/runtime/program/program.h index d85bd2a065..8dd63e8bb8 100644 --- a/runtime/program/program.h +++ b/runtime/program/program.h @@ -110,7 +110,8 @@ class Program : public BaseObject<_cl_program> { const void *binary, size_t size, bool isBuiltIn, - cl_int *errcodeRet); + cl_int *errcodeRet, + Device *device); template static T *createFromIL(Context *context, @@ -118,7 +119,7 @@ class Program : public BaseObject<_cl_program> { size_t length, cl_int &errcodeRet); - Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn); + Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn, Device *device); ~Program() override; Program(const Program &) = delete; @@ -173,7 +174,7 @@ class Program : public BaseObject<_cl_program> { return executionEnvironment; } - const ClDevice &getDevice(cl_uint deviceOrdinal) const { + const Device &getDevice() const { UNRECOVERABLE_IF(pDevice == nullptr); return *pDevice; } @@ -186,9 +187,9 @@ class Program : public BaseObject<_cl_program> { void processDebugData(); - void updateBuildLog(const ClDevice *pDevice, const char *pErrorString, const size_t errorStringSize); + void updateBuildLog(const Device *pDevice, const char *pErrorString, const size_t errorStringSize); - const char *getBuildLog(const ClDevice *pDevice) const; + const char *getBuildLog(const Device *pDevice) const; cl_uint getProgramBinaryType() const { return programBinaryType; @@ -323,7 +324,7 @@ class Program : public BaseObject<_cl_program> { std::unique_ptr linkerInput; Linker::RelocatedSymbolsMap symbols; - std::map buildLog; + std::map buildLog; bool areSpecializationConstantsInitialized = false; CIF::RAII::UPtr_t specConstantsIds; @@ -333,7 +334,7 @@ class Program : public BaseObject<_cl_program> { BlockKernelManager *blockKernelManager = nullptr; ExecutionEnvironment &executionEnvironment; Context *context = nullptr; - ClDevice *pDevice = nullptr; + Device *pDevice = nullptr; cl_uint numDevices = 0U; bool isBuiltIn = false; diff --git a/unit_tests/api/cl_api_tests.cpp b/unit_tests/api/cl_api_tests.cpp index 8dc2009e4b..5d2a392e17 100644 --- a/unit_tests/api/cl_api_tests.cpp +++ b/unit_tests/api/cl_api_tests.cpp @@ -25,7 +25,7 @@ void api_fixture_using_aligned_memory_manager::SetUp() { commandQueue = new CommandQueue(context, device, 0); - program = new MockProgram(*device->getExecutionEnvironment(), ctxPtr, false); + program = new MockProgram(*device->getExecutionEnvironment(), ctxPtr, false, &device->getDevice()); Program *prgPtr = reinterpret_cast(program); kernel = new MockKernel(prgPtr, program->mockKernelInfo, *device); diff --git a/unit_tests/api/cl_api_tests.h b/unit_tests/api/cl_api_tests.h index da95fb7737..60486a7fc3 100644 --- a/unit_tests/api/cl_api_tests.h +++ b/unit_tests/api/cl_api_tests.h @@ -49,7 +49,7 @@ struct ApiFixture : PlatformFixture { pCommandQueue = new CommandQueue(pContext, pDevice, nullptr); - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, &pDevice->getDevice()); pKernel = new MockKernel(pProgram, pProgram->mockKernelInfo, *pDevice); ASSERT_NE(nullptr, pKernel); diff --git a/unit_tests/api/cl_create_kernel_tests.inl b/unit_tests/api/cl_create_kernel_tests.inl index 8c93479287..0877ea8f57 100644 --- a/unit_tests/api/cl_create_kernel_tests.inl +++ b/unit_tests/api/cl_create_kernel_tests.inl @@ -140,7 +140,7 @@ TEST_F(clCreateKernelTests, GivenNullKernelNameWhenCreatingNewKernelThenInvalidV cl_kernel kernel = nullptr; KernelInfo *pKernelInfo = new KernelInfo(); - std::unique_ptr pMockProg = std::make_unique(*pPlatform->peekExecutionEnvironment(), pContext, false); + std::unique_ptr pMockProg = std::make_unique(*pPlatform->peekExecutionEnvironment(), pContext, false, nullptr); pMockProg->addKernelInfo(pKernelInfo); kernel = clCreateKernel( @@ -166,7 +166,7 @@ TEST_F(clCreateKernelTests, GivenInvalidProgramWhenCreatingNewKernelThenInvalidP TEST_F(clCreateKernelTests, GivenProgramWithBuildErrorWhenCreatingNewKernelThenInvalidProgramExecutableErrorIsReturned) { cl_kernel kernel = nullptr; - std::unique_ptr pMockProg = std::make_unique(*pPlatform->peekExecutionEnvironment(), pContext, false); + std::unique_ptr pMockProg = std::make_unique(*pPlatform->peekExecutionEnvironment(), pContext, false, nullptr); pMockProg->SetBuildStatus(CL_BUILD_ERROR); kernel = clCreateKernel( diff --git a/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp b/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp index 3954d3cc28..f8ff7e3f68 100644 --- a/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp +++ b/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp @@ -154,7 +154,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockMotionEstimateKer cl_int retVal = CL_SUCCESS; overwriteBuiltInBinaryName(pDev, "media_kernels_backend"); - pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, *pContext, *pDev); + pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, *pDev); restoreBuiltInBinaryName(pDev); overwriteBuiltInBinaryName(pDev, "media_kernels_frontend"); @@ -180,7 +180,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockMotionEstimateKer EXPECT_EQ(6U, kernNeo->getKernelArgsNumber()); auto ctxNeo = castToObject(pContext); - auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockMotionEstimateIntel, *ctxNeo, ctxNeo->getDevice(0)->getDevice()); + auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockMotionEstimateIntel, ctxNeo->getDevice(0)->getDevice()); EXPECT_EQ(&vmeBuilder, kernNeo->getKernelInfo().builtinDispatchBuilder); clReleaseKernel(kernel); @@ -191,7 +191,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockAdvancedMotionEst cl_int retVal = CL_SUCCESS; overwriteBuiltInBinaryName(pDev, "media_kernels_backend"); - pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, *pContext, *pDev); + pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, *pDev); restoreBuiltInBinaryName(pDev); overwriteBuiltInBinaryName(pDev, "media_kernels_frontend"); @@ -217,7 +217,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockAdvancedMotionEst EXPECT_EQ(15U, kernNeo->getKernelArgsNumber()); auto ctxNeo = castToObject(pContext); - auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, *ctxNeo, ctxNeo->getDevice(0)->getDevice()); + auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, ctxNeo->getDevice(0)->getDevice()); EXPECT_EQ(&vmeBuilder, kernNeo->getKernelInfo().builtinDispatchBuilder); clReleaseKernel(kernel); @@ -228,7 +228,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockAdvancedMotionEst cl_int retVal = CL_SUCCESS; overwriteBuiltInBinaryName(pDev, "media_kernels_backend"); - pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, *pContext, *pDev); + pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, *pDev); restoreBuiltInBinaryName(pDev); overwriteBuiltInBinaryName(pDev, "media_kernels_frontend"); @@ -254,7 +254,7 @@ TEST_F(clCreateProgramWithBuiltInVmeKernelsTests, GivenVmeBlockAdvancedMotionEst EXPECT_EQ(20U, kernNeo->getKernelArgsNumber()); auto ctxNeo = castToObject(pContext); - auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, *ctxNeo, ctxNeo->getDevice(0)->getDevice()); + auto &vmeBuilder = pDev->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(NEO::EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel, ctxNeo->getDevice(0)->getDevice()); EXPECT_EQ(&vmeBuilder, kernNeo->getKernelInfo().builtinDispatchBuilder); clReleaseKernel(kernel); diff --git a/unit_tests/built_ins/built_in_tests.cpp b/unit_tests/built_ins/built_in_tests.cpp index a96d1a6e55..2f35edfb66 100644 --- a/unit_tests/built_ins/built_in_tests.cpp +++ b/unit_tests/built_ins/built_in_tests.cpp @@ -154,7 +154,7 @@ TEST_F(BuiltInTests, SourceConsistency) { } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBuffer) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); MockBuffer *srcPtr = new MockBuffer(); MockBuffer *dstPtr = new MockBuffer(); @@ -217,7 +217,7 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBuffer) { } HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingNonAuxDispatchInfoForAuxTranslationThenPickAndSetupCorrectKernels) { - BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MemObjsForAuxTranslation memObjsForAuxTranslation; @@ -264,7 +264,7 @@ HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingNonAuxDispatchInfoForAuxTrans } HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxDispatchInfoForAuxTranslationThenPickAndSetupCorrectKernels) { - BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MemObjsForAuxTranslation memObjsForAuxTranslation; @@ -311,7 +311,7 @@ HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxDispatchInfoForAuxTranslat } HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxTranslationDispatchThenPickDifferentKernelsDependingOnRequest) { - BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MemObjsForAuxTranslation memObjsForAuxTranslation; @@ -346,7 +346,7 @@ HWTEST_F(BuiltInTests, givenInputBufferWhenBuildingAuxTranslationDispatchThenPic } HWTEST_F(BuiltInTests, givenInvalidAuxTranslationDirectionWhenBuildingDispatchInfosThenAbort) { - BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MemObjsForAuxTranslation memObjsForAuxTranslation; @@ -372,7 +372,7 @@ class MockAuxBuilInOp : public BuiltInOp { using BaseClass::resizeKernelInstances; using BaseClass::usedKernels; - MockAuxBuilInOp(BuiltIns &kernelsLib, Context &context, Device &device) : BaseClass(kernelsLib, context, device) {} + MockAuxBuilInOp(BuiltIns &kernelsLib, Context &context, Device &device) : BaseClass(kernelsLib, device) {} }; TEST_F(BuiltInTests, whenAuxBuiltInIsConstructedThenResizeKernelInstancedTo5) { @@ -420,7 +420,7 @@ TEST_F(BuiltInTests, givenkAuxBuiltInWhenResizeIsCalledThenCloneAllNewInstancesF } HWTEST_F(BuiltInTests, givenKernelWithAuxTranslationRequiredWhenEnqueueCalledThenLockOnBuiltin) { - pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pContext, *pDevice); + pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto mockAuxBuiltInOp = new MockAuxBuilInOp(*pBuiltIns, *pContext, *pDevice); pBuiltIns->BuiltinOpsBuilders[static_cast(EBuiltInOps::AuxTranslation)].first.reset(mockAuxBuiltInOp); @@ -600,7 +600,7 @@ HWTEST_F(BuiltInTests, givenNonAuxToAuxTranslationWhenSettingSurfaceStateThenSet } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferAligned) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); AlignedBuffer src; AlignedBuffer dst; @@ -639,7 +639,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToBufferStateless GTEST_SKIP(); } - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBufferStateless, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBufferStateless, *pDevice); uint64_t bigSize = 10ull * MemoryConstants::gigaByte; uint64_t bigOffset = 4ull * MemoryConstants::gigaByte; @@ -670,7 +670,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToBufferRectState GTEST_SKIP(); } - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRectStateless, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRectStateless, *pDevice); uint64_t bigSize = 10ull * MemoryConstants::gigaByte; uint64_t bigOffset = 4ull * MemoryConstants::gigaByte; @@ -704,7 +704,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderFillBufferStatelessIsUsedTh GTEST_SKIP(); } - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBufferStateless, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBufferStateless, *pDevice); uint64_t bigSize = 10ull * MemoryConstants::gigaByte; uint64_t bigOffset = 4ull * MemoryConstants::gigaByte; @@ -741,7 +741,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyBufferToImageStatelessI std ::unique_ptr pDstImage(Image2dHelper<>::create(pContext)); ASSERT_NE(nullptr, pDstImage.get()); - auto &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3dStateless, *pContext, *pDevice); + auto &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3dStateless, *pDevice); BuiltinOpParams dc; dc.srcPtr = &srcBuffer; @@ -777,7 +777,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyImageToBufferStatelessI std ::unique_ptr pSrcImage(Image2dHelper<>::create(pContext)); ASSERT_NE(nullptr, pSrcImage.get()); - auto &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBufferStateless, *pContext, *pDevice); + auto &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBufferStateless, *pDevice); BuiltinOpParams dc; dc.srcMemObj = pSrcImage.get(); @@ -798,7 +798,7 @@ TEST_F(BuiltInTests, givenBigOffsetAndSizeWhenBuilderCopyImageToBufferStatelessI } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferWithSourceOffsetUnalignedToFour) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); AlignedBuffer src; AlignedBuffer dst; @@ -823,7 +823,7 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderCopyBufferToBufferWithSourceOffse } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderReadBufferAligned) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); AlignedBuffer srcMemObj; auto size = 10 * MemoryConstants::cacheLineSize; @@ -858,7 +858,7 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderReadBufferAligned) { } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderWriteBufferAligned) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); auto size = 10 * MemoryConstants::cacheLineSize; auto srcPtr = alignedMalloc(size, MemoryConstants::cacheLineSize); @@ -893,8 +893,8 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderWriteBufferAligned) { } TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderGetBuilderTwice) { - BuiltinDispatchInfoBuilder &builder1 = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); - BuiltinDispatchInfoBuilder &builder2 = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder1 = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); + BuiltinDispatchInfoBuilder &builder2 = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, *pDevice); EXPECT_EQ(&builder1, &builder2); } @@ -902,7 +902,7 @@ TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderGetBuilderTwice) { TEST_F(BuiltInTests, BuiltinDispatchInfoBuilderGetBuilderForUnknownBuiltInOp) { bool caughtException = false; try { - pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::COUNT, *pContext, *pDevice); + pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::COUNT, *pDevice); } catch (const std::runtime_error &) { caughtException = true; } @@ -971,7 +971,7 @@ TEST_F(VmeBuiltInTests, BuiltinDispatchInfoBuilderGetVMEBuilderReturnNonNull) { EBuiltInOps::Type vmeOps[] = {EBuiltInOps::VmeBlockMotionEstimateIntel, EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel}; for (auto op : vmeOps) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pDevice); EXPECT_NE(nullptr, &builder); } @@ -982,7 +982,7 @@ TEST_F(VmeBuiltInTests, BuiltinDispatchInfoBuilderVMEBuilderNullKernel) { overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); EBuiltInOps::Type vmeOps[] = {EBuiltInOps::VmeBlockMotionEstimateIntel, EBuiltInOps::VmeBlockAdvancedMotionEstimateCheckIntel, EBuiltInOps::VmeBlockAdvancedMotionEstimateBidirectionalCheckIntel}; for (auto op : vmeOps) { - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pDevice); MultiDispatchInfo outMdi; Vec3 gws{352, 288, 0}; @@ -1004,7 +1004,7 @@ TEST_F(VmeBuiltInTests, BuiltinDispatchInfoBuilderVMEBuilder) { mockKernel.kernelInfo.reqdWorkGroupSize[2] = 0; overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::VmeBlockMotionEstimateIntel, *pDevice); restoreBuiltInBinaryName(pDevice); MultiDispatchInfo outMdi; @@ -1071,7 +1071,7 @@ TEST_F(VmeBuiltInTests, BuiltinDispatchInfoBuilderAdvancedVMEBuilder) { for (auto op : vmeOps) { MultiDispatchInfo outMdi; overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pContext, *pDevice); + BuiltinDispatchInfoBuilder &builder = pBuiltIns->getBuiltinDispatchInfoBuilder(op, *pDevice); restoreBuiltInBinaryName(pDevice); bool ret = builder.setExplicitArg(srcImageArgNum, sizeof(cl_mem), &srcImageArg, err); @@ -1352,7 +1352,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeAny) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Any, *pDevice); EXPECT_NE(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_NE(nullptr, program.get()); } @@ -1360,7 +1360,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeSource) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Source, *pDevice); EXPECT_NE(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_NE(nullptr, program.get()); } @@ -1370,7 +1370,7 @@ TEST_F(BuiltInTests, givenCreateProgramFromSourceWhenDeviceSupportSharedSystemAl const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Source, *pDevice); EXPECT_NE(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_NE(nullptr, program.get()); EXPECT_THAT(program->getInternalOptions(), testing::HasSubstr(std::string(CompilerOptions::greaterThan4gbBuffersRequired))); } @@ -1379,7 +1379,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeIntermediate) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Intermediate, *pDevice); EXPECT_EQ(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_EQ(nullptr, program.get()); } @@ -1387,7 +1387,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeBinary) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Binary, *pDevice); EXPECT_NE(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_NE(nullptr, program.get()); } @@ -1395,7 +1395,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeInvalid) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::INVALID, *pDevice); EXPECT_EQ(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_EQ(nullptr, program.get()); } @@ -1403,7 +1403,7 @@ TEST_F(BuiltInTests, createProgramFromCodeForTypeAnyButBuiltinInvalid) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::COUNT, BuiltinCode::ECodeType::Any, *pDevice); EXPECT_EQ(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); EXPECT_EQ(nullptr, program.get()); } @@ -1414,7 +1414,7 @@ TEST_F(BuiltInTests, createProgramFromCodeInternalOptionsFor32Bit) { auto builtinsLib = std::unique_ptr(new BuiltinsLib()); const BuiltinCode bc = builtinsLib->getBuiltinCode(EBuiltInOps::CopyBufferToBuffer, BuiltinCode::ECodeType::Source, *pDevice); ASSERT_NE(0u, bc.resource.size()); - auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pContext, *pDevice)); + auto program = std::unique_ptr(BuiltinsLib::createProgramFromCode(bc, *pDevice)); ASSERT_NE(nullptr, program.get()); auto builtinInternalOptions = program->getInternalOptions(); @@ -1444,7 +1444,7 @@ TEST_F(BuiltInTests, whenQueriedProperVmeVersionIsReturned) { TEST_F(VmeBuiltInTests, vmeDispatchValidationHelpers) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1504,8 +1504,8 @@ TEST_F(VmeBuiltInTests, vmeDispatchValidationHelpers) { TEST_F(VmeBuiltInTests, vmeDispatchIsBidir) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp avmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); - BuiltInOp avmeBidirBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp avmeBuilder(*this->pBuiltIns, *this->pDevice); + BuiltInOp avmeBidirBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); EXPECT_FALSE(avmeBuilder.isBidirKernel()); @@ -1552,7 +1552,7 @@ const cl_image_format ImageVmeInvalidChannelOrder::imageFormat = { TEST_F(VmeBuiltInTests, vmeValidateImages) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); uint32_t srcImgArgNum = 1; @@ -1630,7 +1630,7 @@ TEST_F(VmeBuiltInTests, vmeValidateImages) { TEST_F(VmeBuiltInTests, vmeValidateFlags) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); uint32_t defaultSkipBlockVal = 8192; @@ -1660,8 +1660,8 @@ TEST_F(VmeBuiltInTests, vmeValidateFlags) { TEST_F(VmeBuiltInTests, vmeValidateSkipBlockType) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp avmeBidirectionalBuilder(*this->pBuiltIns, *pContext, *this->pDevice); - BuiltInOp avmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp avmeBidirectionalBuilder(*this->pBuiltIns, *this->pDevice); + BuiltInOp avmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1696,7 +1696,7 @@ TEST_F(VmeBuiltInTests, setExplicitArgAccelerator) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1723,7 +1723,7 @@ TEST_F(VmeBuiltInTests, vmeValidateDispatch) { overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); struct MockVmeBuilder : BuiltInOp { MockVmeBuilder(BuiltIns &kernelsLib, Context &context, Device &device) - : BuiltInOp(kernelsLib, context, device) { + : BuiltInOp(kernelsLib, device) { } cl_int validateVmeDispatch(Vec3 inputRegion, Vec3 offset, size_t blkNum, size_t blkMul) const override { @@ -1826,7 +1826,7 @@ TEST_F(VmeBuiltInTests, vmeValidateDispatch) { TEST_F(VmeBuiltInTests, vmeValidateVmeDispatch) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1864,7 +1864,7 @@ TEST_F(VmeBuiltInTests, vmeValidateVmeDispatch) { TEST_F(VmeBuiltInTests, advancedVmeValidateVmeDispatch) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp avmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp avmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1924,7 +1924,7 @@ TEST_F(VmeBuiltInTests, advancedVmeValidateVmeDispatch) { TEST_F(VmeBuiltInTests, advancedBidirectionalVmeValidateVmeDispatch) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp avmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp avmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); cl_int err; @@ -1972,7 +1972,7 @@ TEST_F(VmeBuiltInTests, advancedBidirectionalVmeValidateVmeDispatch) { TEST_F(VmeBuiltInTests, advancedVmeGetSkipResidualsBuffExpSizeDefaultValue) { this->pBuiltIns->setCacheingEnableState(false); overwriteBuiltInBinaryName(pDevice, "media_kernels_backend"); - BuiltInOp vmeBuilder(*this->pBuiltIns, *pContext, *this->pDevice); + BuiltInOp vmeBuilder(*this->pBuiltIns, *this->pDevice); restoreBuiltInBinaryName(pDevice); auto size16x16 = vmeBuilder.getSkipResidualsBuffExpSize(CL_ME_MB_TYPE_16x16_INTEL, 4); @@ -1985,7 +1985,6 @@ TEST_F(BuiltInTests, createBuiltInProgramForInvalidBuiltinKernelName) { cl_int retVal = CL_SUCCESS; cl_program program = pDevice->getExecutionEnvironment()->getBuiltIns()->createBuiltInProgram( - *pContext, *pDevice, kernelNames, retVal); @@ -2001,7 +2000,7 @@ TEST_F(BuiltInTests, getSipKernelReturnsProgramCreatedOutOfIsaAcquiredFromCompil mockCompilerInterface->sipKernelBinaryOverride = mockCompilerInterface->getDummyGenBinary(); cl_int errCode = CL_BUILD_PROGRAM_FAILURE; auto p = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, mockCompilerInterface->sipKernelBinaryOverride.data(), mockCompilerInterface->sipKernelBinaryOverride.size(), - false, &errCode); + false, &errCode, nullptr); ASSERT_EQ(CL_SUCCESS, errCode); errCode = p->processGenBinary(); ASSERT_EQ(CL_SUCCESS, errCode); @@ -2065,7 +2064,6 @@ TEST_F(BuiltInOwnershipWrapperTests, givenBuiltinWhenConstructedThenLockAndUnloc EXPECT_EQ(&mockContext, &mockAuxBuiltInOp.baseKernel->getContext()); } EXPECT_FALSE(mockAuxBuiltInOp.baseKernel->hasOwnership()); - EXPECT_EQ(pContext, &mockAuxBuiltInOp.baseKernel->getContext()); } TEST_F(BuiltInOwnershipWrapperTests, givenLockWithoutParametersWhenConstructingThenLockOnlyWhenRequested) { @@ -2079,7 +2077,6 @@ TEST_F(BuiltInOwnershipWrapperTests, givenLockWithoutParametersWhenConstructingT EXPECT_EQ(&mockContext, &mockAuxBuiltInOp.baseKernel->getContext()); } EXPECT_FALSE(mockAuxBuiltInOp.baseKernel->hasOwnership()); - EXPECT_EQ(pContext, &mockAuxBuiltInOp.baseKernel->getContext()); } TEST_F(BuiltInOwnershipWrapperTests, givenLockWithAcquiredOwnershipWhenTakeOwnershipCalledThenAbort) { diff --git a/unit_tests/command_queue/command_queue_hw_tests.cpp b/unit_tests/command_queue/command_queue_hw_tests.cpp index 4452b524d0..18042566ae 100644 --- a/unit_tests/command_queue/command_queue_hw_tests.cpp +++ b/unit_tests/command_queue/command_queue_hw_tests.cpp @@ -753,7 +753,6 @@ struct BuiltinParamsCommandQueueHwTests : public CommandQueueHwTest { mockBuilder = static_cast(&builtIns->getBuiltinDispatchInfoBuilder( operation, - *pContext, *pDevice)); } diff --git a/unit_tests/command_queue/dispatch_walker_tests.cpp b/unit_tests/command_queue/dispatch_walker_tests.cpp index 7b23dfd3f2..82975065a2 100644 --- a/unit_tests/command_queue/dispatch_walker_tests.cpp +++ b/unit_tests/command_queue/dispatch_walker_tests.cpp @@ -1240,10 +1240,9 @@ TEST(DispatchWalker, WhenCalculatingDispatchDimensionsThenCorrectValuesAreReturn } HWTEST_F(DispatchWalkerTest, givenKernelWhenAuxToNonAuxWhenTranslationRequiredThenPipeControlWithStallAndDCFlushAdded) { - auto &context = pCmdQ->getContext(); auto executionEnvironment = pDevice->getExecutionEnvironment(); auto builtIns = executionEnvironment->getBuiltIns(); - BuiltinDispatchInfoBuilder &baseBuilder = builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, context, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MockKernel kernel(program.get(), kernelInfo, *pClDevice); @@ -1296,10 +1295,9 @@ HWTEST_F(DispatchWalkerTest, givenKernelWhenAuxToNonAuxWhenTranslationRequiredTh } HWTEST_F(DispatchWalkerTest, givenKernelWhenNonAuxToAuxWhenTranslationRequiredThenPipeControlWithStallAdded) { - auto &context = pCmdQ->getContext(); auto executionEnvironment = pDevice->getExecutionEnvironment(); auto builtIns = executionEnvironment->getBuiltIns(); - BuiltinDispatchInfoBuilder &baseBuilder = builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, context, *pDevice); + BuiltinDispatchInfoBuilder &baseBuilder = builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::AuxTranslation, *pDevice); auto &builder = static_cast &>(baseBuilder); MockKernel kernel(program.get(), kernelInfo, *pClDevice); diff --git a/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp b/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp index b7edf2a943..aff541d5d8 100644 --- a/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_buffer_rect_tests.cpp @@ -159,7 +159,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DTh // Extract the kernel used MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -188,7 +188,6 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueCopyBufferRectTest, WhenCopyingBufferRect2DTh HWTEST_F(EnqueueCopyBufferRectTest, WhenCopyingBufferRectStatelessThenStatelessKernelIsUsed) { auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRectStateless, - pCmdQ->getContext(), pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); diff --git a/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp b/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp index 14bd94fd96..d46473bc92 100644 --- a/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_buffer_tests.cpp @@ -135,7 +135,7 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenIndirectDataGetsAdded) { MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -163,7 +163,7 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferStatelessThenStatelessKernelIsU MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBufferStateless, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -253,7 +253,7 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentZeroMatchesSourceAd // Extract the kernel used MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -280,7 +280,7 @@ HWTEST_F(EnqueueCopyBufferTest, WhenCopyingBufferThenArgumentOneMatchesDestinati // Extract the kernel used MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_copy_buffer_to_image_tests.cpp b/unit_tests/command_queue/enqueue_copy_buffer_to_image_tests.cpp index aabd10872a..63d9fd053d 100644 --- a/unit_tests/command_queue/enqueue_copy_buffer_to_image_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_buffer_to_image_tests.cpp @@ -196,7 +196,6 @@ HWTEST_P(MipMapCopyBufferToImageTest, GivenImageWithMipLevelNonZeroWhenCopyBuffe pCmdQ->getDevice().getExecutionEnvironment()->builtins.reset(builtIns); auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -256,7 +255,6 @@ HWTEST_P(MipMapCopyBufferToImageTest, GivenImageWithMipLevelNonZeroWhenCopyBuffe EXPECT_EQ(CL_SUCCESS, retVal); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); diff --git a/unit_tests/command_queue/enqueue_copy_image_tests.cpp b/unit_tests/command_queue/enqueue_copy_image_tests.cpp index ad0083f38f..424c519adc 100644 --- a/unit_tests/command_queue/enqueue_copy_image_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_image_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2019 Intel Corporation + * Copyright (C) 2017-2020 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -205,7 +205,6 @@ HWTEST_P(MipMapCopyImageTest, GivenImagesWithNonZeroMipLevelsWhenCopyImageIsCall pCmdQ->getDevice().getExecutionEnvironment()->builtins.reset(builtIns); auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyImageToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder auto oldBuilder = builtIns->setBuiltinDispatchInfoBuilder( @@ -299,7 +298,6 @@ HWTEST_P(MipMapCopyImageTest, GivenImagesWithNonZeroMipLevelsWhenCopyImageIsCall EXPECT_EQ(CL_SUCCESS, retVal); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); diff --git a/unit_tests/command_queue/enqueue_copy_image_to_buffer_tests.cpp b/unit_tests/command_queue/enqueue_copy_image_to_buffer_tests.cpp index 9421ebe4a9..6e2ac8e115 100644 --- a/unit_tests/command_queue/enqueue_copy_image_to_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_copy_image_to_buffer_tests.cpp @@ -197,7 +197,6 @@ HWTEST_P(MipMapCopyImageToBufferTest, GivenImageWithMipLevelNonZeroWhenCopyImage pCmdQ->getDevice().getExecutionEnvironment()->builtins.reset(builtIns); auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -256,7 +255,6 @@ HWTEST_P(MipMapCopyImageToBufferTest, GivenImageWithMipLevelNonZeroWhenCopyImage EXPECT_EQ(CL_SUCCESS, retVal); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); diff --git a/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp b/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp index 2ac2379e25..155bdd7042 100644 --- a/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_fill_buffer_tests.cpp @@ -97,7 +97,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenIndirectDataGetsAdded) MultiDispatchInfo multiDispatchInfo; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -129,7 +129,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferRightLeftover) { MultiDispatchInfo mdi; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -156,7 +156,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferMiddle) { MultiDispatchInfo mdi; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -183,7 +183,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, FillBufferLeftLeftover) { MultiDispatchInfo mdi; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -277,7 +277,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentZeroShouldMatch MultiDispatchInfo multiDispatchInfo; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -313,7 +313,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, DISABLED_WhenFillingBufferThenArgumentOneSho MultiDispatchInfo multiDispatchInfo; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -346,7 +346,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferThenArgumentTwoShouldMatchP MultiDispatchInfo multiDispatchInfo; auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -375,7 +375,7 @@ HWTEST_F(EnqueueFillBufferCmdTests, WhenFillingBufferStatelessThenStatelessKerne // Extract the kernel used auto &builtIns = *pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns(); auto &builder = builtIns.getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBufferStateless, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_read_buffer_rect_tests.cpp b/unit_tests/command_queue/enqueue_read_buffer_rect_tests.cpp index ae0eaeee2d..f2a52f8593 100644 --- a/unit_tests/command_queue/enqueue_read_buffer_rect_tests.cpp +++ b/unit_tests/command_queue/enqueue_read_buffer_rect_tests.cpp @@ -173,7 +173,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueReadBufferRectTest, WhenReadingBufferThenIndi // Extract the kernel used MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_read_buffer_tests.cpp b/unit_tests/command_queue/enqueue_read_buffer_tests.cpp index a865e54d5b..a6bd6b6071 100644 --- a/unit_tests/command_queue/enqueue_read_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_read_buffer_tests.cpp @@ -141,7 +141,7 @@ HWTEST_F(EnqueueReadBufferTypeTest, addsIndirectData) { MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_read_image_tests.cpp b/unit_tests/command_queue/enqueue_read_image_tests.cpp index 9456697175..b3defd70e2 100644 --- a/unit_tests/command_queue/enqueue_read_image_tests.cpp +++ b/unit_tests/command_queue/enqueue_read_image_tests.cpp @@ -246,7 +246,6 @@ HWTEST_F(EnqueueReadImageTest, GivenImage1DarrayWhenReadImageIsCalledThenRowPitc EBuiltInOps::Type copyBuiltIn = EBuiltInOps::CopyImage3dToBuffer; auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( copyBuiltIn, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -266,7 +265,6 @@ HWTEST_F(EnqueueReadImageTest, GivenImage1DarrayWhenReadImageIsCalledThenRowPitc EnqueueReadImageHelper<>::enqueueReadImage(pCmdQ, srcImage, CL_TRUE, origin, region, rowPitch, slicePitch); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(copyBuiltIn, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); EXPECT_EQ(params->srcRowPitch, slicePitch); @@ -494,7 +492,6 @@ HWTEST_P(MipMapReadImageTest, GivenImageWithMipLevelNonZeroWhenReadImageIsCalled auto image_type = (cl_mem_object_type)GetParam(); auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -557,7 +554,6 @@ HWTEST_P(MipMapReadImageTest, GivenImageWithMipLevelNonZeroWhenReadImageIsCalled EXPECT_EQ(CL_SUCCESS, retVal); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); diff --git a/unit_tests/command_queue/enqueue_svm_mem_copy_tests.cpp b/unit_tests/command_queue/enqueue_svm_mem_copy_tests.cpp index 232914f33e..6d7948a935 100644 --- a/unit_tests/command_queue/enqueue_svm_mem_copy_tests.cpp +++ b/unit_tests/command_queue/enqueue_svm_mem_copy_tests.cpp @@ -66,13 +66,12 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer if (!pDevice->isFullRangeSvm()) { return; } - + pDevice->mockMemoryManager.reset(new MockMemoryManager()); auto builtIns = new MockBuiltins(); pCmdQ->getDevice().getExecutionEnvironment()->builtins.reset(builtIns); // retrieve original builder auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); ASSERT_NE(nullptr, &origBuilder); @@ -107,7 +106,6 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer // check if original builder is restored correctly auto &restoredBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); EXPECT_EQ(&origBuilder, &restoredBuilder); @@ -151,7 +149,6 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer // retrieve original builder auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); ASSERT_NE(nullptr, &origBuilder); @@ -186,7 +183,6 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer // check if original builder is restored correctly auto &restoredBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); EXPECT_EQ(&origBuilder, &restoredBuilder); @@ -235,7 +231,6 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer // retrieve original builder auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); ASSERT_NE(nullptr, &origBuilder); @@ -270,7 +265,6 @@ HWTEST_F(EnqueueSvmMemCopyTest, givenEnqueueSVMMemcpyWhenUsingCopyBufferToBuffer // check if original builder is restored correctly auto &restoredBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); EXPECT_EQ(&origBuilder, &restoredBuilder); diff --git a/unit_tests/command_queue/enqueue_svm_mem_fill_tests.cpp b/unit_tests/command_queue/enqueue_svm_mem_fill_tests.cpp index 3a9be43d57..125a54da58 100644 --- a/unit_tests/command_queue/enqueue_svm_mem_fill_tests.cpp +++ b/unit_tests/command_queue/enqueue_svm_mem_fill_tests.cpp @@ -79,7 +79,6 @@ HWTEST_P(EnqueueSvmMemFillTest, givenEnqueueSVMMemFillWhenUsingFillBufferBuilder // retrieve original builder auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); ASSERT_NE(nullptr, &origBuilder); @@ -114,7 +113,6 @@ HWTEST_P(EnqueueSvmMemFillTest, givenEnqueueSVMMemFillWhenUsingFillBufferBuilder // check if original builder is restored correctly auto &restoredBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); EXPECT_EQ(&origBuilder, &restoredBuilder); diff --git a/unit_tests/command_queue/enqueue_write_buffer_rect_tests.cpp b/unit_tests/command_queue/enqueue_write_buffer_rect_tests.cpp index 43821e9c09..f51190a27d 100644 --- a/unit_tests/command_queue/enqueue_write_buffer_rect_tests.cpp +++ b/unit_tests/command_queue/enqueue_write_buffer_rect_tests.cpp @@ -147,7 +147,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, EnqueueWriteBufferRectTest, WhenWritingBufferThenInd MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferRect, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_write_buffer_tests.cpp b/unit_tests/command_queue/enqueue_write_buffer_tests.cpp index 25ec3fd627..555d5958f3 100644 --- a/unit_tests/command_queue/enqueue_write_buffer_tests.cpp +++ b/unit_tests/command_queue/enqueue_write_buffer_tests.cpp @@ -139,7 +139,7 @@ HWTEST_F(EnqueueWriteBufferTypeTest, WhenWritingBufferThenIndirectDataIsAdded) { MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/enqueue_write_image_tests.cpp b/unit_tests/command_queue/enqueue_write_image_tests.cpp index 4bb15acbbe..17cd94b8ee 100644 --- a/unit_tests/command_queue/enqueue_write_image_tests.cpp +++ b/unit_tests/command_queue/enqueue_write_image_tests.cpp @@ -226,7 +226,6 @@ HWTEST_F(EnqueueWriteImageTest, GivenImage1DarrayWhenWriteImageIsCalledThenRowPi EBuiltInOps::Type copyBuiltIn = EBuiltInOps::CopyBufferToImage3d; auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( copyBuiltIn, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -247,7 +246,6 @@ HWTEST_F(EnqueueWriteImageTest, GivenImage1DarrayWhenWriteImageIsCalledThenRowPi EnqueueWriteImageHelper<>::enqueueWriteImage(pCmdQ, destImage, CL_FALSE, origin, region, rowPitch, slicePitch); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(copyBuiltIn, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); EXPECT_EQ(params->dstRowPitch, slicePitch); @@ -423,7 +421,6 @@ HWTEST_P(MipMapWriteImageTest, GivenImageWithMipLevelNonZeroWhenReadImageIsCalle auto &origBuilder = builtIns->getBuiltinDispatchInfoBuilder( EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); // substitute original builder with mock builder @@ -489,7 +486,6 @@ HWTEST_P(MipMapWriteImageTest, GivenImageWithMipLevelNonZeroWhenReadImageIsCalle EXPECT_EQ(CL_SUCCESS, retVal); auto &mockBuilder = static_cast(builtIns->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice())); auto params = mockBuilder.getBuiltinOpParams(); diff --git a/unit_tests/command_queue/get_size_required_buffer_tests.cpp b/unit_tests/command_queue/get_size_required_buffer_tests.cpp index e8ca000a49..50333f48e3 100644 --- a/unit_tests/command_queue/get_size_required_buffer_tests.cpp +++ b/unit_tests/command_queue/get_size_required_buffer_tests.cpp @@ -77,7 +77,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenFillingBufferThenHeapsAndCommandBufferCo MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::FillBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -130,7 +130,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenCopyingBufferThenHeapsAndCommandBufferCo MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -184,7 +184,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferNonBlockingThenHeapsAndComm MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -238,7 +238,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenReadingBufferBlockingThenThenHeapsAndCom MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -292,7 +292,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferNonBlockingThenHeapsAndComm MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -343,7 +343,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferBlockingThenHeapsAndCommand MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -378,7 +378,7 @@ HWTEST_F(GetSizeRequiredBufferTest, WhenWritingBufferBlockingThenHeapsAndCommand HWTEST_F(GetSizeRequiredBufferTest, givenMultipleKernelRequiringSshWhenTotalSizeIsComputedThenItIsProperlyAligned) { MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_queue/get_size_required_image_tests.cpp b/unit_tests/command_queue/get_size_required_image_tests.cpp index 1bb848c883..b1a4906720 100644 --- a/unit_tests/command_queue/get_size_required_image_tests.cpp +++ b/unit_tests/command_queue/get_size_required_image_tests.cpp @@ -68,7 +68,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenCopyingImageThenHeapsAndCommandBufferCons MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -171,7 +171,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageNonBlockingThenHeapsAndComman MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -225,7 +225,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenReadingImageBlockingThenHeapsAndCommandBu MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImage3dToBuffer, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -279,7 +279,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageNonBlockingThenHeapsAndComman MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -333,7 +333,7 @@ HWTEST_F(GetSizeRequiredImageTest, WhenWritingImageBlockingThenHeapsAndCommandBu MultiDispatchInfo multiDispatchInfo; auto &builder = pCmdQ->getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - pCmdQ->getContext(), pCmdQ->getDevice()); + pCmdQ->getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; diff --git a/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp b/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp index 75a720aa43..8165852c8a 100644 --- a/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp +++ b/unit_tests/command_stream/command_stream_receiver_flush_task_3_tests.cpp @@ -1524,7 +1524,7 @@ HWTEST_F(CommandStreamReceiverFlushTaskTests, GivenBlockedKernelWhenItIsUnblocke uint32_t numGrfRequired = 666u; auto pCmdQ = std::make_unique(&mockContext, pClDevice, nullptr); - auto mockProgram = std::make_unique(*pDevice->getExecutionEnvironment(), &mockContext, false); + auto mockProgram = std::make_unique(*pDevice->getExecutionEnvironment(), &mockContext, false, pDevice); std::unique_ptr pKernel(MockKernel::create(*pDevice, mockProgram.get(), numGrfRequired)); auto event = std::make_unique>(pCmdQ.get(), CL_COMMAND_MARKER, 0, 0); diff --git a/unit_tests/fixtures/kernel_data_fixture.h b/unit_tests/fixtures/kernel_data_fixture.h index 72c0606de3..2be4dec11a 100644 --- a/unit_tests/fixtures/kernel_data_fixture.h +++ b/unit_tests/fixtures/kernel_data_fixture.h @@ -52,7 +52,7 @@ class KernelDataTest : public testing::Test { void SetUp() override { kernelBinaryHeader.KernelNameSize = kernelNameSize; pContext = new MockContext; - program = std::make_unique(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false); + program = std::make_unique(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, nullptr); } void TearDown() override { diff --git a/unit_tests/fixtures/scenario_test_fixture.h b/unit_tests/fixtures/scenario_test_fixture.h index 4415b889be..35241b259d 100644 --- a/unit_tests/fixtures/scenario_test_fixture.h +++ b/unit_tests/fixtures/scenario_test_fixture.h @@ -32,7 +32,7 @@ class ScenarioTest : public ::testing::Test, cl_device_id clDevice = pDevice; context = Context::create(nullptr, ClDeviceVector(&clDevice, 1), nullptr, nullptr, retVal); commandQueue = new MockCommandQueue(context, pDevice, 0); - program = new MockProgram(*pDevice->getExecutionEnvironment(), context, false); + program = new MockProgram(*pDevice->getExecutionEnvironment(), context, false, &pDevice->getDevice()); kernelInternals = new MockKernelWithInternals(*pDevice, context); kernel = kernelInternals->mockKernel; diff --git a/unit_tests/gtpin/gtpin_tests.cpp b/unit_tests/gtpin/gtpin_tests.cpp index 4b8973ff29..a39b2557fc 100644 --- a/unit_tests/gtpin/gtpin_tests.cpp +++ b/unit_tests/gtpin/gtpin_tests.cpp @@ -982,7 +982,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenKernelWithoutSSHIsUsedThenK char binary[1024] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t binSize = 10; - MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal); + MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal, &pDevice->getDevice()); ASSERT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1028,7 +1028,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenKernelWithExecEnvIsUsedThen // Prepare a kernel with fake Execution Environment char binary[1024] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t binSize = 10; - MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal); + MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal, &pDevice->getDevice()); ASSERT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); @@ -2034,7 +2034,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenLowMemoryConditionOccursThe char binary[1024] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t binSize = 10; - MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal); + MockProgram *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, &binary[0], binSize, false, &retVal, &pDevice->getDevice()); ASSERT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); @@ -2305,7 +2305,7 @@ TEST_F(GTPinTests, givenInitializedGTPinInterfaceWhenOnKernelSubitIsCalledThenCo pKernelInfo->heapInfo.pKernelHeader = &kernelHeader; pKernelInfo->usesSsh = true; - auto pProgramm = std::make_unique(*pDevice->getExecutionEnvironment(), context.get(), false); + auto pProgramm = std::make_unique(*pDevice->getExecutionEnvironment(), context.get(), false, nullptr); std::unique_ptr cmdQ(new MockCommandQueue(context.get(), pDevice, nullptr)); std::unique_ptr pKernel(new MockKernel(pProgramm.get(), *pKernelInfo, *pDevice)); diff --git a/unit_tests/helpers/built_ins_helper.cpp b/unit_tests/helpers/built_ins_helper.cpp index 107b28fbd1..795ba22196 100644 --- a/unit_tests/helpers/built_ins_helper.cpp +++ b/unit_tests/helpers/built_ins_helper.cpp @@ -32,7 +32,8 @@ Program *createProgramForSip(ExecutionEnvironment &executionEnvironment, Context *context, std::vector &binary, size_t size, - cl_int *errcodeRet) { + cl_int *errcodeRet, + Device *device) { GlobalMockSipProgram::sipProgram->incRefApi(); GlobalMockSipProgram::sipProgram->resetAllocationState(); return GlobalMockSipProgram::sipProgram; diff --git a/unit_tests/helpers/dispatch_info_builder_tests.cpp b/unit_tests/helpers/dispatch_info_builder_tests.cpp index 6f7919f7d2..3a89dede6d 100644 --- a/unit_tests/helpers/dispatch_info_builder_tests.cpp +++ b/unit_tests/helpers/dispatch_info_builder_tests.cpp @@ -65,7 +65,7 @@ class DispatchInfoBuilderFixture : public ContextFixture, public DeviceFixture { pKernelInfo->kernelArgInfo[2].kernelArgPatchInfoVector[0].crossthreadOffset = 0x50; pKernelInfo->kernelArgInfo[2].kernelArgPatchInfoVector[0].size = (uint32_t)sizeof(void *); - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/helpers/dispatch_info_tests.cpp b/unit_tests/helpers/dispatch_info_tests.cpp index 97ff05e432..a89d353ba0 100644 --- a/unit_tests/helpers/dispatch_info_tests.cpp +++ b/unit_tests/helpers/dispatch_info_tests.cpp @@ -37,7 +37,7 @@ class DispatchInfoFixture : public ContextFixture, public DeviceFixture { pKernelInfo->patchInfo.mediavfestate = pMediaVFEstate; pPrintfSurface = new SPatchAllocateStatelessPrintfSurface(); pKernelInfo->patchInfo.pAllocateStatelessPrintfSurface = pPrintfSurface; - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); pKernel->slmTotalSize = 128; diff --git a/unit_tests/helpers/hardware_commands_helper_tests.cpp b/unit_tests/helpers/hardware_commands_helper_tests.cpp index 14bd2a70c3..dc2ce13e7e 100644 --- a/unit_tests/helpers/hardware_commands_helper_tests.cpp +++ b/unit_tests/helpers/hardware_commands_helper_tests.cpp @@ -65,7 +65,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, programInterfaceDescriptorData MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - cmdQ.getContext(), cmdQ.getDevice()); + cmdQ.getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -137,7 +137,7 @@ HWTEST_F(HardwareCommandsTest, sendCrossThreadDataResourceUsage) { MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - cmdQ.getContext(), cmdQ.getDevice()); + cmdQ.getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -171,7 +171,7 @@ HWTEST_F(HardwareCommandsTest, givenSendCrossThreadDataWhenWhenAddPatchInfoComme MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); auto kernelInfo = std::make_unique(); std::unique_ptr kernel(new MockKernel(&program, *kernelInfo, *pClDevice)); @@ -237,7 +237,7 @@ HWTEST_F(HardwareCommandsTest, givenSendCrossThreadDataWhenWhenAddPatchInfoComme MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); auto kernelInfo = std::make_unique(); std::unique_ptr kernel(new MockKernel(&program, *kernelInfo, *pClDevice)); @@ -285,7 +285,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, sendIndirectStateResourceUsage MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - cmdQ.getContext(), cmdQ.getDevice()); + cmdQ.getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -503,7 +503,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, whenSendingIndirectStateThenKe MultiDispatchInfo multiDispatchInfo; auto &builder = cmdQ.getDevice().getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyImageToImage3d, - cmdQ.getContext(), cmdQ.getDevice()); + cmdQ.getDevice()); BuiltinOpParams dc; dc.srcMemObj = img.get(); @@ -585,7 +585,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, usedBindingTableStatePointer) MultiDispatchInfo multiDispatchInfo; auto &builder = pDevice->getExecutionEnvironment()->getBuiltIns()->getBuiltinDispatchInfoBuilder(EBuiltInOps::CopyBufferToImage3d, - cmdQ.getContext(), cmdQ.getDevice()); + cmdQ.getDevice()); ASSERT_NE(nullptr, &builder); BuiltinOpParams dc; @@ -700,7 +700,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, HardwareCommandsTest, usedBindingTableStatePointersF // create program with valid context MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); // setup global memory char globalBuffer[16]; @@ -833,7 +833,7 @@ HWTEST_F(HardwareCommandsTest, setBindingTableStatesForKernelWithBuffersNotRequi // create program with valid context MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); // create kernel MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); @@ -891,7 +891,7 @@ HWTEST_F(HardwareCommandsTest, setBindingTableStatesForNoSurfaces) { // create program with valid context MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); // create kernel MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); diff --git a/unit_tests/kernel/clone_kernel_tests.cpp b/unit_tests/kernel/clone_kernel_tests.cpp index de21caabed..b6d4f087d1 100644 --- a/unit_tests/kernel/clone_kernel_tests.cpp +++ b/unit_tests/kernel/clone_kernel_tests.cpp @@ -80,7 +80,7 @@ class CloneKernelFixture : public ContextFixture, public DeviceFixture { pKernelInfo->kernelArgInfo[0].offsetVmeSadAdjustMode = 0x14; pKernelInfo->kernelArgInfo[0].offsetVmeSearchPathType = 0x1c; - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pSourceKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pSourceKernel->initialize()); diff --git a/unit_tests/kernel/kernel_accelerator_arg_tests.cpp b/unit_tests/kernel/kernel_accelerator_arg_tests.cpp index 5d6b1a8967..3090c50e3c 100644 --- a/unit_tests/kernel/kernel_accelerator_arg_tests.cpp +++ b/unit_tests/kernel/kernel_accelerator_arg_tests.cpp @@ -60,7 +60,7 @@ class KernelArgAcceleratorFixture : public ContextFixture, public DeviceFixture pKernelInfo->kernelArgInfo[0].offsetVmeSadAdjustMode = 0x14; pKernelInfo->kernelArgInfo[0].offsetVmeSearchPathType = 0x1c; - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, nullptr); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/kernel/kernel_arg_buffer_fixture.cpp b/unit_tests/kernel/kernel_arg_buffer_fixture.cpp index d59b87af19..d03bfc7b24 100644 --- a/unit_tests/kernel/kernel_arg_buffer_fixture.cpp +++ b/unit_tests/kernel/kernel_arg_buffer_fixture.cpp @@ -47,7 +47,7 @@ void KernelArgBufferFixture::SetUp() { pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset = 0x30; pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].size = (uint32_t)sizeof(void *); - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, nullptr); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/kernel/kernel_arg_pipe_tests.cpp b/unit_tests/kernel/kernel_arg_pipe_tests.cpp index ab6c14d93b..a8f58b65fb 100644 --- a/unit_tests/kernel/kernel_arg_pipe_tests.cpp +++ b/unit_tests/kernel/kernel_arg_pipe_tests.cpp @@ -55,7 +55,7 @@ class KernelArgPipeFixture : public ContextFixture, public DeviceFixture { pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset = 0x30; pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].size = (uint32_t)sizeof(void *); - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/kernel/kernel_arg_svm_tests.cpp b/unit_tests/kernel/kernel_arg_svm_tests.cpp index 68e9f23df6..bbfe538d3f 100644 --- a/unit_tests/kernel/kernel_arg_svm_tests.cpp +++ b/unit_tests/kernel/kernel_arg_svm_tests.cpp @@ -54,7 +54,7 @@ class KernelArgSvmFixture_ : public ContextFixture, public DeviceFixture { pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset = 0x30; pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].size = (uint32_t)sizeof(void *); - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); diff --git a/unit_tests/kernel/kernel_tests.cpp b/unit_tests/kernel/kernel_tests.cpp index 8ce576013d..722db6ba88 100644 --- a/unit_tests/kernel/kernel_tests.cpp +++ b/unit_tests/kernel/kernel_tests.cpp @@ -544,7 +544,7 @@ TEST_F(KernelPrivateSurfaceTest, testPrivateSurface) { // create kernel MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); @@ -582,7 +582,7 @@ TEST_F(KernelPrivateSurfaceTest, givenKernelWithPrivateSurfaceThatIsInUseByGpuWh pKernelInfo->patchInfo.executionEnvironment = &tokenEE; MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); std::unique_ptr pKernel(new MockKernel(&program, *pKernelInfo, *pClDevice)); pKernel->initialize(); @@ -626,7 +626,7 @@ TEST_F(KernelPrivateSurfaceTest, testPrivateSurfaceAllocationFailure) { // create kernel MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MemoryManagementFixture::InjectedFunction method = [&](size_t failureIndex) { MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); @@ -671,7 +671,7 @@ TEST_F(KernelPrivateSurfaceTest, given32BitDeviceWhenKernelIsCreatedThenPrivateS // create kernel MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); ASSERT_EQ(CL_SUCCESS, pKernel->initialize()); @@ -703,7 +703,7 @@ HWTEST_F(KernelPrivateSurfaceTest, givenStatefulKernelWhenKernelIsCreatedThenPri pKernelInfo->patchInfo.pAllocateStatelessPrivateSurface = &AllocateStatelessPrivateMemorySurface; MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); // create kernel MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); @@ -753,7 +753,7 @@ TEST_F(KernelPrivateSurfaceTest, givenStatelessKernelWhenKernelIsCreatedThenPriv MockGraphicsAllocation gfxAlloc(buffer, sizeof(buffer)); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); program.setConstantSurface(&gfxAlloc); // create kernel @@ -798,7 +798,7 @@ TEST_F(KernelPrivateSurfaceTest, GivenKernelWhenPrivateSurfaceTooBigAndGpuPointe pKernelInfo->patchInfo.pAllocateStatelessPrivateSurface = pAllocateStatelessPrivateSurface.get(); pKernelInfo->patchInfo.executionEnvironment = executionEnvironment.get(); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); std::unique_ptr pKernel(new MockKernel(&program, *pKernelInfo, *pClDevice)); pKernelInfo->gpuPointerSize = 4; pDevice->getMemoryManager()->setForce32BitAllocations(false); @@ -817,7 +817,7 @@ TEST_F(KernelPrivateSurfaceTest, GivenKernelWhenPrivateSurfaceTooBigAndGpuPointe pKernelInfo->patchInfo.pAllocateStatelessPrivateSurface = pAllocateStatelessPrivateSurface.get(); pKernelInfo->patchInfo.executionEnvironment = executionEnvironment.get(); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); std::unique_ptr pKernel(new MockKernel(&program, *pKernelInfo, *pClDevice)); pKernelInfo->gpuPointerSize = 4; pDevice->getMemoryManager()->setForce32BitAllocations(true); @@ -836,7 +836,7 @@ TEST_F(KernelPrivateSurfaceTest, GivenKernelWhenPrivateSurfaceTooBigAndGpuPointe pKernelInfo->patchInfo.pAllocateStatelessPrivateSurface = pAllocateStatelessPrivateSurface.get(); pKernelInfo->patchInfo.executionEnvironment = executionEnvironment.get(); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); std::unique_ptr pKernel(new MockKernel(&program, *pKernelInfo, *pClDevice)); pKernelInfo->gpuPointerSize = 8; pDevice->getMemoryManager()->setForce32BitAllocations(true); @@ -874,7 +874,7 @@ TEST_F(KernelGlobalSurfaceTest, givenBuiltInKernelWhenKernelIsCreatedThenGlobalS // create kernel MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); program.setGlobalSurface(&gfxAlloc); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); @@ -953,7 +953,7 @@ HWTEST_F(KernelGlobalSurfaceTest, givenStatefulKernelWhenKernelIsCreatedThenGlob auto bufferAddress = gfxAlloc.getGpuAddress(); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); program.setGlobalSurface(&gfxAlloc); // create kernel @@ -1128,7 +1128,7 @@ HWTEST_F(KernelConstantSurfaceTest, givenStatefulKernelWhenKernelIsCreatedThenCo auto bufferAddress = gfxAlloc.getGpuAddress(); MockContext context; - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); program.setConstantSurface(&gfxAlloc); // create kernel @@ -1216,7 +1216,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, KernelEventPoolSurfaceTest, givenStatefulKernelWhenK pKernelInfo->patchInfo.pAllocateStatelessEventPoolSurface = &AllocateStatelessEventPoolSurface; // create kernel - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); // setup surface state heap @@ -1268,7 +1268,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, KernelEventPoolSurfaceTest, givenStatefulKernelWhenE pKernelInfo->patchInfo.pAllocateStatelessEventPoolSurface = &AllocateStatelessEventPoolSurface; // create kernel - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); // setup surface state heap @@ -1426,7 +1426,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, KernelDefaultDeviceQueueSurfaceTest, givenStatefulKe pKernelInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface = &AllocateStatelessDefaultDeviceQueueSurface; // create kernel - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); // setup surface state heap @@ -1478,7 +1478,7 @@ HWCMDTEST_F(IGFX_GEN8_CORE, KernelDefaultDeviceQueueSurfaceTest, givenStatefulKe pKernelInfo->patchInfo.pAllocateStatelessDefaultDeviceQueueSurface = &AllocateStatelessDefaultDeviceQueueSurface; // create kernel - MockProgram program(*pDevice->getExecutionEnvironment(), &context, false); + MockProgram program(*pDevice->getExecutionEnvironment(), &context, false, pDevice); MockKernel *pKernel = new MockKernel(&program, *pKernelInfo, *pClDevice); // setup surface state heap @@ -1880,6 +1880,32 @@ HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAndNotRequiredMemSyncWhenM svmAllocationsManager->freeSVMAlloc(unifiedMemoryAllocation); } +HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryRequiredMemSyncWhenMakeResidentIsCalledThenAllocationIsDecommited) { + auto mockPageFaultManager = new MockPageFaultManager(); + static_cast(this->pDevice->getExecutionEnvironment()->memoryManager.get())->pageFaultManager.reset(mockPageFaultManager); + MockKernelWithInternals mockKernel(*this->pClDevice, nullptr, true); + auto &commandStreamReceiver = this->pDevice->getUltCommandStreamReceiver(); + + auto svmAllocationsManager = mockKernel.mockContext->getSVMAllocsManager(); + auto unifiedMemoryAllocation = svmAllocationsManager->createSharedUnifiedMemoryAllocation(pDevice->getRootDeviceIndex(), 4096u, SVMAllocsManager::UnifiedMemoryProperties(InternalMemoryType::SHARED_UNIFIED_MEMORY), mockKernel.mockContext->getSpecialQueue()); + auto unifiedMemoryGraphicsAllocation = svmAllocationsManager->getSVMAlloc(unifiedMemoryAllocation); + mockPageFaultManager->insertAllocation(unifiedMemoryAllocation, 4096u, svmAllocationsManager, mockKernel.mockContext->getSpecialQueue()); + + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + mockKernel.mockKernel->kernelArguments[0] = {Kernel::kernelArgType::SVM_ALLOC_OBJ, unifiedMemoryGraphicsAllocation->gpuAllocation, unifiedMemoryAllocation, 4096u, unifiedMemoryGraphicsAllocation->gpuAllocation, sizeof(uintptr_t)}; + mockKernel.mockKernel->setUnifiedMemorySyncRequirement(true); + + mockKernel.mockKernel->makeResident(commandStreamReceiver); + + EXPECT_EQ(mockPageFaultManager->allowMemoryAccessCalled, 0); + EXPECT_EQ(mockPageFaultManager->protectMemoryCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToCpuCalled, 1); + EXPECT_EQ(mockPageFaultManager->transferToGpuCalled, 1); + + EXPECT_EQ(0u, mockKernel.mockKernel->kernelUnifiedMemoryGfxAllocations.size()); + svmAllocationsManager->freeSVMAlloc(unifiedMemoryAllocation); +} + HWTEST_F(KernelResidencyTest, givenSharedUnifiedMemoryAllocPageFaultManagerAndIndirectAllocsAllowedWhenMakeResidentIsCalledThenAllocationIsDecommited) { auto mockPageFaultManager = new MockPageFaultManager(); static_cast(this->pDevice->getExecutionEnvironment()->memoryManager.get())->pageFaultManager.reset(mockPageFaultManager); @@ -2001,7 +2027,7 @@ TEST(KernelImageDetectionTests, givenKernelWithImagesOnlyWhenItIsAskedIfItHasIma auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *pKernelInfo, *device)); EXPECT_FALSE(kernel->usesOnlyImages()); kernel->initialize(); @@ -2017,7 +2043,7 @@ TEST(KernelImageDetectionTests, givenKernelWithImagesAndBuffersWhenItIsAskedIfIt auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *pKernelInfo, *device)); EXPECT_FALSE(kernel->usesOnlyImages()); kernel->initialize(); @@ -2031,7 +2057,7 @@ TEST(KernelImageDetectionTests, givenKernelWithNoImagesWhenItIsAskedIfItHasImage auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(platformDevices[0])); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *pKernelInfo, *device)); EXPECT_FALSE(kernel->usesOnlyImages()); kernel->initialize(); @@ -2627,7 +2653,7 @@ TEST(KernelTest, givenKernelWithKernelInfoWith32bitPointerSizeThenReport32bit) { MockContext context; auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); - MockProgram program(*device->getExecutionEnvironment(), &context, false); + MockProgram program(*device->getExecutionEnvironment(), &context, false, &device->getDevice()); std::unique_ptr kernel(new MockKernel(&program, info, *device.get())); EXPECT_TRUE(kernel->is32Bit()); @@ -2639,7 +2665,7 @@ TEST(KernelTest, givenKernelWithKernelInfoWith64bitPointerSizeThenReport64bit) { MockContext context; auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); - MockProgram program(*device->getExecutionEnvironment(), &context, false); + MockProgram program(*device->getExecutionEnvironment(), &context, false, &device->getDevice()); std::unique_ptr kernel(new MockKernel(&program, info, *device.get())); EXPECT_FALSE(kernel->is32Bit()); @@ -3113,7 +3139,7 @@ TEST_F(KernelMultiRootDeviceTest, privateSurfaceHasCorrectRootDeviceIndex) { tokenSPS.PerThreadPrivateMemorySize = 112; kernelInfo->patchInfo.pAllocateStatelessPrivateSurface = &tokenSPS; - MockProgram program(*device->getExecutionEnvironment(), context.get(), false); + MockProgram program(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice()); std::unique_ptr kernel(new MockKernel(&program, *kernelInfo, *device.get())); kernel->initialize(); @@ -3124,11 +3150,12 @@ TEST_F(KernelMultiRootDeviceTest, privateSurfaceHasCorrectRootDeviceIndex) { TEST(KernelCreateTest, whenInitFailedThenReturnNull) { struct MockProgram { - int getDevice(int) { return 0; } + Device &getDevice() { return mDevice.getDevice(); } void getSource(std::string &) {} + MockClDevice mDevice{new MockDevice}; } mockProgram; struct MockKernel { - MockKernel(MockProgram *, const KernelInfo &, int) {} + MockKernel(MockProgram *, const KernelInfo &, ClDevice &) {} int initialize() { return -1; }; }; diff --git a/unit_tests/mem_obj/buffer_set_arg_tests.cpp b/unit_tests/mem_obj/buffer_set_arg_tests.cpp index 38231a9f4c..53278cc22c 100644 --- a/unit_tests/mem_obj/buffer_set_arg_tests.cpp +++ b/unit_tests/mem_obj/buffer_set_arg_tests.cpp @@ -67,7 +67,7 @@ class BufferSetArgTest : public ContextFixture, pKernelInfo->heapInfo.pKernelHeader = &kernelHeader; pKernelInfo->usesSsh = true; - pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); pKernel = new MockKernel(pProgram, *pKernelInfo, *pClDevice); ASSERT_NE(nullptr, pKernel); diff --git a/unit_tests/mocks/mock_kernel.h b/unit_tests/mocks/mock_kernel.h index b4236d47e6..ead531e266 100644 --- a/unit_tests/mocks/mock_kernel.h +++ b/unit_tests/mocks/mock_kernel.h @@ -295,7 +295,7 @@ class MockKernelWithInternals { mockContext = context; } - mockProgram = new MockProgram(*deviceArg.getExecutionEnvironment(), context, false); + mockProgram = new MockProgram(*deviceArg.getExecutionEnvironment(), context, false, nullptr); mockKernel = new MockKernel(mockProgram, kernelInfo, deviceArg); mockKernel->setCrossThreadData(&crossThreadData, sizeof(crossThreadData)); mockKernel->setSshLocal(&sshLocal, sizeof(sshLocal)); @@ -367,7 +367,7 @@ class MockParentKernel : public Kernel { using Kernel::auxTranslationRequired; using Kernel::patchBlocksCurbeWithConstantValues; static MockParentKernel *create(Context &context, bool addChildSimdSize = false, bool addChildGlobalMemory = false, bool addChildConstantMemory = false, bool addPrintfForParent = true, bool addPrintfForBlock = true) { - ClDevice &device = *context.getDevice(0); + Device &device = context.getDevice(0)->getDevice(); auto info = new KernelInfo(); const size_t crossThreadSize = 160; @@ -442,7 +442,10 @@ class MockParentKernel : public Kernel { assert(crossThreadSize >= crossThreadOffset); info->crossThreadData = new char[crossThreadSize]; - auto parent = new MockParentKernel(mockProgram, *info, device); + auto clDevice = device.getSpecializedDevice(); + DEBUG_BREAK_IF(clDevice == nullptr); + + auto parent = new MockParentKernel(mockProgram, *info, *clDevice); parent->crossThreadData = new char[crossThreadSize]; memset(parent->crossThreadData, 0, crossThreadSize); parent->crossThreadDataSize = crossThreadSize; diff --git a/unit_tests/mocks/mock_program.cpp b/unit_tests/mocks/mock_program.cpp index b7a2db003f..b33246fbe8 100644 --- a/unit_tests/mocks/mock_program.cpp +++ b/unit_tests/mocks/mock_program.cpp @@ -23,7 +23,7 @@ namespace NEO { GlobalMockSipProgram *GlobalMockSipProgram::sipProgram; ExecutionEnvironment GlobalMockSipProgram::executionEnvironment; -ClDevice *MockProgram::getDevicePtr() { return this->pDevice; } +Device *MockProgram::getDevicePtr() { return this->pDevice; } std::string MockProgram::getCachedFileName() const { auto hwInfo = this->context->getDevice(0)->getHardwareInfo(); @@ -60,7 +60,8 @@ void GlobalMockSipProgram::initSipProgram() { binary.data(), binary.size(), true, - &retVal); + &retVal, + nullptr); DEBUG_BREAK_IF(retVal != 0); sipProgram->processGenBinaryOnce(); } @@ -106,7 +107,7 @@ Program *GlobalMockSipProgram::getSipProgramWithCustomBinary() { NEO::ProgramInfo programInfo; NEO::populateProgramInfo(programInfo, programTokens); - Program *ret = new Program(executionEnvironment, nullptr, false); + Program *ret = new Program(executionEnvironment, nullptr, false, nullptr); ret->processProgramInfo(programInfo); return ret; } diff --git a/unit_tests/mocks/mock_program.h b/unit_tests/mocks/mock_program.h index bb4d75adc4..ac60a8e9a2 100644 --- a/unit_tests/mocks/mock_program.h +++ b/unit_tests/mocks/mock_program.h @@ -82,7 +82,7 @@ class MockProgram : public Program { void setGlobalSurface(GraphicsAllocation *gfxAllocation) { globalSurface = gfxAllocation; } - void setDevice(ClDevice *device) { + void setDevice(Device *device) { this->pDevice = device; }; std::vector &getKernelInfoArray() { @@ -108,7 +108,7 @@ class MockProgram : public Program { void SetCreatedFromBinary(bool createdFromBin) { isCreatedFromBinary = createdFromBin; } void ClearLog() { buildLog.clear(); } void SetGlobalVariableTotalSize(size_t globalVarSize) { globalVarTotalSize = globalVarSize; } - void SetDevice(ClDevice *pDev) { pDevice = pDev; } + void SetDevice(Device *pDev) { pDevice = pDev; } void SetIrBinary(char *ptr, bool isSpirv) { irBinary.reset(ptr); @@ -124,7 +124,7 @@ class MockProgram : public Program { allowNonUniform = allow; } - ClDevice *getDevicePtr(); + Device *getDevicePtr(); bool isFlagOption(ConstStringRef option) override { if (isFlagOptionOverride != -1) { @@ -144,7 +144,7 @@ class MockProgram : public Program { this->isCreatedFromBinary = false; this->buildStatus = CL_BUILD_NONE; std::unordered_map builtins; - auto &device = this->pDevice->getDevice(); + auto &device = this->getDevice(); return this->build(&device, this->options.c_str(), false, builtins); } diff --git a/unit_tests/mocks/mock_sip.cpp b/unit_tests/mocks/mock_sip.cpp index 139e5ce544..c64e2024ef 100644 --- a/unit_tests/mocks/mock_sip.cpp +++ b/unit_tests/mocks/mock_sip.cpp @@ -42,7 +42,7 @@ MockSipKernel::MockSipKernel() : SipKernel(SipKernelType::Csr, nullptr) { 0u, MemoryConstants::pageSize, MemoryPool::System4KBPages); - this->program = new MockProgram(this->executionEnvironment, nullptr, false); + this->program = new MockProgram(this->executionEnvironment, nullptr, false, nullptr); } MockSipKernel::~MockSipKernel() = default; diff --git a/unit_tests/program/kernel_data.cpp b/unit_tests/program/kernel_data.cpp index c6628d5780..57ece99a86 100644 --- a/unit_tests/program/kernel_data.cpp +++ b/unit_tests/program/kernel_data.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2017-2019 Intel Corporation + * Copyright (C) 2017-2020 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -794,7 +794,7 @@ TEST_F(KernelDataTest, givenFlatImageDataParamTokenWhenDecodingThenSetAllOffsets if (pKernelData) { alignedFree(pKernelData); } - program = std::make_unique(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false); + program = std::make_unique(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, nullptr); } SPatchDataParameterBuffer dataParameterToken; diff --git a/unit_tests/program/printf_handler_tests.cpp b/unit_tests/program/printf_handler_tests.cpp index 9d17386503..0cd4a4c502 100644 --- a/unit_tests/program/printf_handler_tests.cpp +++ b/unit_tests/program/printf_handler_tests.cpp @@ -29,7 +29,7 @@ TEST(PrintfHandlerTest, givenNotPreparedPrintfHandlerWhenGetSurfaceIsCalledThenR auto pKernelInfo = std::make_unique(); pKernelInfo->patchInfo.pAllocateStatelessPrintfSurface = pPrintfSurface; - MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), &context, false); + MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), &context, false, &device->getDevice()); MockKernel *pKernel = new MockKernel(pProgram, *pKernelInfo, *device); MockMultiDispatchInfo multiDispatchInfo(pKernel); @@ -55,7 +55,7 @@ TEST(PrintfHandlerTest, givenPreparedPrintfHandlerWhenGetSurfaceIsCalledThenResu auto pKernelInfo = std::make_unique(); pKernelInfo->patchInfo.pAllocateStatelessPrintfSurface = pPrintfSurface; - MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), &context, false); + MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), &context, false, &device->getDevice()); uint64_t crossThread[10]; MockKernel *pKernel = new MockKernel(pProgram, *pKernelInfo, *device); @@ -115,7 +115,7 @@ TEST(PrintfHandlerTest, givenParentKernelWithPrintfAndBlockKernelWithoutPrintfWh TEST(PrintfHandlerTest, givenMultiDispatchInfoWithMultipleKernelsWhenCreatingAndDispatchingPrintfHandlerThenPickMainKernel) { MockContext context; auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); - auto program = std::make_unique(*device->getExecutionEnvironment(), &context, false); + auto program = std::make_unique(*device->getExecutionEnvironment(), &context, false, &device->getDevice()); auto mainKernelInfo = std::make_unique(); auto kernelInfo = std::make_unique(); @@ -168,7 +168,7 @@ TEST_F(PrintfHandlerMultiRootDeviceTests, printfSurfaceHasCorrectRootDeviceIndex auto kernelInfo = std::make_unique(); kernelInfo->patchInfo.pAllocateStatelessPrintfSurface = printfSurface.get(); - auto program = std::make_unique(*device->getExecutionEnvironment(), context.get(), false); + auto program = std::make_unique(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice()); uint64_t crossThread[10]; auto kernel = std::make_unique(program.get(), *kernelInfo, *device); diff --git a/unit_tests/program/process_elf_binary_tests.cpp b/unit_tests/program/process_elf_binary_tests.cpp index 68852249e9..65f5f0e0f2 100644 --- a/unit_tests/program/process_elf_binary_tests.cpp +++ b/unit_tests/program/process_elf_binary_tests.cpp @@ -28,7 +28,7 @@ class ProcessElfBinaryTests : public ::testing::Test { void SetUp() override { device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); program = std::make_unique(*device->getExecutionEnvironment()); - program->pDevice = device.get(); + program->pDevice = &device->getDevice(); } std::unique_ptr program; @@ -115,7 +115,7 @@ class ProcessElfBinaryTestsWithBinaryType : public ::testing::TestWithParam(MockDevice::createWithNewExecutionEnvironment(nullptr)); program = std::make_unique(*device->getExecutionEnvironment()); - program->pDevice = device.get(); + program->pDevice = &device->getDevice(); } std::unique_ptr program; diff --git a/unit_tests/program/program_data_tests.cpp b/unit_tests/program/program_data_tests.cpp index 6bebe826fe..3f92604be1 100644 --- a/unit_tests/program/program_data_tests.cpp +++ b/unit_tests/program/program_data_tests.cpp @@ -400,7 +400,7 @@ TEST(ProgramScopeMetadataTest, WhenPatchingGlobalSurfaceThenPickProperSourceBuff memset(decodedProgram.constSurfMutable + 1, 0U, sizeof(uintptr_t)); ProgramInfo programInfo; MockProgram program(execEnv); - program.pDevice = &device; + program.pDevice = &device.getDevice(); NEO::populateProgramInfo(programInfo, decodedProgram); program.processProgramInfo(programInfo); ASSERT_NE(nullptr, program.globalSurface); @@ -576,7 +576,7 @@ TEST_F(ProgramDataTest, whenLinkerInputValidThenIsaIsProperlyPatched) { program.globalSurface = new MockGraphicsAllocation(globalVariablesBuffer.data(), globalVariablesBuffer.size()); program.constantSurface = new MockGraphicsAllocation(globalConstantsBuffer.data(), globalConstantsBuffer.size()); - program.pDevice = this->pContext->getDevice(0); + program.pDevice = &this->pContext->getDevice(0)->getDevice(); auto ret = program.linkBinary(); EXPECT_EQ(CL_SUCCESS, ret); @@ -625,7 +625,7 @@ TEST_F(ProgramDataTest, whenRelocationsAreNotNeededThenIsaIsPreserved) { program.globalSurface = new MockGraphicsAllocation(globalVariablesBuffer.data(), globalVariablesBuffer.size()); program.constantSurface = new MockGraphicsAllocation(globalConstantsBuffer.data(), globalConstantsBuffer.size()); - program.pDevice = this->pContext->getDevice(0); + program.pDevice = &this->pContext->getDevice(0)->getDevice(); auto ret = program.linkBinary(); EXPECT_EQ(CL_SUCCESS, ret); diff --git a/unit_tests/program/program_tests.cpp b/unit_tests/program/program_tests.cpp index 02ac8f6e58..7c2856303a 100644 --- a/unit_tests/program/program_tests.cpp +++ b/unit_tests/program/program_tests.cpp @@ -335,7 +335,7 @@ TEST_P(ProgramFromBinaryTest, GetBuildInfo_InvalidDevice) { cl_device_id device = pClDevice; CreateProgramFromBinary(pContext, &device, BinaryFileName); MockProgram *p = pProgram; - p->SetDevice(reinterpret_cast(pContext)); + p->SetDevice(&pClDevice->getDevice()); retVal = pProgram->getBuildInfo( reinterpret_cast(pContext), @@ -475,8 +475,8 @@ TEST_P(ProgramFromBinaryTest, GetBuildInfo_AppendedLog) { EXPECT_EQ(0, strcmp("", (char *)param_value)); // Add more text to the log - pProgram->updateBuildLog(pClDevice, "testing", 8); - pProgram->updateBuildLog(pClDevice, "several", 8); + pProgram->updateBuildLog(&pClDevice->getDevice(), "testing", 8); + pProgram->updateBuildLog(&pClDevice->getDevice(), "several", 8); retVal = pProgram->getBuildInfo( device, @@ -608,7 +608,7 @@ TEST_P(ProgramFromBinaryTest, givenProgramWhenItIsBeingBuildThenItContainsGraphi EXPECT_NE(kernelInfo->heapInfo.pKernelHeap, kernelIsa); EXPECT_EQ(0, memcmp(kernelIsa, kernelInfo->heapInfo.pKernelHeap, kernelInfo->heapInfo.pKernelHeader->KernelHeapSize)); auto rootDeviceIndex = graphicsAllocation->getRootDeviceIndex(); - EXPECT_EQ(GmmHelper::decanonize(graphicsAllocation->getGpuBaseAddress()), pProgram->getDevice(0).getMemoryManager()->getInternalHeapBaseAddress(rootDeviceIndex)); + EXPECT_EQ(GmmHelper::decanonize(graphicsAllocation->getGpuBaseAddress()), pProgram->getDevice().getMemoryManager()->getInternalHeapBaseAddress(rootDeviceIndex)); } TEST_P(ProgramFromBinaryTest, whenProgramIsBeingRebuildThenOutdatedGlobalBuffersAreFreed) { @@ -731,7 +731,7 @@ TEST_P(ProgramFromSourceTest, CreateWithSource_Build) { // fail build - linked code is corrupted and cannot be postprocessed auto p3 = std::make_unique(*pPlatform->getDevice(0)->getExecutionEnvironment()); ClDevice *device = pPlatform->getClDevice(0); - p3->setDevice(device); + p3->setDevice(&device->getDevice()); std::string testFile; size_t sourceSize; testFile.append(clFiles); @@ -1033,7 +1033,7 @@ TEST_P(ProgramFromSourceTest, CompileProgramWithInternalFlags) { auto program = std::make_unique(executionEnvironment); cl_device_id deviceId = pContext->getDevice(0); ClDevice *pDevice = castToObject(deviceId); - program->setDevice(pDevice); + program->setDevice(&pDevice->getDevice()); program->sourceCode = "__kernel mock() {}"; // Ask to build created program without NEO::CompilerOptions::gtpinRera and NEO::CompilerOptions::greaterThan4gbBuffersRequired flags. @@ -1196,7 +1196,7 @@ TEST_P(ProgramFromSourceTest, CreateWithSource_Link) { // fail linking - linked code is corrupted and cannot be postprocessed auto p2 = std::make_unique(*pPlatform->getDevice(0)->getExecutionEnvironment()); ClDevice *device = pPlatform->getClDevice(0); - p2->setDevice(device); + p2->setDevice(&device->getDevice()); retVal = p2->link(0, nullptr, nullptr, 1, &program, nullptr, nullptr); EXPECT_EQ(CL_INVALID_BINARY, retVal); p2.reset(nullptr); @@ -1505,7 +1505,7 @@ TEST(ProgramFromBinaryTests, givenBinaryWithInvalidICBEThenErrorIsReturned) { { // whatever method we choose CL_INVALID_BINARY is always returned ExecutionEnvironment executionEnvironment; - std::unique_ptr pProgram(Program::createFromGenBinary(executionEnvironment, nullptr, &binHeader, binSize, false, &retVal)); + std::unique_ptr pProgram(Program::createFromGenBinary(executionEnvironment, nullptr, &binHeader, binSize, false, &retVal, nullptr)); ASSERT_NE(nullptr, pProgram.get()); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1529,7 +1529,7 @@ TEST(ProgramFromBinaryTests, givenEmptyProgramThenErrorIsReturned) { size_t binSize = sizeof(SProgramBinaryHeader); ExecutionEnvironment executionEnvironment; - std::unique_ptr pProgram(MockProgram::createFromGenBinary(executionEnvironment, nullptr, &binHeader, binSize, false, &retVal)); + std::unique_ptr pProgram(MockProgram::createFromGenBinary(executionEnvironment, nullptr, &binHeader, binSize, false, &retVal, nullptr)); ASSERT_NE(nullptr, pProgram.get()); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1555,7 +1555,7 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptions) { auto defaultSetting = DebugManager.flags.DisableStatelessToStatefulOptimization.get(); DebugManager.flags.DisableStatelessToStatefulOptimization.set(false); - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); char paramValue[32]; pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0); if (strstr(paramValue, "2.1")) { @@ -1574,7 +1574,7 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsForced20) { auto defaultVersion = pDevice->deviceInfo.clVersion; pDevice->deviceInfo.clVersion = "OpenCL 2.0"; - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); char paramValue[32]; pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0); EXPECT_STREQ("OpenCL 2.0", paramValue); @@ -1586,7 +1586,7 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenStatelessToStateful DebugManagerStateRestore restorer; DebugManager.flags.DisableStatelessToStatefulOptimization.set(true); - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); char paramValue[32]; pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0); if (strstr(paramValue, "2.1")) { @@ -1611,14 +1611,14 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn { EXPECT_FALSE(DebugManager.flags.UseBindlessBuffers.get()); EXPECT_FALSE(DebugManager.flags.UseBindlessImages.get()); - MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_FALSE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessBuffers)) << programNoBindless.getInternalOptions(); EXPECT_FALSE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessImages)) << programNoBindless.getInternalOptions(); } { DebugManager.flags.UseBindlessBuffers.set(true); - MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_TRUE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessBuffers)) << programNoBindless.getInternalOptions(); EXPECT_FALSE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessImages)) << programNoBindless.getInternalOptions(); } @@ -1626,7 +1626,7 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn { DebugManager.flags.UseBindlessBuffers.set(false); DebugManager.flags.UseBindlessImages.set(true); - MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_FALSE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessBuffers)) << programNoBindless.getInternalOptions(); EXPECT_TRUE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessImages)) << programNoBindless.getInternalOptions(); } @@ -1634,7 +1634,7 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn { DebugManager.flags.UseBindlessBuffers.set(true); DebugManager.flags.UseBindlessImages.set(true); - MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram programNoBindless(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_TRUE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessBuffers)) << programNoBindless.getInternalOptions(); EXPECT_TRUE(CompilerOptions::contains(programNoBindless.getInternalOptions(), CompilerOptions::bindlessImages)) << programNoBindless.getInternalOptions(); } @@ -1642,7 +1642,7 @@ TEST_F(ProgramTests, WhenCreatingProgramThenBindlessIsEnabledOnlyIfDebugFlagIsEn TEST_F(ProgramTests, givenDeviceThatSupportsSharedSystemMemoryAllocationWhenProgramIsCompiledThenItForcesStatelessCompilation) { pDevice->deviceInfo.sharedSystemMemCapabilities = CL_UNIFIED_SHARED_MEMORY_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_ATOMIC_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ACCESS_INTEL | CL_UNIFIED_SHARED_MEMORY_CONCURRENT_ATOMIC_ACCESS_INTEL; - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_TRUE(CompilerOptions::contains(program.getInternalOptions().c_str(), CompilerOptions::greaterThan4gbBuffersRequired)) << program.getInternalOptions(); } @@ -1653,7 +1653,7 @@ TEST_F(ProgramTests, ProgramCtorSetsProperInternalOptionsWhenForcing32BitAddress DebugManager.flags.DisableStatelessToStatefulOptimization.set(false); if (pDevice) { const_cast(&pDevice->getDeviceInfo())->force32BitAddressess = true; - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); char paramValue[32]; pClDevice->getDeviceInfo(CL_DEVICE_VERSION, 32, paramValue, 0); if (strstr(paramValue, "2.1")) { @@ -1750,7 +1750,7 @@ TEST_F(ProgramTests, GivenContextWhenCreateProgramThenIncrementContextRefCount) auto initialApiRefCount = pContext->getReference(); auto initialInternalRefCount = pContext->getRefInternalCount(); - MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_EQ(pContext->getReference(), initialApiRefCount); EXPECT_EQ(pContext->getRefInternalCount(), initialInternalRefCount + 1); @@ -1811,7 +1811,7 @@ TEST_F(ProgramTests, ProgramCreateT3Success) { TEST_F(ProgramTests, ProgramFromGenBinaryWithNullBinary) { cl_int retVal = CL_SUCCESS; - Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, nullptr, 0, false, &retVal); + Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, nullptr, 0, false, &retVal, pDevice); EXPECT_EQ(nullptr, pProgram); EXPECT_NE(CL_SUCCESS, retVal); } @@ -1821,7 +1821,7 @@ TEST_F(ProgramTests, ProgramFromGenBinary) { char binary[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t size = 10; - Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, false, &retVal); + Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, false, &retVal, pDevice); EXPECT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1842,7 +1842,7 @@ TEST_F(ProgramTests, ProgramFromGenBinaryWithBuiltInFlagSet) { char binary[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t size = 10; - Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, true, &retVal); + Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, true, &retVal, pDevice); EXPECT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); @@ -1855,7 +1855,7 @@ TEST_F(ProgramTests, ProgramFromGenBinaryWithoutRetVal) { char binary[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t size = 10; - Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, false, nullptr); + Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), pContext, binary, size, false, nullptr, pDevice); EXPECT_NE(nullptr, pProgram); EXPECT_EQ((uint32_t)CL_PROGRAM_BINARY_TYPE_EXECUTABLE, (uint32_t)pProgram->getProgramBinaryType()); @@ -1873,7 +1873,7 @@ TEST_F(ProgramTests, ProgramFromGenBinaryWithNullcontext) { char binary[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, '\0'}; size_t size = 10; - Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), nullptr, binary, size, false, &retVal); + Program *pProgram = Program::createFromGenBinary(*pDevice->getExecutionEnvironment(), nullptr, binary, size, false, &retVal, pDevice); EXPECT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); EXPECT_EQ((uint32_t)CL_PROGRAM_BINARY_TYPE_EXECUTABLE, (uint32_t)pProgram->getProgramBinaryType()); @@ -1891,7 +1891,7 @@ TEST_F(ProgramTests, givenProgramFromGenBinaryWhenSLMSizeIsBiggerThenDeviceLimit PatchTokensTestData::ValidProgramWithKernelUsingSlm patchtokensProgram; patchtokensProgram.slmMutable->TotalInlineLocalMemorySize = static_cast(pDevice->getDeviceInfo().localMemSize * 2); patchtokensProgram.recalcTokPtr(); - auto program = std::make_unique(*pDevice->getExecutionEnvironment(), nullptr, false); + auto program = std::make_unique(*pDevice->getExecutionEnvironment(), nullptr, false, pDevice); program->unpackedDeviceBinary = makeCopy(patchtokensProgram.storage.data(), patchtokensProgram.storage.size()); program->unpackedDeviceBinarySize = patchtokensProgram.storage.size(); auto retVal = program->processGenBinary(); @@ -1905,7 +1905,7 @@ TEST_F(ProgramTests, RebuildBinaryButNoCompilerInterface) { EXPECT_NE(nullptr, program); cl_device_id deviceId = pContext->getDevice(0); ClDevice *pDevice = castToObject(deviceId); - program->setDevice(pDevice); + program->setDevice(&pDevice->getDevice()); // Load a binary program file std::string filePath; @@ -1929,7 +1929,7 @@ TEST_F(ProgramTests, BuildProgramWithReraFlag) { auto program = std::make_unique(executionEnvironment); cl_device_id deviceId = pContext->getDevice(0); ClDevice *pDevice = castToObject(deviceId); - program->setDevice(pDevice); + program->setDevice(&pDevice->getDevice()); program->sourceCode = "__kernel mock() {}"; program->createdFrom = Program::CreatedFrom::SOURCE; @@ -1961,7 +1961,7 @@ TEST_F(ProgramTests, RebuildBinaryWithProcessGenBinaryError) { EXPECT_NE(nullptr, program); cl_device_id deviceId = pContext->getDevice(0); ClDevice *pDevice = castToObject(deviceId); - program->setDevice(pDevice); + program->setDevice(&pDevice->getDevice()); // Load a binary program file std::string filePath; @@ -1980,7 +1980,7 @@ TEST_F(ProgramTests, RebuildBinaryWithProcessGenBinaryError) { } TEST_F(ProgramTests, GivenZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfacesCalledThenNoSurfaceIsCreated) { - MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); uint32_t crossThreadOffsetBlock = 0; @@ -2006,7 +2006,7 @@ TEST_F(ProgramTests, GivenZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfaces } TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfacesCalledThenSurfaceIsCreated) { - MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); uint32_t crossThreadOffsetBlock = 0; @@ -2032,7 +2032,7 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa } TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfacesCalledThenSecondSurfaceIsNotCreated) { - MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); uint32_t crossThreadOffsetBlock = 0; @@ -2066,7 +2066,7 @@ TEST_F(ProgramTests, GivenNonZeroPrivateSizeInBlockWhenAllocateBlockProvateSurfa } TEST_F(ProgramTests, givenProgramWithBlockKernelsWhenfreeBlockResourcesisCalledThenFreeGraphhicsAllocationsFromBlockKernelManagerIsCalled) { - MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram *program = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); uint32_t crossThreadOffsetBlock = 0; @@ -2083,7 +2083,7 @@ TEST_F(ProgramTests, givenProgramWithBlockKernelsWhenfreeBlockResourcesisCalledT program->blockKernelManager->addBlockKernelInfo(infoBlock); - GraphicsAllocation *privateSurface = program->getDevice(0).getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); + GraphicsAllocation *privateSurface = program->getDevice().getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); EXPECT_NE(nullptr, privateSurface); program->getBlockKernelManager()->pushPrivateSurface(privateSurface, 0); @@ -2113,7 +2113,7 @@ TEST_F(Program32BitTests, givenDeviceWithForce32BitAddressingOnWhenBuiltinIsCrea } TEST_F(Program32BitTests, givenDeviceWithForce32BitAddressingOnWhenProgramIsCreatedThen32bitFlagIsPassedAsInternalOption) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto &internalOptions = program.getInternalOptions(); std::string s1 = internalOptions; size_t pos = s1.find(NEO::CompilerOptions::arch32bit); @@ -2125,11 +2125,11 @@ TEST_F(Program32BitTests, givenDeviceWithForce32BitAddressingOnWhenProgramIsCrea } TEST_F(ProgramTests, givenNewProgramTheStatelessToStatefulBufferOffsetOtimizationIsMatchingThePlatformEnablingStatus) { - MockProgram prog(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram prog(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto &internalOpts = prog.getInternalOptions(); HardwareCapabilities hwCaps = {0}; - HwHelper::get(prog.getDevice(0).getHardwareInfo().platform.eRenderCoreFamily).setupHardwareCapabilities(&hwCaps, prog.getDevice(0).getHardwareInfo()); + HwHelper::get(prog.getDevice().getHardwareInfo().platform.eRenderCoreFamily).setupHardwareCapabilities(&hwCaps, prog.getDevice().getHardwareInfo()); if (hwCaps.isStatelesToStatefullWithOffsetSupported) { EXPECT_TRUE(CompilerOptions::contains(internalOpts, CompilerOptions::hasBufferOffsetArg)); } else { @@ -2139,8 +2139,8 @@ TEST_F(ProgramTests, givenNewProgramTheStatelessToStatefulBufferOffsetOtimizatio template struct CreateProgramFromBinaryMock : public MockProgram { - CreateProgramFromBinaryMock(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn) - : MockProgram(executionEnvironment, context, isBuiltIn) { + CreateProgramFromBinaryMock(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn, Device *device) + : MockProgram(executionEnvironment, context, isBuiltIn, nullptr) { } cl_int createProgramFromBinary(const void *pBinary, @@ -2305,7 +2305,7 @@ TEST_F(ProgramTests, linkingTwoValidSpirvProgramsReturnsValidProgram) { } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenNoParentAndSubgroupKernelsThenSeparateNoneKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_EQ(0u, program.getKernelInfoArray().size()); EXPECT_EQ(0u, program.getParentKernelInfoArray().size()); @@ -2318,7 +2318,7 @@ TEST_F(ProgramTests, givenSeparateBlockKernelsWhenNoParentAndSubgroupKernelsThen } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenRegularKernelsThenSeparateNoneKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto pRegularKernel1Info = new KernelInfo(); pRegularKernel1Info->name = "regular_kernel_1"; @@ -2340,7 +2340,7 @@ TEST_F(ProgramTests, givenSeparateBlockKernelsWhenRegularKernelsThenSeparateNone } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenChildLikeKernelWithoutParentKernelThenSeparateNoneKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto pParentKernelInfo = new KernelInfo(); pParentKernelInfo->name = "another_parent_kernel"; @@ -2364,7 +2364,7 @@ TEST_F(ProgramTests, givenSeparateBlockKernelsWhenChildLikeKernelWithoutParentKe } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenChildLikeKernelWithoutSubgroupKernelThenSeparateNoneKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto pSubgroupKernelInfo = new KernelInfo(); pSubgroupKernelInfo->name = "another_subgroup_kernel"; @@ -2388,7 +2388,7 @@ TEST_F(ProgramTests, givenSeparateBlockKernelsWhenChildLikeKernelWithoutSubgroup } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenParentKernelWithChildKernelThenSeparateChildKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto pParentKernelInfo = new KernelInfo(); pParentKernelInfo->name = "parent_kernel"; @@ -2412,7 +2412,7 @@ TEST_F(ProgramTests, givenSeparateBlockKernelsWhenParentKernelWithChildKernelThe } TEST_F(ProgramTests, givenSeparateBlockKernelsWhenSubgroupKernelWithChildKernelThenSeparateChildKernel) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); auto pSubgroupKernelInfo = new KernelInfo(); pSubgroupKernelInfo->name = "subgroup_kernel"; @@ -2439,7 +2439,7 @@ TEST(SimpleProgramTests, givenDefaultProgramWhenSetDeviceIsCalledThenDeviceIsSet ExecutionEnvironment executionEnvironment; MockProgram program(executionEnvironment); EXPECT_EQ(nullptr, program.getDevicePtr()); - auto dummyDevice = (ClDevice *)0x1337; + auto dummyDevice = (Device *)0x1337; program.SetDevice(dummyDevice); EXPECT_EQ(dummyDevice, program.getDevicePtr()); program.SetDevice(nullptr); @@ -2450,7 +2450,7 @@ TEST(ProgramDestructionTests, givenProgramUsingDeviceWhenItIsDestroyedAfterPlatf initPlatform(); auto device = platform()->getClDevice(0); MockContext *context = new MockContext(device, false); - MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), context, false); + MockProgram *pProgram = new MockProgram(*device->getExecutionEnvironment(), context, false, &device->getDevice()); auto globalAllocation = device->getMemoryManager()->allocateGraphicsMemoryWithProperties(MockAllocationProperties{MemoryConstants::pageSize}); pProgram->setGlobalSurface(globalAllocation); @@ -2481,7 +2481,7 @@ TEST_F(ProgramTests, givenProgramWithSpirvWhenRebuildProgramIsCalledThenSpirvPat std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) { gEnvironment->igcPopDebugVars(); }}; auto program = clUniquePtr(new MockProgram(*pDevice->getExecutionEnvironment())); - program->setDevice(device); + program->setDevice(&device->getDevice()); uint32_t spirv[16] = {0x03022307, 0x23471113, 0x17192329}; program->irBinary = makeCopy(spirv, sizeof(spirv)); program->irBinarySize = sizeof(spirv); @@ -2512,7 +2512,7 @@ TEST_F(ProgramTests, whenRebuildingProgramThenStoreDeviceBinaryProperly) { std::unique_ptr igcDebugVarsAutoPop{&gEnvironment, [](void *) { gEnvironment->igcPopDebugVars(); }}; auto program = clUniquePtr(new MockProgram(*pDevice->getExecutionEnvironment())); - program->setDevice(device); + program->setDevice(&device->getDevice()); uint32_t ir[16] = {0x03022307, 0x23471113, 0x17192329}; program->irBinary = makeCopy(ir, sizeof(ir)); program->irBinarySize = sizeof(ir); @@ -2621,8 +2621,8 @@ TEST(CreateProgramFromBinaryTests, givenBinaryProgramWhenKernelRebulildIsForcedT PatchTokensTestData::ValidEmptyProgram programTokens; auto clDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); - std::unique_ptr pProgram(Program::createFromGenBinary(*clDevice->getExecutionEnvironment(), nullptr, programTokens.storage.data(), programTokens.storage.size(), false, &retVal)); - pProgram->pDevice = clDevice.get(); + std::unique_ptr pProgram(Program::createFromGenBinary(*clDevice->getExecutionEnvironment(), nullptr, programTokens.storage.data(), programTokens.storage.size(), false, &retVal, &clDevice->getDevice())); + pProgram->pDevice = &clDevice->getDevice(); ASSERT_NE(nullptr, pProgram.get()); EXPECT_EQ(CL_SUCCESS, retVal); @@ -2640,8 +2640,8 @@ TEST(CreateProgramFromBinaryTests, givenBinaryProgramWhenKernelRebulildIsNotForc PatchTokensTestData::ValidEmptyProgram programTokens; auto clDevice = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); - std::unique_ptr pProgram(Program::createFromGenBinary(*clDevice->getExecutionEnvironment(), nullptr, programTokens.storage.data(), programTokens.storage.size(), false, &retVal)); - pProgram->pDevice = clDevice.get(); + std::unique_ptr pProgram(Program::createFromGenBinary(*clDevice->getExecutionEnvironment(), nullptr, programTokens.storage.data(), programTokens.storage.size(), false, &retVal, &clDevice->getDevice())); + pProgram->pDevice = &clDevice->getDevice(); ASSERT_NE(nullptr, pProgram.get()); EXPECT_EQ(CL_SUCCESS, retVal); @@ -2685,7 +2685,7 @@ struct setProgramSpecializationConstantTests : public ::testing::Test { void SetUp() override { mockProgram.reset(new SpecializationConstantProgramMock(executionEnvironment)); mockProgram->isSpirV = true; - mockProgram->SetDevice(&device); + mockProgram->SetDevice(&device.getDevice()); EXPECT_FALSE(mockProgram->areSpecializationConstantsInitialized); EXPECT_EQ(0, mockCompiler->counter); @@ -2868,7 +2868,7 @@ TEST_F(ProgramBinTest, GivenDebugDataAvailableWhenLinkingProgramThenDebugDataIsS using ProgramMultiRootDeviceTests = MultiRootDeviceFixture; TEST_F(ProgramMultiRootDeviceTests, privateSurfaceHasCorrectRootDeviceIndex) { - auto program = std::make_unique(*device->getExecutionEnvironment(), context.get(), false); + auto program = std::make_unique(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice()); auto privateSurfaceBlock = std::make_unique(); privateSurfaceBlock->DataParamOffset = 0; diff --git a/unit_tests/program/program_with_block_kernels_tests.cpp b/unit_tests/program/program_with_block_kernels_tests.cpp index f9dc99a7d9..bc07c5837f 100644 --- a/unit_tests/program/program_with_block_kernels_tests.cpp +++ b/unit_tests/program/program_with_block_kernels_tests.cpp @@ -104,7 +104,7 @@ TEST_F(ProgramWithBlockKernelsTest, GivenKernelWithBlockKernelsWhenProgramIsLink ASSERT_NE(nullptr, pProgram); EXPECT_EQ(CL_SUCCESS, retVal); - Program *programLinked = new Program(*pPlatform->peekExecutionEnvironment(), pContext, false); + Program *programLinked = new Program(*pPlatform->peekExecutionEnvironment(), pContext, false, nullptr); cl_program program = pProgram; retVal = pProgram->compile(1, &device, buildOptions, 0, nullptr, nullptr, nullptr, nullptr); diff --git a/unit_tests/program/program_with_kernel_debug_tests.cpp b/unit_tests/program/program_with_kernel_debug_tests.cpp index e1abc88e37..065059ea81 100644 --- a/unit_tests/program/program_with_kernel_debug_tests.cpp +++ b/unit_tests/program/program_with_kernel_debug_tests.cpp @@ -25,12 +25,12 @@ using namespace NEO; TEST_F(ProgramTests, givenDeafultProgramObjectWhenKernelDebugEnabledIsQueriedThenFalseIsReturned) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); EXPECT_FALSE(program.isKernelDebugEnabled()); } TEST_F(ProgramTests, givenProgramObjectWhenEnableKernelDebugIsCalledThenProgramHasKernelDebugEnabled) { - MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false); + MockProgram program(*pDevice->getExecutionEnvironment(), pContext, false, pDevice); program.enableKernelDebug(); EXPECT_TRUE(program.isKernelDebugEnabled()); } @@ -187,7 +187,7 @@ TEST_F(ProgramWithKernelDebuggingTest, givenEnabledKernelDebugWhenProgramIsLinke cl_int retVal = pProgram->compile(1, &device, nullptr, 0, nullptr, nullptr, nullptr, nullptr); EXPECT_EQ(CL_SUCCESS, retVal); - auto program = std::unique_ptr(new GMockProgram(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false)); + auto program = std::unique_ptr(new GMockProgram(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false, &pContext->getDevice(0)->getDevice())); program->enableKernelDebug(); EXPECT_CALL(*program, appendKernelDebugOptions()).Times(1); diff --git a/unit_tests/scheduler/scheduler_kernel_tests.cpp b/unit_tests/scheduler/scheduler_kernel_tests.cpp index aade008e78..a7002203dc 100644 --- a/unit_tests/scheduler/scheduler_kernel_tests.cpp +++ b/unit_tests/scheduler/scheduler_kernel_tests.cpp @@ -121,8 +121,8 @@ TEST(SchedulerKernelTest, getCurbeSize) { TEST(SchedulerKernelTest, setArgsForSchedulerKernel) { auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; unique_ptr scheduler = unique_ptr(MockSchedulerKernel::create(*program, device->getDevice(), infoPtr)); @@ -151,8 +151,8 @@ TEST(SchedulerKernelTest, setArgsForSchedulerKernel) { TEST(SchedulerKernelTest, setArgsForSchedulerKernelWithNullDebugQueue) { auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; @@ -182,8 +182,8 @@ TEST(SchedulerKernelTest, setArgsForSchedulerKernelWithNullDebugQueue) { TEST(SchedulerKernelTest, givenGraphicsAllocationWithDifferentCpuAndGpuAddressesWhenCallSetArgsThenGpuAddressesAreTaken) { auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; @@ -217,8 +217,8 @@ TEST(SchedulerKernelTest, createKernelReflectionForForcedSchedulerDispatch) { DebugManager.flags.ForceDispatchScheduler.set(true); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; @@ -236,8 +236,8 @@ TEST(SchedulerKernelTest, createKernelReflectionSecondTimeForForcedSchedulerDisp DebugManager.flags.ForceDispatchScheduler.set(true); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; @@ -259,8 +259,8 @@ TEST(SchedulerKernelTest, createKernelReflectionForSchedulerDoesNothing) { DebugManager.flags.ForceDispatchScheduler.set(false); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); - program->setDevice(device.get()); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); + program->setDevice(&device->getDevice()); unique_ptr info(nullptr); KernelInfo *infoPtr = nullptr; diff --git a/unit_tests/utilities/file_logger_tests.cpp b/unit_tests/utilities/file_logger_tests.cpp index 9021b35628..e4362fa041 100644 --- a/unit_tests/utilities/file_logger_tests.cpp +++ b/unit_tests/utilities/file_logger_tests.cpp @@ -541,7 +541,7 @@ TEST(FileLogger, WithDebugFunctionalityDumpKernelArgsBufferNotSet) { auto kernelInfo = std::make_unique(); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *kernelInfo, *device)); KernelArgPatchInfo kernelArgPatchInfo; @@ -575,7 +575,7 @@ TEST(FileLogger, WithDebugFunctionalityDumpKernelArgsBuffer) { cl_mem clObj = buffer; auto kernelInfo = std::make_unique(); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *kernelInfo, *device)); KernelArgPatchInfo kernelArgPatchInfo; @@ -614,7 +614,7 @@ TEST(FileLogger, WithDebugFunctionalityDumpKernelArgsSampler) { auto kernelInfo = std::make_unique(); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *kernelInfo, *device)); KernelArgPatchInfo kernelArgPatchInfo; @@ -642,7 +642,7 @@ TEST(FileLogger, WithDebugFunctionalityDumpKernelArgsImageNotSet) { auto kernelInfo = std::make_unique(); auto device = std::make_unique(MockDevice::createWithNewExecutionEnvironment(nullptr)); auto context = clUniquePtr(new MockContext(device.get())); - auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false)); + auto program = clUniquePtr(new MockProgram(*device->getExecutionEnvironment(), context.get(), false, &device->getDevice())); auto kernel = clUniquePtr(new MockKernel(program.get(), *kernelInfo, *device)); SKernelBinaryHeaderCommon kernelHeader;