mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-21 09:14:47 +08:00
In Kernel::resolveArgs, use argument's object, not value
Change-Id: I65a1855349707d06172b2e0d4ad97dd9f4554c25
This commit is contained in:
committed by
sys_ocldev
parent
70d5113d6b
commit
404c0cccb9
@@ -2104,8 +2104,7 @@ void Kernel::resolveArgs() {
|
||||
bool canTransformImageTo2dArray = true;
|
||||
for (uint32_t i = 0; i < patchedArgumentsNum; i++) {
|
||||
if (kernelInfo.kernelArgInfo.at(i).isSampler) {
|
||||
auto clSamplerObj = *(static_cast<const cl_sampler *>(kernelArguments.at(i).value));
|
||||
auto sampler = castToObjectOrAbort<Sampler>(clSamplerObj);
|
||||
auto sampler = castToObject<Sampler>(kernelArguments.at(i).object);
|
||||
if (sampler->isTransformable()) {
|
||||
canTransformImageTo2dArray = true;
|
||||
} else {
|
||||
|
||||
@@ -190,6 +190,31 @@ HWTEST_F(SamplerSetArgTest, GivenSamplerObjectWhenSetKernelArgIsCalledThenIncrea
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
}
|
||||
|
||||
HWTEST_F(SamplerSetArgTest, GivenSamplerObjectWhenSetKernelArgIsCalledThenSamplerObjectSurvivesClReleaseSampler) {
|
||||
cl_sampler samplerObj = Sampler::create(
|
||||
context,
|
||||
CL_TRUE,
|
||||
CL_ADDRESS_MIRRORED_REPEAT,
|
||||
CL_FILTER_NEAREST,
|
||||
retVal);
|
||||
|
||||
auto pSampler = castToObject<Sampler>(samplerObj);
|
||||
auto refCountBefore = pSampler->getRefInternalCount();
|
||||
|
||||
retVal = pKernel->setArg(
|
||||
0,
|
||||
sizeof(samplerObj),
|
||||
&samplerObj);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
retVal = clReleaseSampler(samplerObj);
|
||||
ASSERT_EQ(CL_SUCCESS, retVal);
|
||||
|
||||
auto refCountAfter = pSampler->getRefInternalCount();
|
||||
|
||||
EXPECT_EQ(refCountBefore, refCountAfter);
|
||||
}
|
||||
|
||||
HWTEST_F(SamplerSetArgTest, GivenSamplerObjectWhenSetKernelArgIsCalledAndKernelIsDeletedThenRefCountIsUnchanged) {
|
||||
auto myKernel = std::make_unique<MockKernel>(program.get(), *pKernelInfo, *pDevice);
|
||||
ASSERT_NE(nullptr, myKernel.get());
|
||||
@@ -234,9 +259,7 @@ HWTEST_F(SamplerSetArgTest, GivenNewSamplerObjectWhensSetKernelArgIsCalledThenDe
|
||||
CL_FILTER_NEAREST,
|
||||
retVal);
|
||||
|
||||
auto clSamplerObj = *(static_cast<const cl_sampler *>(&samplerObj));
|
||||
cl_sampler s = clSamplerObj;
|
||||
auto pSampler = castToObjectOrAbort<Sampler>(s);
|
||||
auto pSampler = castToObject<Sampler>(samplerObj);
|
||||
|
||||
retVal = pKernel->setArg(
|
||||
0,
|
||||
|
||||
Reference in New Issue
Block a user