Skip to content

Commit 69004a7

Browse files
Add extra parameter to setImageArg()
Signed-off-by: Igor Venevtsev <[email protected]>
1 parent da9d039 commit 69004a7

File tree

14 files changed

+40
-39
lines changed

14 files changed

+40
-39
lines changed

opencl/source/gen11/image_gen11.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2020 Intel Corporation
2+
* Copyright (C) 2018-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -39,7 +39,7 @@ void ImageHw<GfxFamily>::setSurfaceMemoryObjectControlStateIndexToMocsTable(void
3939
surfaceState->setSurfaceMemoryObjectControlStateIndexToMocsTables(value);
4040
}
4141
template <>
42-
void ImageHw<Family>::appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex) {
42+
void ImageHw<Family>::appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex, bool useGlobalAtomics) {
4343
if (hasAlphaChannel(&imageFormat)) {
4444
surfaceState->setSampleTapDiscardDisable(RENDER_SURFACE_STATE::SAMPLE_TAP_DISCARD_DISABLE_ENABLE);
4545
}

opencl/source/kernel/kernel.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1557,7 +1557,8 @@ cl_int Kernel::setArgImageWithMipLevel(uint32_t argIndex,
15571557
DEBUG_BREAK_IF(!kernelInfo.isVmeWorkload);
15581558
pImage->setMediaImageArg(surfaceState, rootDeviceIndex);
15591559
} else {
1560-
pImage->setImageArg(surfaceState, kernelArgInfo.isMediaBlockImage, mipLevel, rootDeviceIndex);
1560+
pImage->setImageArg(surfaceState, kernelArgInfo.isMediaBlockImage, mipLevel, rootDeviceIndex,
1561+
getKernelInfo().kernelDescriptor.kernelAttributes.flags.useGlobalAtomics);
15611562
}
15621563

15631564
auto &imageDesc = pImage->getImageDesc();

opencl/source/mem_obj/image.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ class Image : public MemObj {
135135
void *paramValue,
136136
size_t *paramValueSizeRet);
137137

138-
virtual void setImageArg(void *memory, bool isMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex) = 0;
138+
virtual void setImageArg(void *memory, bool isMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex, bool useGlobalAtomics) = 0;
139139
virtual void setMediaImageArg(void *memory, uint32_t rootDeviceIndex) = 0;
140140
virtual void setMediaSurfaceRotation(void *memory) = 0;
141141
virtual void setSurfaceMemoryObjectControlStateIndexToMocsTable(void *memory, uint32_t value) = 0;
@@ -300,12 +300,12 @@ class ImageHw : public Image {
300300
}
301301
}
302302

303-
void setImageArg(void *memory, bool setAsMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex) override;
303+
void setImageArg(void *memory, bool setAsMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex, bool useGlobalAtomics) override;
304304
void setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfaceState);
305305
void setMediaImageArg(void *memory, uint32_t rootDeviceIndex) override;
306306
void setMediaSurfaceRotation(void *memory) override;
307307
void setSurfaceMemoryObjectControlStateIndexToMocsTable(void *memory, uint32_t value) override;
308-
void appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex);
308+
void appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex, bool useGlobalAtomics);
309309
void appendSurfaceStateDepthParams(RENDER_SURFACE_STATE *surfaceState, Gmm *gmm);
310310
void appendSurfaceStateExt(void *memory);
311311
void transformImage2dArrayTo3d(void *memory) override;

opencl/source/mem_obj/image.inl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ union SURFACE_STATE_BUFFER_LENGTH {
3131
};
3232

3333
template <typename GfxFamily>
34-
void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex) {
34+
void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex, bool useGlobalAtomics) {
3535
using SURFACE_FORMAT = typename RENDER_SURFACE_STATE::SURFACE_FORMAT;
3636
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(memory);
3737

@@ -93,7 +93,7 @@ void ImageHw<GfxFamily>::setImageArg(void *memory, bool setAsMediaBlockImage, ui
9393
}
9494
appendSurfaceStateDepthParams(surfaceState, gmm);
9595
EncodeSurfaceState<GfxFamily>::appendImageCompressionParams(surfaceState, graphicsAllocation, gmmHelper, isImageFromBuffer());
96-
appendSurfaceStateParams(surfaceState, rootDeviceIndex);
96+
appendSurfaceStateParams(surfaceState, rootDeviceIndex, useGlobalAtomics);
9797
appendSurfaceStateExt(surfaceState);
9898
}
9999

