diff --git a/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp index 1dc29d5906..e4e53386b4 100644 --- a/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_kernel_1_tests.cpp @@ -707,9 +707,9 @@ HWTEST_F(EnqueueKernelTest, whenEnqueueKernelWithNoStatelessWriteWhenSbaIsBeingP EXPECT_EQ(csr.recordedDispatchFlags.l3CacheSettings, L3CachingSettings::l3AndL1On); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = pDevice->getGfxCoreHelper(); auto gmmHelper = this->pDevice->getGmmHelper(); - auto expectedMocsIndex = helper.getMocsIndex(*gmmHelper, true, true); + auto expectedMocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, true, true); EXPECT_EQ(expectedMocsIndex, csr.latestSentStatelessMocsConfig); } @@ -729,9 +729,10 @@ HWTEST_F(EnqueueKernelTest, whenEnqueueKernelWithNoStatelessWriteOnBlockedCodePa EXPECT_EQ(csr.recordedDispatchFlags.l3CacheSettings, L3CachingSettings::l3AndL1On); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = pDevice->getGfxCoreHelper(); + auto gmmHelper = this->pDevice->getGmmHelper(); - auto expectedMocsIndex = helper.getMocsIndex(*gmmHelper, true, true); + auto expectedMocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, true, true); EXPECT_EQ(expectedMocsIndex, csr.latestSentStatelessMocsConfig); clReleaseEvent(userEvent); diff --git a/opencl/test/unit_test/device/device_tests.cpp b/opencl/test/unit_test/device/device_tests.cpp index 814942a8b9..07caaac84e 100644 --- a/opencl/test/unit_test/device/device_tests.cpp +++ b/opencl/test/unit_test/device/device_tests.cpp @@ -451,7 +451,7 @@ HWTEST_F(DeviceTest, givenDebugFlagWhenCreatingRootDeviceWithoutSubDevicesThenWo TEST(DeviceCreation, givenDeviceWhenCheckingGpgpuEnginesCountThenNumberGreaterThanZeroIsReturned) { auto device = std::unique_ptr(MockDevice::createWithNewExecutionEnvironment(nullptr)); - auto &gfxCoreHelper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = device->getGfxCoreHelper(); EXPECT_GT(gfxCoreHelper.getGpgpuEngineInstances(device->getHardwareInfo()).size(), 0u); } diff --git a/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl b/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl index ede9f0e97c..1207198e85 100644 --- a/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl +++ b/opencl/test/unit_test/gen12lp/hw_helper_tests_gen12lp.inl @@ -93,11 +93,11 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, WhenAdjustingDefaultEngineTypeThenRcsIsS } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenDifferentSizesOfAllocationWhenCheckingCompressionPreferenceThenReturnCorrectValue) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); const size_t sizesToCheck[] = {128, 256, 512, 1023, 1024, 1025}; for (size_t size : sizesToCheck) { - EXPECT_FALSE(helper.isBufferSizeSuitableForCompression(size, *defaultHwInfo)); + EXPECT_FALSE(gfxCoreHelper.isBufferSizeSuitableForCompression(size, *defaultHwInfo)); } } @@ -215,7 +215,7 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenFtrCcsNodeSetAndDefaultRcsWhenGetGp GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenTgllpWhenIsFusedEuDispatchEnabledIsCalledThenResultIsCorrect) { DebugManagerStateRestore restorer; - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); auto &waTable = hardwareInfo.workaroundTable; std::tuple testParams[]{ @@ -229,7 +229,7 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenTgllpWhenIsFusedEuDispatchEnabledIs for (auto &[expectedResult, wa, debugKey] : testParams) { waTable.flags.waDisableFusedThreadScheduling = wa; DebugManager.flags.CFEFusedEUDispatch.set(debugKey); - EXPECT_EQ(expectedResult, helper.isFusedEuDispatchEnabled(hardwareInfo, false)); + EXPECT_EQ(expectedResult, gfxCoreHelper.isFusedEuDispatchEnabled(hardwareInfo, false)); } } @@ -250,23 +250,23 @@ class GfxCoreHelperTestsGen12LpBuffer : public ::testing::Test { }; GEN12LPTEST_F(GfxCoreHelperTestsGen12LpBuffer, givenCompressedBufferThenCheckResourceCompatibilityReturnsFalse) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = device->getGfxCoreHelper(); buffer.reset(Buffer::create(context.get(), 0, MemoryConstants::cacheLineSize, nullptr, retVal)); MockBuffer::setAllocationType(buffer->getGraphicsAllocation(rootDeviceIndex), context->getDevice(0)->getRootDeviceEnvironment().getGmmHelper(), true); - EXPECT_FALSE(helper.checkResourceCompatibility(*buffer->getGraphicsAllocation(rootDeviceIndex))); + EXPECT_FALSE(gfxCoreHelper.checkResourceCompatibility(*buffer->getGraphicsAllocation(rootDeviceIndex))); } GEN12LPTEST_F(GfxCoreHelperTestsGen12LpBuffer, givenBufferThenCheckResourceCompatibilityReturnsTrue) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = device->getGfxCoreHelper(); buffer.reset(Buffer::create(context.get(), 0, MemoryConstants::cacheLineSize, nullptr, retVal)); buffer->getGraphicsAllocation(rootDeviceIndex)->setAllocationType(AllocationType::BUFFER); - EXPECT_TRUE(helper.checkResourceCompatibility(*buffer->getGraphicsAllocation(rootDeviceIndex))); + EXPECT_TRUE(gfxCoreHelper.checkResourceCompatibility(*buffer->getGraphicsAllocation(rootDeviceIndex))); } using LriHelperTestsGen12Lp = ::testing::Test; @@ -306,54 +306,54 @@ GEN12LPTEST_F(MemorySynchronizatiopCommandsTests, whenSettingCacheFlushExtraFiel } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenGen12WhenCallIsPackedSupportedThenReturnTrue) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); - EXPECT_TRUE(helper.packedFormatsSupported()); + auto &gfxCoreHelper = getHelper(); + EXPECT_TRUE(gfxCoreHelper.packedFormatsSupported()); } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, whenRequestingMocsThenProperMocsIndicesAreBeingReturned) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); auto gmmHelper = this->pDevice->getGmmHelper(); const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, false)); - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, true)); - EXPECT_EQ(mocsL3, helper.getMocsIndex(*gmmHelper, true, false)); - EXPECT_EQ(mocsL3, helper.getMocsIndex(*gmmHelper, true, true)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); + EXPECT_EQ(mocsL3, gfxCoreHelper.getMocsIndex(*gmmHelper, true, false)); + EXPECT_EQ(mocsL3, gfxCoreHelper.getMocsIndex(*gmmHelper, true, true)); } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceEnabledWhenRequestingMocsThenProperMocsIndicesAreBeingReturned) { DebugManagerStateRestore restore{}; DebugManager.flags.ForceL1Caching.set(1); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); auto gmmHelper = this->pDevice->getGmmHelper(); const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; const auto mocsL1 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, false)); - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, true)); - EXPECT_EQ(mocsL3, helper.getMocsIndex(*gmmHelper, true, false)); - EXPECT_EQ(mocsL1, helper.getMocsIndex(*gmmHelper, true, true)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); + EXPECT_EQ(mocsL3, gfxCoreHelper.getMocsIndex(*gmmHelper, true, false)); + EXPECT_EQ(mocsL1, gfxCoreHelper.getMocsIndex(*gmmHelper, true, true)); } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceDisabledWhenRequestingMocsThenProperMocsIndicesAreBeingReturned) { DebugManagerStateRestore restore{}; DebugManager.flags.ForceL1Caching.set(0); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); auto gmmHelper = this->pDevice->getGmmHelper(); const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, false)); - EXPECT_EQ(mocsNoCache, helper.getMocsIndex(*gmmHelper, false, true)); - EXPECT_EQ(mocsL3, helper.getMocsIndex(*gmmHelper, true, false)); - EXPECT_EQ(mocsL3, helper.getMocsIndex(*gmmHelper, true, true)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); + EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); + EXPECT_EQ(mocsL3, gfxCoreHelper.getMocsIndex(*gmmHelper, true, false)); + EXPECT_EQ(mocsL3, gfxCoreHelper.getMocsIndex(*gmmHelper, true, true)); } GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenAllocationTypeWithCpuAccessRequiredWhenCpuAccessIsDisallowedThenSystemMemoryIsRequested) { diff --git a/opencl/test/unit_test/helpers/cl_helper_tests.cpp b/opencl/test/unit_test/helpers/cl_helper_tests.cpp index e3fc0091b6..3830161efd 100644 --- a/opencl/test/unit_test/helpers/cl_helper_tests.cpp +++ b/opencl/test/unit_test/helpers/cl_helper_tests.cpp @@ -79,7 +79,7 @@ HWTEST_F(GfxCoreHelperTest, givenGfxCoreHelperWhenIsLinearStoragePreferredThenRe cl_int retVal = CL_SUCCESS; auto buffer = std::unique_ptr(Buffer::create(&context, 0, 1, nullptr, retVal)); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); for (uint32_t i = 0; i < numImageTypes; i++) { imgDesc.image_type = imgTypes[i]; @@ -89,21 +89,21 @@ HWTEST_F(GfxCoreHelperTest, givenGfxCoreHelperWhenIsLinearStoragePreferredThenRe (imgTypes[i] == CL_MEM_OBJECT_IMAGE2D_ARRAY); // non shared context, dont force linear storage - EXPECT_EQ((tilingSupported & allowedType), !helper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); + EXPECT_EQ((tilingSupported & allowedType), !gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); { DebugManagerStateRestore restore; DebugManager.flags.ForceLinearImages.set(true); // non shared context, dont force linear storage + debug flag - EXPECT_TRUE(helper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); + EXPECT_TRUE(gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); } // shared context, dont force linear storage - EXPECT_TRUE(helper.isLinearStoragePreferred(true, Image::isImage1d(imgDesc), false)); + EXPECT_TRUE(gfxCoreHelper.isLinearStoragePreferred(true, Image::isImage1d(imgDesc), false)); // non shared context, force linear storage - EXPECT_TRUE(helper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), true)); + EXPECT_TRUE(gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), true)); // non shared context, dont force linear storage + create from buffer imgDesc.buffer = buffer.get(); - EXPECT_TRUE(helper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); + EXPECT_TRUE(gfxCoreHelper.isLinearStoragePreferred(false, Image::isImage1d(imgDesc), false)); } } diff --git a/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp b/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp index 4c037ff9ce..802dc0c2fb 100644 --- a/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_arg_buffer_tests.cpp @@ -67,7 +67,7 @@ struct MultiDeviceKernelArgBufferTest : public ::testing::Test { kernelInfos[1] = pKernelInfosStorage[0].get(); kernelInfos[2] = pKernelInfosStorage[1].get(); - auto &gfxCoreHelper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = pContext->getDevice(0)->getGfxCoreHelper(); for (auto i = 0u; i < 2; i++) { pKernelInfosStorage[i]->heapInfo.pSsh = pSshLocal[i]; diff --git a/opencl/test/unit_test/mem_obj/image2d_from_buffer_tests.cpp b/opencl/test/unit_test/mem_obj/image2d_from_buffer_tests.cpp index 2e6b0eb948..1b101ee08c 100644 --- a/opencl/test/unit_test/mem_obj/image2d_from_buffer_tests.cpp +++ b/opencl/test/unit_test/mem_obj/image2d_from_buffer_tests.cpp @@ -335,7 +335,7 @@ TEST_F(Image2dFromBufferTest, givenBufferWhenImageFromBufferThenIsImageFromBuffe HWTEST_F(Image2dFromBufferTest, givenBufferWhenImageFromBufferThenIsImageFromBufferSetAndAllocationTypeIsBufferNullptr) { class MockGfxCoreHelperHw : public GfxCoreHelperHw { public: - bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) override { + bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) const override { return false; } }; diff --git a/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp b/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp index cc30ba2c35..4e9572da05 100644 --- a/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp +++ b/opencl/test/unit_test/xe_hp_core/hw_helper_tests_xe_hp_core.cpp @@ -80,11 +80,11 @@ XE_HP_CORE_TEST_F(GfxCoreHelperTestXE_HP_CORE, givenDifferentBufferSizesWhenEnab DebugManagerStateRestore restore; DebugManager.flags.EnableStatelessCompression.set(1); - auto &helper = GfxCoreHelper::get(renderCoreFamily); + auto &gfxCoreHelper = getHelper(); const size_t sizesToCheck[] = {1, 128, 256, 1024, 2048}; for (size_t size : sizesToCheck) { - EXPECT_TRUE(helper.isBufferSizeSuitableForCompression(size, *defaultHwInfo)); + EXPECT_TRUE(gfxCoreHelper.isBufferSizeSuitableForCompression(size, *defaultHwInfo)); } } diff --git a/opencl/test/unit_test/xe_hpc_core/hw_helper_tests_xe_hpc_core.cpp b/opencl/test/unit_test/xe_hpc_core/hw_helper_tests_xe_hpc_core.cpp index 9b00244309..74c790306a 100644 --- a/opencl/test/unit_test/xe_hpc_core/hw_helper_tests_xe_hpc_core.cpp +++ b/opencl/test/unit_test/xe_hpc_core/hw_helper_tests_xe_hpc_core.cpp @@ -92,8 +92,8 @@ XE_HPC_CORETEST_F(GfxCoreHelperTestsXeHpcCore, givenSingleTileBdA0CsrWhenAllocat } XE_HPC_CORETEST_F(GfxCoreHelperTestsXeHpcCore, givenXeHpcWhenAskedForMinimialSimdThen16IsReturned) { - auto &helper = GfxCoreHelper::get(renderCoreFamily); - EXPECT_EQ(16u, helper.getMinimalSIMDSize()); + auto &gfxCoreHelper = getHelper(); + EXPECT_EQ(16u, gfxCoreHelper.getMinimalSIMDSize()); } XE_HPC_CORETEST_F(GfxCoreHelperTestsXeHpcCore, whenQueryingMaxNumSamplersThenReturnZero) { diff --git a/shared/source/gen12lp/hw_helper_gen12lp.cpp b/shared/source/gen12lp/hw_helper_gen12lp.cpp index 8715639a39..b3464c0882 100644 --- a/shared/source/gen12lp/hw_helper_gen12lp.cpp +++ b/shared/source/gen12lp/hw_helper_gen12lp.cpp @@ -76,7 +76,7 @@ bool GfxCoreHelperHw::isBufferSizeSuitableForCompression(const size_t si } template <> -bool GfxCoreHelperHw::checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) { +bool GfxCoreHelperHw::checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) const { return !graphicsAllocation.isCompressionEnabled(); } diff --git a/shared/source/helpers/hw_helper.h b/shared/source/helpers/hw_helper.h index aa57128ce2..4d0b3ed7ee 100644 --- a/shared/source/helpers/hw_helper.h +++ b/shared/source/helpers/hw_helper.h @@ -59,7 +59,7 @@ class GfxCoreHelper { virtual bool hvAlign4Required() const = 0; virtual bool preferSmallWorkgroupSizeForKernel(const size_t size, const HardwareInfo &hwInfo) const = 0; virtual bool isBufferSizeSuitableForCompression(const size_t size, const HardwareInfo &hwInfo) const = 0; - virtual bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) = 0; + virtual bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) const = 0; static bool compressedBuffersSupported(const HardwareInfo &hwInfo); static bool compressedImagesSupported(const HardwareInfo &hwInfo); static bool cacheFlushAfterWalkerSupported(const HardwareInfo &hwInfo); @@ -223,7 +223,7 @@ class GfxCoreHelperHw : public GfxCoreHelper { bool isBufferSizeSuitableForCompression(const size_t size, const HardwareInfo &hwInfo) const override; - bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) override; + bool checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) const override; bool timestampPacketWriteSupported() const override; diff --git a/shared/source/helpers/hw_helper_base.inl b/shared/source/helpers/hw_helper_base.inl index a7756f714e..1d75db9e49 100644 --- a/shared/source/helpers/hw_helper_base.inl +++ b/shared/source/helpers/hw_helper_base.inl @@ -96,7 +96,7 @@ bool GfxCoreHelperHw::isFenceAllocationRequired(const HardwareInfo &hwIn } template -inline bool GfxCoreHelperHw::checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) { +inline bool GfxCoreHelperHw::checkResourceCompatibility(GraphicsAllocation &graphicsAllocation) const { return true; }