Skip to content

Commit 524737a

Browse files
Add executionEnvironment field to Program
Change-Id: Id624177aa3f0b5525bac86e2e0a935ebaf53480e Signed-off-by: Maciej Dziuban <[email protected]>
1 parent 956ee41 commit 524737a

File tree

56 files changed

+294
-244
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+294
-244
lines changed

runtime/api/api.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1361,7 +1361,7 @@ cl_program CL_API_CALL clLinkProgram(cl_context context,
13611361
pContext = castToObject<Context>(context);
13621362
}
13631363
if (pContext != nullptr) {
1364-
program = new Program(pContext, false);
1364+
program = new Program(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false);
13651365
retVal = program->link(numDevices, deviceList, options,
13661366
numInputPrograms, inputPrograms,
13671367
funcNotify, userData);

runtime/program/create.inl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ T *Program::create(
3737
auto pContext = castToObject<Context>(context);
3838
DEBUG_BREAK_IF(!pContext);
3939

40-
auto program = new T(pContext, false);
40+
auto program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false);
4141

4242
auto retVal = program->createProgramFromBinary(binaries[0], lengths[0]);
4343

@@ -76,7 +76,7 @@ T *Program::create(
7676
lengths);
7777

7878
if (CL_SUCCESS == retVal) {
79-
program = new T(pContext, false);
79+
program = new T(*pContext->getDevice(0)->getExecutionEnvironment(), pContext, false);
8080
program->sourceCode.swap(combinedString);
8181
}
8282

@@ -99,7 +99,7 @@ T *Program::create(
9999
}
100100

101101
if (retVal == CL_SUCCESS) {
102-
program = new T();
102+
program = new T(*device.getExecutionEnvironment());
103103
program->setSource((char *)nullTerminatedString);
104104
program->context = context;
105105
program->isBuiltIn = isBuiltIn;
@@ -136,7 +136,7 @@ T *Program::createFromGenBinary(
136136
}
137137

138138
if (CL_SUCCESS == retVal) {
139-
program = new T(context, isBuiltIn);
139+
program = new T(executionEnvironment, context, isBuiltIn);
140140
program->numDevices = 1;
141141
program->storeGenBinary(binary, size);
142142
program->isCreatedFromBinary = true;
@@ -164,7 +164,7 @@ T *Program::createFromIL(Context *ctx,
164164
return nullptr;
165165
}
166166

167-
T *program = new T(ctx, false);
167+
T *program = new T(*ctx->getDevice(0)->getExecutionEnvironment(), ctx, false);
168168
errcodeRet = program->createProgramFromBinary(il, length);
169169
if (errcodeRet != CL_SUCCESS) {
170170
delete program;

runtime/program/program.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,13 @@ namespace OCLRT {
3636
const std::string Program::clOptNameClVer("-cl-std=CL");
3737
const std::string Program::clOptNameUniformWgs{"-cl-uniform-work-group-size"};
3838

39-
Program::Program() : Program(nullptr, false) {
39+
Program::Program(ExecutionEnvironment &executionEnvironment) : Program(executionEnvironment, nullptr, false) {
4040
numDevices = 0;
4141
}
4242

43-
Program::Program(Context *context, bool isBuiltIn) : context(context), isBuiltIn(isBuiltIn) {
43+
Program::Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn) : executionEnvironment(executionEnvironment),
44+
context(context),
45+
isBuiltIn(isBuiltIn) {
4446
if (this->context && !this->isBuiltIn) {
4547
this->context->incRefInternal();
4648
}

runtime/program/program.h

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
namespace OCLRT {
4242
class Context;
4343
class CompilerInterface;
44+
class ExecutionEnvironment;
4445
template <>
4546
struct OpenCLObjectMapper<_cl_program> {
4647
typedef class Program DerivedType;
@@ -95,7 +96,7 @@ class Program : public BaseObject<_cl_program> {
9596
size_t length,
9697
cl_int &errcodeRet);
9798

98-
Program(Context *context, bool isBuiltIn);
99+
Program(ExecutionEnvironment &executionEnvironment, Context *context, bool isBuiltIn);
99100
~Program() override;
100101

101102
Program(const Program &) = delete;
@@ -144,6 +145,10 @@ class Program : public BaseObject<_cl_program> {
144145
return context;
145146
}
146147

148+
ExecutionEnvironment &peekExecutionEnvironment() const {
149+
return executionEnvironment;
150+
}
151+
147152
const Device &getDevice(cl_uint deviceOrdinal) const {
148153
return *pDevice;
149154
}
@@ -240,7 +245,7 @@ class Program : public BaseObject<_cl_program> {
240245
}
241246

242247
protected:
243-
Program();
248+
Program(ExecutionEnvironment &executionEnvironment);
244249

245250
MOCKABLE_VIRTUAL bool isSafeToSkipUnhandledToken(unsigned int token) const;
246251

@@ -322,6 +327,7 @@ class Program : public BaseObject<_cl_program> {
322327

323328
std::map<const Device*, std::string> buildLog;
324329

330+
ExecutionEnvironment& executionEnvironment;
325331
Context* context;
326332
Device* pDevice;
327333
cl_uint numDevices;

unit_tests/accelerators/media_image_arg_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ class MediaImageSetArgTest : public DeviceFixture,
4848
void SetUp() override {
4949
DeviceFixture::SetUp();
5050
pKernelInfo = KernelInfo::create();
51-
program = std::make_unique<MockProgram>();
51+
program = std::make_unique<MockProgram>(*pDevice->getExecutionEnvironment());
5252

5353
kernelHeader.SurfaceStateHeapSize = sizeof(surfaceStateHeap);
5454
pKernelInfo->heapInfo.pSsh = surfaceStateHeap;

unit_tests/api/cl_api_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ void api_fixture::SetUp() {
4747

4848
pCommandQueue = new CommandQueue(pContext, pDevice, 0);
4949

50-
pProgram = new MockProgram(pContext, false);
50+
pProgram = new MockProgram(*pDevice->getExecutionEnvironment(), pContext, false);
5151

5252
pKernel = new MockKernel(pProgram, *pProgram->MockProgram::getKernelInfo(), *pDevice);
5353
ASSERT_NE(nullptr, pKernel);
@@ -76,7 +76,7 @@ void api_fixture_using_aligned_memory_manager::SetUp() {
7676

7777
commandQueue = new CommandQueue(context, devPtr, 0);
7878

79-
program = new MockProgram(ctxPtr, false);
79+
program = new MockProgram(*device->getExecutionEnvironment(), ctxPtr, false);
8080
Program *prgPtr = reinterpret_cast<Program *>(program);
8181

8282
kernel = new MockKernel(prgPtr, *program->MockProgram::getKernelInfo(), *devPtr);

unit_tests/api/cl_create_kernel_tests.inl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ TEST_F(clCreateKernelTests, givenInvalidKernelWhenCreatingNewKernelThenReturnClI
9292
KernelInfo *pKernelInfo = KernelInfo::create();
9393
pKernelInfo->isValid = false;
9494

95-
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(pContext, false);
95+
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(*pPlatform->peekExecutionEnvironment(), pContext, false);
9696
pMockProg->addKernelInfo(pKernelInfo);
9797
pMockProg->SetBuildStatus(CL_BUILD_SUCCESS);
9898

@@ -173,7 +173,7 @@ TEST_F(clCreateKernelTests, givenNullKernelNameWhenCreatingNewKernelThenReturnCl
173173
KernelInfo *pKernelInfo = KernelInfo::create();
174174
pKernelInfo->isValid = true;
175175

176-
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(pContext, false);
176+
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(*pPlatform->peekExecutionEnvironment(), pContext, false);
177177
pMockProg->addKernelInfo(pKernelInfo);
178178

179179
kernel = clCreateKernel(
@@ -199,7 +199,7 @@ TEST_F(clCreateKernelTests, invalidProgram) {
199199

200200
TEST_F(clCreateKernelTests, givenProgramWithBuildErrorWhenCreatingNewKernelThenReturnClInvalidProgramExecutable) {
201201
cl_kernel kernel = nullptr;
202-
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(pContext, false);
202+
std::unique_ptr<MockProgram> pMockProg = std::make_unique<MockProgram>(*pPlatform->peekExecutionEnvironment(), pContext, false);
203203
pMockProg->SetBuildStatus(CL_BUILD_ERROR);
204204

205205
kernel = clCreateKernel(

unit_tests/built_ins/built_in_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -458,7 +458,7 @@ HWTEST_F(BuiltInTests, givenKernelWithAuxTranslationRequiredWhenEnqueueCalledThe
458458
auto mockAuxBuiltInOp = new MockAuxBuilInOp<FamilyType>(*pBuiltIns, *pContext, *pDevice);
459459
pBuiltIns->BuiltinOpsBuilders[static_cast<uint32_t>(EBuiltInOps::AuxTranslation)].first.reset(mockAuxBuiltInOp);
460460

461-
MockProgram mockProgram;
461+
MockProgram mockProgram(*pDevice->getExecutionEnvironment());
462462
auto mockBuiltinKernel = MockKernel::create(*pDevice, &mockProgram);
463463
mockAuxBuiltInOp->usedKernels.at(0).reset(mockBuiltinKernel);
464464

unit_tests/command_queue/command_queue_tests.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -920,7 +920,7 @@ TEST(CommandQueue, givenEnqueueAcquireSharedObjectsCallWhenAcquireFailsThenCorre
920920

921921
HWTEST_F(CommandQueueCommandStreamTest, givenDebugKernelWhenSetupDebugSurfaceIsCalledThenSurfaceStateIsCorrectlySet) {
922922
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
923-
MockProgram program;
923+
MockProgram program(*pDevice->getExecutionEnvironment());
924924
program.enableKernelDebug();
925925
std::unique_ptr<MockDebugKernel> kernel(MockKernel::create<MockDebugKernel>(*pDevice, &program));
926926
CommandQueue cmdQ(context.get(), pDevice, 0);
@@ -939,7 +939,7 @@ HWTEST_F(CommandQueueCommandStreamTest, givenDebugKernelWhenSetupDebugSurfaceIsC
939939

940940
HWTEST_F(CommandQueueCommandStreamTest, givenCsrWithDebugSurfaceAllocatedWhenSetupDebugSurfaceIsCalledThenDebugSurfaceIsReused) {
941941
using RENDER_SURFACE_STATE = typename FamilyType::RENDER_SURFACE_STATE;
942-
MockProgram program;
942+
MockProgram program(*pDevice->getExecutionEnvironment());
943943
program.enableKernelDebug();
944944
std::unique_ptr<MockDebugKernel> kernel(MockKernel::create<MockDebugKernel>(*pDevice, &program));
945945
CommandQueue cmdQ(context.get(), pDevice, 0);

0 commit comments

Comments
 (0)