@@ -124,7 +124,7 @@ void ImageHw<GfxFamily>::setAuxParamsForMultisamples(RENDER_SURFACE_STATE *surfa
124124
}
125125

126126
template <typename GfxFamily>
127-
void ImageHw<GfxFamily>::appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex) {
127+
void ImageHw<GfxFamily>::appendSurfaceStateParams(RENDER_SURFACE_STATE *surfaceState, uint32_t rootDeviceIndex, bool useGlobalAtomics) {
128128
}
129129

130130
template <typename GfxFamily>

opencl/test/unit_test/command_queue/enqueue_map_image_tests.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -939,7 +939,7 @@ TEST_F(EnqueueMapImageTest, givenImage1DArrayWhenEnqueueMapImageIsCalledThenRetu
939939
surfaceFormat, nullptr) {
940940
}
941941

942-
void setImageArg(void *memory, bool isMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex) override {}
942+
void setImageArg(void *memory, bool isMediaBlockImage, uint32_t mipLevel, uint32_t rootDeviceIndex, bool useGlobalAtomics) override {}
943943
void setMediaImageArg(void *memory, uint32_t rootDeviceIndex) override {}
944944
void setMediaSurfaceRotation(void *memory) override {}
945945
void setSurfaceMemoryObjectControlStateIndexToMocsTable(void *memory, uint32_t value) override {}

opencl/test/unit_test/gen11/image_tests_gen11.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ GEN11TEST_F(AppendSurfaceStateParamsTest, givenImageFormatWithoutAlphaChannelWhe
5959
createImage();
6060

6161
auto imageHw = static_cast<ImageHw<ICLFamily> *>(image.get());
62-
imageHw->appendSurfaceStateParams(&surfaceState, context.getDevice(0)->getRootDeviceIndex());
62+
imageHw->appendSurfaceStateParams(&surfaceState, context.getDevice(0)->getRootDeviceIndex(), false);
6363

6464
bool tapDiscardConfigChanged = RENDER_SURFACE_STATE::SAMPLE_TAP_DISCARD_DISABLE_DISABLE != surfaceState.getSampleTapDiscardDisable();
6565
EXPECT_FALSE(tapDiscardConfigChanged);
@@ -71,7 +71,7 @@ GEN11TEST_F(AppendSurfaceStateParamsTest, givenImageFormatWithAlphaChannelWhenAp
7171
createImage();
7272

7373
auto imageHw = static_cast<ImageHw<ICLFamily> *>(image.get());
74-
imageHw->appendSurfaceStateParams(&surfaceState, context.getDevice(0)->getRootDeviceIndex());
74+
imageHw->appendSurfaceStateParams(&surfaceState, context.getDevice(0)->getRootDeviceIndex(), false);
7575

7676
bool tapDiscardConfigChanged = RENDER_SURFACE_STATE::SAMPLE_TAP_DISCARD_DISABLE_DISABLE != surfaceState.getSampleTapDiscardDisable();
7777
EXPECT_TRUE(tapDiscardConfigChanged);

opencl/test/unit_test/gen12lp/image_tests_gen12lp.inl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ GEN12LPTEST_F(gen12LpImageTests, WhenAppendingSurfaceStateParamsThenSurfaceState
3636

3737
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
3838

39-
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex());
39+
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex(), false);
4040

4141
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
4242
}

opencl/test/unit_test/gen8/image_tests_gen8.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2020 Intel Corporation
2+
* Copyright (C) 2018-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -23,7 +23,7 @@ GEN8TEST_F(gen8ImageTests, WhenAppendingSurfaceStateParamsThenSurfaceStateDoesNo
2323

2424
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
2525

26-
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex());
26+
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex(), false);
2727

2828
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
2929
}

