diff --git a/level_zero/core/source/image/image_hw.inl b/level_zero/core/source/image/image_hw.inl index 84fe5cf9d3..ed05ce8265 100644 --- a/level_zero/core/source/image/image_hw.inl +++ b/level_zero/core/source/image/image_hw.inl @@ -301,6 +301,10 @@ ze_result_t ImageCoreFamily::initialize(Device *device, const ze_ args.isDebuggerActive = this->device->getNEODevice()->getDebugger() != nullptr; gfxCoreHelper.encodeBufferSurfaceState(args); + + auto surfaceStateSize = gfxCoreHelper.getRenderSurfaceStateSize(); + auto ssInHeap = getBindlessSlot(); + copySurfaceStateToSSH(ptrOffset(ssInHeap->ssPtr, surfaceStateSize), 0u, NEO::BindlessImageSlot::implicitArgs, false); } } diff --git a/level_zero/core/test/unit_tests/sources/image/test_image.cpp b/level_zero/core/test/unit_tests/sources/image/test_image.cpp index 6765a35a99..8af926fc68 100644 --- a/level_zero/core/test/unit_tests/sources/image/test_image.cpp +++ b/level_zero/core/test/unit_tests/sources/image/test_image.cpp @@ -2228,6 +2228,11 @@ HWTEST2_F(ImageCreate, GivenBindlessImageWhenInitializedThenSurfaceStateCopiedTo ASSERT_EQ(surfaceState->getWidth(), width); ASSERT_EQ(surfaceState->getHeight(), height); ASSERT_EQ(surfaceState->getDepth(), depth); + + surfaceState = static_cast(ptrOffset(ssHeapInfo->ssPtr, sizeof(RENDER_SURFACE_STATE) * NEO::BindlessImageSlot::implicitArgs)); + ASSERT_EQ(surfaceState->getSurfaceType(), RENDER_SURFACE_STATE::SURFACE_TYPE_SURFTYPE_BUFFER); + + ASSERT_EQ(imageHW->getImplicitArgsAllocation()->getGpuAddress(), surfaceState->getSurfaceBaseAddress()); } HWTEST2_F(ImageCreate, GivenBindlessSampledImageWhenCreatedThenSampledImageFlagAndSamplerDescIsSet, ImageSupport) {