@@ -106,3 +106,62 @@ HWTEST_F(ImageSurfaceStateTests, givenGmmWhenSetAuxParamsForCCSThenAuxiliarySurf
106106 mockGmm.isCompressionEnabled = true ;
107107 EXPECT_TRUE (EncodeSurfaceState<FamilyType>::isAuxModeEnabled (castSurfaceState, &mockGmm));
108108}
109+
110+ HWTEST_F (ImageSurfaceStateTests, givenHwInfoAndSurfaceStateWhenCheckIfArrayNeededThenFalseReturned) {
111+ EXPECT_FALSE (checkIfArrayNeeded<FamilyType>(ImageType::Image2D, &pDevice->getHardwareInfo ()));
112+ }
113+ HWTEST_EXCLUDE_PRODUCT (ImageSurfaceStateTests, givenHwInfoAndSurfaceStateWhenCheckIfArrayNeededThenFalseReturned, IGFX_XE_HP_SDV);
114+
115+ HWTEST2_F (ImageSurfaceStateTests, givenHwInfoAndSurfaceStateWhenSurfaceTypeIsNotSurface2DThenCheckIfArrayReturnFalse, IsXeHpCore) {
116+ EXPECT_FALSE (checkIfArrayNeeded<FamilyType>(ImageType::Image1D, &pDevice->getHardwareInfo ()));
117+ }
118+ HWTEST2_F (ImageSurfaceStateTests, givenHwInfoWhenSurface2DThenCheckIfArrayReturnTrue, IsXeHpCore) {
119+ EXPECT_TRUE (checkIfArrayNeeded<FamilyType>(ImageType::Image2D, &pDevice->getHardwareInfo ()));
120+ }
121+
122+ HWTEST_F (ImageSurfaceStateTests, givenImage2DTypeWhenCheckIfArrayNeededReturnsTureThenArrayFlagIsSet) {
123+ if (!checkIfArrayNeeded<FamilyType>(ImageType::Image2D, &pDevice->getHardwareInfo ())) {
124+ GTEST_SKIP ();
125+ }
126+ auto size = sizeof (typename FamilyType::RENDER_SURFACE_STATE);
127+ auto surfaceState = std::make_unique<char []>(size);
128+ auto castSurfaceState = reinterpret_cast <typename FamilyType::RENDER_SURFACE_STATE *>(surfaceState.get ());
129+
130+ imageInfo.imgDesc .imageType = ImageType::Image2D;
131+ imageInfo.imgDesc .imageDepth = 1 ;
132+ imageInfo.imgDesc .imageArraySize = 1 ;
133+ SurfaceOffsets surfaceOffsets = {0 , 0 , 0 , 0 };
134+ const uint32_t cubeFaceIndex = __GMM_NO_CUBE_MAP;
135+ SurfaceFormatInfo surfaceFormatInfo;
136+ surfaceFormatInfo.GenxSurfaceFormat = GFX3DSTATE_SURFACEFORMAT::GFX3DSTATE_SURFACEFORMAT_A32_FLOAT;
137+ imageInfo.surfaceFormat = &surfaceFormatInfo;
138+
139+ const uint64_t gpuAddress = 0x000001a78a8a8000 ;
140+
141+ setImageSurfaceState<FamilyType>(castSurfaceState, imageInfo, &mockGmm, *gmmHelper, cubeFaceIndex, gpuAddress, surfaceOffsets, true );
142+ EXPECT_TRUE (castSurfaceState->getSurfaceArray ());
143+ }
144+
145+ HWTEST_F (ImageSurfaceStateTests, givenImage2DTypeWhenCheckIfArrayNeededReturnsFalseThenArrayFlagIsNotSet) {
146+ if (checkIfArrayNeeded<FamilyType>(ImageType::Image2D, &pDevice->getHardwareInfo ())) {
147+ GTEST_SKIP ();
148+ }
149+ auto size = sizeof (typename FamilyType::RENDER_SURFACE_STATE);
150+ auto surfaceState = std::make_unique<char []>(size);
151+ auto castSurfaceState = reinterpret_cast <typename FamilyType::RENDER_SURFACE_STATE *>(surfaceState.get ());
152+
153+ imageInfo.imgDesc .imageType = ImageType::Image2D;
154+ imageInfo.imgDesc .imageDepth = 1 ;
155+ imageInfo.imgDesc .imageArraySize = 1 ;
156+ imageInfo.qPitch = 0 ;
157+ SurfaceOffsets surfaceOffsets = {0 , 0 , 0 , 0 };
158+ const uint32_t cubeFaceIndex = __GMM_NO_CUBE_MAP;
159+ SurfaceFormatInfo surfaceFormatInfo;
160+ surfaceFormatInfo.GenxSurfaceFormat = GFX3DSTATE_SURFACEFORMAT::GFX3DSTATE_SURFACEFORMAT_A32_FLOAT;
161+ imageInfo.surfaceFormat = &surfaceFormatInfo;
162+
163+ const uint64_t gpuAddress = 0x000001a78a8a8000 ;
164+
165+ setImageSurfaceState<FamilyType>(castSurfaceState, imageInfo, &mockGmm, *gmmHelper, cubeFaceIndex, gpuAddress, surfaceOffsets, true );
166+ EXPECT_FALSE (castSurfaceState->getSurfaceArray ());
167+ }
0 commit comments