opencl/test/unit_test/gen9/image_tests_gen9.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (C) 2018-2020 Intel Corporation
2+
* Copyright (C) 2018-2021 Intel Corporation
33
*
44
* SPDX-License-Identifier: MIT
55
*
@@ -23,7 +23,7 @@ GEN9TEST_F(gen9ImageTests, appendSurfaceSWhenAppendingSurfaceStateParamsThenSurf
2323

2424
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
2525

26-
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex());
26+
imageHw->appendSurfaceStateParams(&surfaceStateAfter, context.getDevice(0)->getRootDeviceIndex(), false);
2727

2828
EXPECT_EQ(0, memcmp(&surfaceStateBefore, &surfaceStateAfter, sizeof(RENDER_SURFACE_STATE)));
2929
}

opencl/test/unit_test/mem_obj/image_set_arg_tests.cpp

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ HWTEST_F(ImageSetArgTest, WhenSettingKernelArgImageThenSurfaceBaseAddressIsSetCo
127127
ptrOffset(pKernel->getSurfaceStateHeap(),
128128
pKernelInfo->kernelArgInfo[0].offsetHeap));
129129

130-
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex());
130+
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex(), false);
131131

132132
auto surfaceAddress = surfaceState->getSurfaceBaseAddress();
133133
EXPECT_EQ(srcAllocation->getGpuAddress(), surfaceAddress);
@@ -142,7 +142,7 @@ HWTEST_F(ImageSetArgTest, GivenMediaBlockImageWhenSettingImageArgThenCorrectValu
142142

143143
RENDER_SURFACE_STATE surfaceState;
144144

145-
srcImage->setImageArg(&surfaceState, true, 0, pClDevice->getRootDeviceIndex());
145+
srcImage->setImageArg(&surfaceState, true, 0, pClDevice->getRootDeviceIndex(), false);
146146

147147
auto computedWidth = surfaceState.getWidth();
148148
auto expectedWidth = (srcImage->getImageDesc().image_width * srcImage->getSurfaceFormatInfo().surfaceFormat.ImageElementSizeInBytes) / sizeof(uint32_t);
@@ -155,7 +155,7 @@ HWTEST_F(ImageSetArgTest, GivenNormalImageWhenSettingImageArgThenCorrectValueIsS
155155

156156
RENDER_SURFACE_STATE surfaceState;
157157

158-
srcImage->setImageArg(&surfaceState, true, 0, pClDevice->getRootDeviceIndex());
158+
srcImage->setImageArg(&surfaceState, true, 0, pClDevice->getRootDeviceIndex(), false);
159159

160160
auto computedWidth = surfaceState.getWidth();
161161

@@ -179,14 +179,14 @@ HWTEST_F(ImageSetArgTest, givenImageWhenSettingMipTailStartLodThenProgramValueFr
179179

180180
mockGmmResourceInfo->setMipTailStartLod(mipTailStartLod);
181181

182-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
182+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
183183
EXPECT_EQ(mipTailStartLod, surfaceState.getMipTailStartLod());
184184

185185
// default value
186186
delete gmm;
187187
srcAllocation->setDefaultGmm(nullptr);
188188

189-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
189+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
190190
EXPECT_EQ(0u, surfaceState.getMipTailStartLod());
191191
}
192192

@@ -202,7 +202,7 @@ HWTEST_F(ImageSetArgTest, givenCubeMapIndexWhenSetKernelArgImageIsCalledThenModi
202202
ptrOffset(pKernel->getSurfaceStateHeap(),
203203
pKernelInfo->kernelArgInfo[0].offsetHeap));
204204

205-
src2dImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex());
205+
src2dImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex(), false);
206206

207207
auto renderTargetViewExtent = surfaceState->getRenderTargetViewExtent();
208208
auto minimumArrayElement = surfaceState->getMinimumArrayElement();
@@ -229,7 +229,7 @@ struct ImageSetArgSurfaceArrayTest : ImageSetArgTest {
229229
std::unique_ptr<Image> image{Image2dHelper<>::create(context, &imageDesc)};
230230
image->setCubeFaceIndex(__GMM_NO_CUBE_MAP);
231231

232-
image->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
232+
image->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
233233
EXPECT_EQ(expectedSurfaceArray, surfaceState.getSurfaceArray());
234234
}
235235
};
@@ -294,7 +294,7 @@ HWTEST_F(ImageSetArgTest, givenImageArraySizeGreaterThanOneButTypeIsNotImageArra
294294
image->setCubeFaceIndex(__GMM_NO_CUBE_MAP);
295295

296296
typename FamilyType::RENDER_SURFACE_STATE surfaceState{};
297-
image->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
297+
image->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
298298
EXPECT_FALSE(surfaceState.getSurfaceArray());
299299
}
300300

