@@ -483,6 +483,31 @@ HWTEST_F(ImageSetArgTest, givenDepthFormatWhenSetArgIsCalledThenProgramAuxFields
483483 delete image;
484484}
485485
486+ HWTEST_F (ImageSetArgTest, givenMultisampledR32Floatx8x24DepthStencilFormatWhenSetArgIsCalledThenSetMssSurfaceStateStorageParam) {
487+ typedef typename FamilyType::RENDER_SURFACE_STATE RENDER_SURFACE_STATE;
488+ using SURFACE_FORMAT = typename RENDER_SURFACE_STATE::SURFACE_FORMAT;
489+
490+ McsSurfaceInfo msi = {0 , 0 , 3 };
491+ cl_image_desc imgDesc = Image2dDefaults::imageDesc;
492+ imgDesc.num_samples = 8 ;
493+ cl_image_format imgFormat = {CL_DEPTH_STENCIL, CL_FLOAT};
494+
495+ std::unique_ptr<Image> image (ImageHelper<ImageReadOnly<Image2dDefaults>>::create (context, &imgDesc, &imgFormat));
496+ image->setMcsSurfaceInfo (msi);
497+ cl_mem memObj = image.get ();
498+
499+ retVal = clSetKernelArg (pKernel, 0 , sizeof (memObj), &memObj);
500+ ASSERT_EQ (CL_SUCCESS, retVal);
501+
502+ auto surfaceState = reinterpret_cast <RENDER_SURFACE_STATE *>(ptrOffset (pKernel->getSurfaceStateHeap (),
503+ pKernelInfo->kernelArgInfo [0 ].offsetHeap ));
504+
505+ EXPECT_TRUE (Image::isDepthFormat (image->getImageFormat ()));
506+ EXPECT_TRUE (surfaceState->getSurfaceFormat () == SURFACE_FORMAT::SURFACE_FORMAT_R32_FLOAT_X8X24_TYPELESS);
507+ EXPECT_TRUE (surfaceState->getMultisampledSurfaceStorageFormat () ==
508+ RENDER_SURFACE_STATE::MULTISAMPLED_SURFACE_STORAGE_FORMAT::MULTISAMPLED_SURFACE_STORAGE_FORMAT_MSS);
509+ }
510+
486511HWTEST_F (ImageSetArgTest, givenMcsAllocationAndRenderCompressionWhenSetArgOnMultisampledImgIsCalledThenProgramAuxFieldsWithMcsParams) {
487512 typedef typename FamilyType::RENDER_SURFACE_STATE RENDER_SURFACE_STATE;
488513 McsSurfaceInfo msi = {10 , 20 , 3 };
0 commit comments