@@ -306,7 +306,7 @@ HWTEST_F(ImageSetArgTest, givenNonCubeMapIndexWhenSetKernelArgImageIsCalledThenD
306306
pKernelInfo->kernelArgInfo[0].offsetHeap));
307307

308308
EXPECT_EQ(srcImage->getCubeFaceIndex(), __GMM_NO_CUBE_MAP);
309-
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex());
309+
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex(), false);
310310

311311
auto renderTargetViewExtent = surfaceState->getRenderTargetViewExtent();
312312
auto minimumArrayElement = surfaceState->getMinimumArrayElement();
@@ -337,7 +337,7 @@ HWTEST_F(ImageSetArgTest, givenOffsetedBufferWhenSetKernelArgImageIscalledThenFu
337337
auto graphicsAllocation = srcAllocation;
338338
graphicsAllocation->setGpuBaseAddress(12345u);
339339

340-
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex());
340+
srcImage->setImageArg(const_cast<RENDER_SURFACE_STATE *>(surfaceState), false, 0, pClDevice->getRootDeviceIndex(), false);
341341

342342
auto surfaceAddress = surfaceState->getSurfaceBaseAddress();
343343
EXPECT_EQ(srcAllocation->getGpuAddress(), surfaceAddress);
@@ -888,7 +888,7 @@ HWTEST_F(ImageSetArgTest, givenRenderCompressedResourceWhenSettingImgArgThenSetC
888888

889889
srcAllocation->getDefaultGmm()->isRenderCompressed = true;
890890

891-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
891+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
892892

893893
EXPECT_TRUE(EncodeSurfaceState<FamilyType>::isAuxModeEnabled(&surfaceState, srcAllocation->getDefaultGmm()));
894894
EXPECT_EQ(1u, surfaceState.getAuxiliarySurfacePitch());
@@ -909,7 +909,7 @@ HWTEST_F(ImageSetArgTest, givenNonRenderCompressedResourceWhenSettingImgArgThenD
909909
EXPECT_EQ(0u, surfaceState.getAuxiliarySurfaceQpitch());
910910
EXPECT_EQ(1u, surfaceState.getAuxiliarySurfacePitch());
911911

912-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
912+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
913913

914914
EXPECT_TRUE(surfaceState.getAuxiliarySurfaceMode() == AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_NONE);
915915
EXPECT_EQ(1u, surfaceState.getAuxiliarySurfacePitch());
@@ -1141,7 +1141,7 @@ HWTEST_F(ImageSetArgTest, givenImageWithOffsetGreaterThan4GBWhenSurfaceStateIsPr
11411141
uint64_t surfaceOffset = 8 * GB;
11421142

11431143
srcImage->setSurfaceOffsets(surfaceOffset, 0, 0, 0);
1144-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
1144+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
11451145

11461146
auto expectedAddress = srcAllocation->getGpuAddress() + surfaceOffset;
11471147
auto surfaceAddress = surfaceState.getSurfaceBaseAddress();
@@ -1158,7 +1158,7 @@ HWTEST_F(ImageSetArgTest, givenMediaCompressedResourceSurfaceModeIsNone) {
11581158

11591159
gmm->gmmResourceInfo->getResourceFlags()->Info.MediaCompressed = true;
11601160
gmm->isRenderCompressed = true;
1161-
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex());
1161+
srcImage->setImageArg(&surfaceState, false, 0, pClDevice->getRootDeviceIndex(), false);
11621162

11631163
EXPECT_EQ(surfaceState.getAuxiliarySurfaceMode(), AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_NONE);
11641164
}

0 commit comments

Comments
 (0)