From dd3d294f871bafc20b93c5c79b1964d995435b78 Mon Sep 17 00:00:00 2001 From: Kamil Kopryk Date: Mon, 14 Apr 2025 12:15:51 +0000 Subject: [PATCH] performance: cache MOCS values This change caches the most used MOCS values: * getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); * getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); * getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); inside gmmHelper class during initialization to avoid repeated calls of virtual functions, branches and/or gmm lib access. and adds more readably corresponding getters: * getL1EnabledMOCS * getL3EnabledMOCS * getUncachedMOCS If force all resources uncached is called, these 3 cached mocs values are reinitialized It also changes the order of gmmHelper members, to avoid not needed padding after addressWidth and simplifies logic in getMocsIndex function for xehp and later products. Signed-off-by: Kamil Kopryk --- level_zero/core/source/cmdlist/cmdlist_hw.inl | 2 +- .../sources/cmdlist/test_cmdlist_1.cpp | 2 +- .../cmdlist/test_cmdlist_xehp_and_later.cpp | 4 +-- .../sources/cmdqueue/test_cmdqueue_3.cpp | 2 +- .../sources/debugger/test_l0_debugger_1.cpp | 4 +-- .../unit_tests/sources/module/test_module.cpp | 2 +- opencl/source/mem_obj/buffer.cpp | 4 +-- ...cl_mem_locally_uncached_resource_tests.cpp | 18 +++++----- .../unit_test/built_ins/built_in_tests.cpp | 8 ++--- .../dispatch_walker_tests_dg2_and_later.cpp | 4 +-- .../dispatch_walker_tests_xehp_and_later.cpp | 4 +-- .../enqueue_read_buffer_tests.cpp | 12 +++---- ...and_stream_receiver_flush_task_1_tests.cpp | 2 +- ...ceiver_flush_task_tests_xehp_and_later.cpp | 2 +- .../gen12lp/buffer_tests_gen12lp.inl | 14 ++++---- .../gen12lp/gfx_core_helper_tests_gen12lp.inl | 16 ++++----- .../gen12lp/tgllp/buffer_tests_tgllp.cpp | 12 +++---- .../helpers/test_preamble_xehp_and_later.cpp | 6 ++-- opencl/test/unit_test/kernel/kernel_tests.cpp | 2 +- .../test/unit_test/linux/main_linux_dll.cpp | 3 ++ .../mem_obj/buffer_set_arg_tests.cpp | 6 ++-- .../test/unit_test/mem_obj/buffer_tests.cpp | 30 ++++++++-------- .../mem_obj/buffer_tests_xehp_and_later.cpp | 12 +++---- ..._stream_receiver_hw_tests_xe2_hpg_core.cpp | 2 +- .../test_cmds_programming_xe2_hpg_core.cpp | 4 +-- ...mand_stream_receiver_hw_tests_xe3_core.cpp | 2 +- .../test_cmds_programming_xe3_core.cpp | 2 +- .../copy_engine_tests_xe_hpc_core.cpp | 2 +- .../test_cmds_programming_xe_hpc_core.cpp | 4 +-- .../copy_engine_tests_xe_hpg_core.cpp | 2 +- .../dg2/test_cmds_programming_dg2.cpp | 6 ++-- .../test_cmds_programming_xe_hpg_core.cpp | 4 +-- .../command_container/command_encoder.inl | 2 +- .../command_encoder_xehp_and_later.inl | 10 +++--- .../direct_submission_hw.inl | 4 +-- .../gen12lp/command_encoder_gen12lp.cpp | 6 ++-- .../gen12lp/gfx_core_helper_gen12lp.cpp | 6 ++-- shared/source/gmm_helper/gmm_helper.cpp | 25 +++++++++++++ shared/source/gmm_helper/gmm_helper.h | 12 +++++-- .../blit_commands_helper_pvc_and_later.inl | 2 +- .../blit_commands_helper_xehp_and_later.inl | 2 +- .../source/helpers/gfx_core_helper_base.inl | 4 +-- .../gfx_core_helper_xehp_and_later.inl | 15 ++++---- .../state_base_address_xehp_and_later.inl | 4 +-- ...ommand_stream_receiver_hw_xe2_hpg_core.cpp | 4 +-- .../gfx_core_helper_xe2_hpg_core.cpp | 4 +-- .../command_stream_receiver_hw_xe3_core.cpp | 4 +-- .../xe3_core/gfx_core_helper_xe3_core.cpp | 4 +-- .../gfx_core_helper_xe_hpc_core.cpp | 4 +-- ...command_stream_receiver_hw_xe_hpg_core.cpp | 2 +- .../command_encoder_tests.cpp | 2 +- ...nd_encoder_tests_xe_hpg_core_and_later.cpp | 4 +-- .../direct_submission_tests_2.cpp | 8 ++--- .../encoders/test_encode_dispatch_kernel.cpp | 8 ++--- ...t_encode_dispatch_kernel_dg2_and_later.cpp | 2 +- ..._encode_dispatch_kernel_xehp_and_later.cpp | 4 +-- .../unit_test/encoders/test_encode_states.cpp | 8 ++--- .../encoders/test_encode_states_dg2.cpp | 6 ++-- .../gen12lp/test_command_encoder_gen12lp.cpp | 4 +-- .../unit_test/gmm_helper/gmm_helper_tests.cpp | 35 ++++++++++--------- .../helpers/gfx_core_helper_tests.cpp | 14 ++++---- .../gfx_core_helper_tests_pvc_and_later.cpp | 6 ++-- ...est_blit_commands_helper_pvc_and_later.cpp | 2 +- ...st_blit_commands_helper_xehp_and_later.cpp | 2 +- ...test_blit_commands_helper_xe2_hpg_core.cpp | 2 +- .../xe2_hpg_core/test_encode_xe2_hpg_core.cpp | 2 +- .../command_encoder_xe3_core_tests.cpp | 2 +- .../xe_hpc_core/test_encode_xe_hpc_core.cpp | 2 +- 68 files changed, 231 insertions(+), 195 deletions(-) diff --git a/level_zero/core/source/cmdlist/cmdlist_hw.inl b/level_zero/core/source/cmdlist/cmdlist_hw.inl index 5a300d6220..cb6a18a646 100644 --- a/level_zero/core/source/cmdlist/cmdlist_hw.inl +++ b/level_zero/core/source/cmdlist/cmdlist_hw.inl @@ -243,7 +243,7 @@ ze_result_t CommandListCoreFamily::initialize(Device *device, NEO this->signalAllEventPackets = L0GfxCoreHelper::useSignalAllEventPackets(hwInfo); this->dynamicHeapRequired = NEO::EncodeDispatchKernel::isDshNeeded(device->getDeviceInfo()); this->doubleSbaWa = productHelper.isAdditionalStateBaseAddressWARequired(hwInfo); - this->defaultMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + this->defaultMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); this->l1CachePolicyData.init(productHelper); this->cmdListHeapAddressModel = L0GfxCoreHelper::getHeapAddressModel(rootDeviceEnvironment); this->dummyBlitWa.rootDeviceEnvironment = &(neoDevice->getRootDeviceEnvironmentRef()); diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp index 8b4381a68a..0206bf4892 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_1.cpp @@ -2631,7 +2631,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandListCreateTests, whenCommandListIsCreatedT EXPECT_TRUE(cmdSba->getSurfaceStateBaseAddressModifyEnable()); EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress()); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); } HWTEST_F(CommandListCreateTests, givenCommandListWithCopyOnlyWhenCreatedThenStateBaseAddressCmdIsNotProgrammedAndHeapIsNotAllocated) { diff --git a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_xehp_and_later.cpp b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_xehp_and_later.cpp index 5610126af1..ea19c62a1f 100644 --- a/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_xehp_and_later.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdlist/test_cmdlist_xehp_and_later.cpp @@ -115,7 +115,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandListTests, whenCommandListIsCreatedThenPCAnd EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress()); } - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getL1EnabledMOCS(), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); } HWTEST2_F(CommandListTests, whenCommandListIsCreatedAndProgramExtendedPipeControlPriorToNonPipelinedStateCommandIsEnabledThenPCAndStateBaseAddressCmdsAreAddedAndCorrectlyProgrammed, IsAtLeastXeHpCore) { @@ -203,7 +203,7 @@ HWTEST2_F(CommandListTests, whenCommandListIsCreatedAndProgramExtendedPipeContro EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress()); } - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getL1EnabledMOCS(), cmdSba->getStatelessDataPortAccessMemoryObjectControlState()); } using CommandListTestsReserveSize = Test; diff --git a/level_zero/core/test/unit_tests/sources/cmdqueue/test_cmdqueue_3.cpp b/level_zero/core/test/unit_tests/sources/cmdqueue/test_cmdqueue_3.cpp index b4b9993b40..1bf892762e 100644 --- a/level_zero/core/test/unit_tests/sources/cmdqueue/test_cmdqueue_3.cpp +++ b/level_zero/core/test/unit_tests/sources/cmdqueue/test_cmdqueue_3.cpp @@ -139,7 +139,7 @@ HWTEST2_F(CommandQueueProgramSBATest, whenProgrammingStateBaseAddressWithStatele auto pSbaCmd = static_cast(*itor); uint32_t statelessMocsIndex = pSbaCmd->getStatelessDataPortAccessMemoryObjectControlState(); auto gmmHelper = device->getNEODevice()->getGmmHelper(); - uint32_t expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + uint32_t expectedMocs = gmmHelper->getUncachedMOCS(); EXPECT_EQ(statelessMocsIndex, expectedMocs); commandQueue->destroy(); diff --git a/level_zero/core/test/unit_tests/sources/debugger/test_l0_debugger_1.cpp b/level_zero/core/test/unit_tests/sources/debugger/test_l0_debugger_1.cpp index 6475ea054e..1e4ecd4a2c 100644 --- a/level_zero/core/test/unit_tests/sources/debugger/test_l0_debugger_1.cpp +++ b/level_zero/core/test/unit_tests/sources/debugger/test_l0_debugger_1.cpp @@ -304,7 +304,7 @@ HWTEST2_P(L0DebuggerParameterizedTests, givenDebuggerWhenAppendingKernelToComman auto debugSurfaceState = reinterpret_cast(ssh->getCpuBase()); - const auto mocsNoCache = device->getNEODevice()->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + const auto mocsNoCache = device->getNEODevice()->getGmmHelper()->getUncachedMOCS(); const auto actualMocs = debugSurfaceState->getMemoryObjectControlState(); EXPECT_EQ(actualMocs, mocsNoCache); @@ -1001,7 +1001,7 @@ HWTEST2_F(L0DebuggerGlobalStatelessTest, ASSERT_NE(debugSurface, nullptr); ASSERT_EQ(debugSurface->getGpuAddress(), debugSurfaceState->getSurfaceBaseAddress()); - const auto mocsNoCache = device->getNEODevice()->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + const auto mocsNoCache = device->getNEODevice()->getGmmHelper()->getUncachedMOCS(); const auto actualMocs = debugSurfaceState->getMemoryObjectControlState(); EXPECT_EQ(actualMocs, mocsNoCache); diff --git a/level_zero/core/test/unit_tests/sources/module/test_module.cpp b/level_zero/core/test/unit_tests/sources/module/test_module.cpp index 17da2bbf45..d7ab25af84 100644 --- a/level_zero/core/test/unit_tests/sources/module/test_module.cpp +++ b/level_zero/core/test/unit_tests/sources/module/test_module.cpp @@ -681,7 +681,7 @@ HWTEST2_F(ModuleUncachedBufferTest, EXPECT_EQ(devicePtr, reinterpret_cast(surfaceStateAddress->getSurfaceBaseAddress())); auto gmmHelper = device->getNEODevice()->getGmmHelper(); - uint32_t expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + uint32_t expectedMocs = gmmHelper->getUncachedMOCS(); EXPECT_EQ(expectedMocs, surfaceStateAddress->getMemoryObjectControlState()); diff --git a/opencl/source/mem_obj/buffer.cpp b/opencl/source/mem_obj/buffer.cpp index 0603d92ab9..8116c56a9a 100644 --- a/opencl/source/mem_obj/buffer.cpp +++ b/opencl/source/mem_obj/buffer.cpp @@ -898,9 +898,9 @@ uint32_t Buffer::getMocsValue(bool disableL3Cache, bool isReadOnlyArgument, uint auto gmmHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getGmmHelper(); if (!disableL3Cache && !isMemObjUncacheableForSurfaceState() && (alignedMemObj || readOnlyMemObj || !isMemObjZeroCopy())) { - return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + return gmmHelper->getL3EnabledMOCS(); } else { - return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + return gmmHelper->getUncachedMOCS(); } } diff --git a/opencl/test/unit_test/api/cl_mem_locally_uncached_resource_tests.cpp b/opencl/test/unit_test/api/cl_mem_locally_uncached_resource_tests.cpp index 7c79257efb..69330bacde 100644 --- a/opencl/test/unit_test/api/cl_mem_locally_uncached_resource_tests.cpp +++ b/opencl/test/unit_test/api/cl_mem_locally_uncached_resource_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2024 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -76,8 +76,8 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, clMemLocallyUncachedResourceFixture, GivenAtLeast auto bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr); auto pBufferUncacheable2 = clUniquePtr(castToObject(bufferUncacheable2)); - auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS(); + auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS(); retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1); EXPECT_EQ(CL_SUCCESS, retVal); @@ -153,8 +153,8 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, clMemLocallyUncachedResourceFixture, givenBuffers auto bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheableInSurfaceState, 0, n * sizeof(float), nullptr, nullptr); auto pBufferUncacheable2 = clUniquePtr(castToObject(bufferUncacheable2)); - auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS(); + auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS(); retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1); EXPECT_EQ(CL_SUCCESS, retVal); @@ -227,8 +227,8 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, clMemLocallyUncachedResourceFixture, givenBuffers auto bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr); auto pBufferUncacheable2 = clUniquePtr(castToObject(bufferUncacheable2)); - auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS(); + auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS(); retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1); EXPECT_EQ(CL_SUCCESS, retVal); @@ -301,8 +301,8 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, clMemLocallyUncachedResourceFixture, WhenUnsettin auto bufferUncacheable = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr); auto pBufferUncacheable = clUniquePtr(castToObject(bufferUncacheable)); - auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS(); + auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS(); retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1); EXPECT_EQ(CL_SUCCESS, retVal); diff --git a/opencl/test/unit_test/built_ins/built_in_tests.cpp b/opencl/test/unit_test/built_ins/built_in_tests.cpp index d5eeb55623..8d7e43b302 100644 --- a/opencl/test/unit_test/built_ins/built_in_tests.cpp +++ b/opencl/test/unit_test/built_ins/built_in_tests.cpp @@ -206,7 +206,7 @@ HWCMDTEST_P(IGFX_XE_HP_CORE, AuxBuiltInTests, givenXeHpCoreCommandsAndAuxTransla { // read args auto argNum = 0; - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto expectedMocs = pDevice->getGmmHelper()->getUncachedMOCS(); auto sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap(); auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as().bindful; auto surfaceState = reinterpret_cast(ptrOffset(sshBase, sshOffset)); @@ -221,7 +221,7 @@ HWCMDTEST_P(IGFX_XE_HP_CORE, AuxBuiltInTests, givenXeHpCoreCommandsAndAuxTransla { // write args auto argNum = 1; - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expectedMocs = pDevice->getGmmHelper()->getL1EnabledMOCS(); auto sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap(); auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as().bindful; auto surfaceState = reinterpret_cast(ptrOffset(sshBase, sshOffset)); @@ -700,7 +700,7 @@ HWCMDTEST_P(IGFX_GEN12LP_CORE, AuxBuiltInTests, givenAuxTranslationKernelWhenSet { // read args auto argNum = 0; - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto expectedMocs = pDevice->getGmmHelper()->getUncachedMOCS(); auto sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap(); auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as().bindful; auto surfaceState = reinterpret_cast(ptrOffset(sshBase, sshOffset)); @@ -715,7 +715,7 @@ HWCMDTEST_P(IGFX_GEN12LP_CORE, AuxBuiltInTests, givenAuxTranslationKernelWhenSet { // write args auto argNum = 1; - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = pDevice->getGmmHelper()->getL3EnabledMOCS(); auto sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap(); auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as().bindful; auto surfaceState = reinterpret_cast(ptrOffset(sshBase, sshOffset)); diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp index 75b8b197aa..79d2c8a2ea 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_dg2_and_later.cpp @@ -130,7 +130,7 @@ HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchin auto gmmHelper = device->getGmmHelper(); - auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS(); auto walker = genCmdCast(*hwParser.itorWalker); EXPECT_EQ(POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); @@ -208,7 +208,7 @@ HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenDebugVariableEnabledWhenEnque EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end()); auto gmmHelper = device->getGmmHelper(); - auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS(); WalkerVariant walkerVariant = NEO::UnitTestHelper::getWalkerVariant(*hwParser.itorWalker); diff --git a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp index 8f4384b4c6..3cf46aa533 100644 --- a/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/command_queue/dispatch_walker_tests_xehp_and_later.cpp @@ -484,7 +484,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestamp EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end()); auto gmmHelper = device->getGmmHelper(); - auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS(); auto walker = genCmdCast(*hwParser.itorWalker); EXPECT_EQ(PostSyncType::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation()); @@ -522,7 +522,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenDebugVari EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end()); auto gmmHelper = device->getGmmHelper(); - auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = MemorySynchronizationCommands::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS(); WalkerVariant walkerVariant = NEO::UnitTestHelper::getWalkerVariant(*hwParser.itorWalker); std::visit([expectedMocs](auto &&walker) { diff --git a/opencl/test/unit_test/command_queue/enqueue_read_buffer_tests.cpp b/opencl/test/unit_test/command_queue/enqueue_read_buffer_tests.cpp index 07a627c73f..1d7ab76f9f 100644 --- a/opencl/test/unit_test/command_queue/enqueue_read_buffer_tests.cpp +++ b/opencl/test/unit_test/command_queue/enqueue_read_buffer_tests.cpp @@ -336,8 +336,8 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenAlignedPointerAndAlignedSizeWhenReadBuf EXPECT_EQ(CL_SUCCESS, retVal); auto &csr = pDevice->getUltCommandStreamReceiver(); auto gmmHelper = pDevice->getGmmHelper(); - auto mocsIndexL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - auto mocsIndexL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; + auto mocsIndexL3on = gmmHelper->getL3EnabledMOCS() >> 1; + auto mocsIndexL1on = gmmHelper->getL1EnabledMOCS() >> 1; EXPECT_TRUE(mocsIndexL3on == csr.latestSentStatelessMocsConfig || mocsIndexL1on == csr.latestSentStatelessMocsConfig); } @@ -364,9 +364,9 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenNotAlignedPointerAndAlignedSizeWhenRead auto &csr = pDevice->getUltCommandStreamReceiver(); auto gmmHelper = pDevice->getGmmHelper(); - auto mocsIndexL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; - auto mocsIndexL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - auto mocsIndexL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; + auto mocsIndexL3off = gmmHelper->getUncachedMOCS() >> 1; + auto mocsIndexL3on = gmmHelper->getL3EnabledMOCS() >> 1; + auto mocsIndexL1on = gmmHelper->getL1EnabledMOCS() >> 1; EXPECT_EQ(mocsIndexL3off, csr.latestSentStatelessMocsConfig); @@ -410,7 +410,7 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenNotAlignedPointerAndSizeWhenBlockedRead EXPECT_EQ(CL_SUCCESS, retVal); auto &csr = pDevice->getUltCommandStreamReceiver(); auto gmmHelper = pDevice->getGmmHelper(); - auto mocsIndexL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + auto mocsIndexL3off = gmmHelper->getUncachedMOCS() >> 1; EXPECT_EQ(mocsIndexL3off, csr.latestSentStatelessMocsConfig); clReleaseEvent(userEvent); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_1_tests.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_1_tests.cpp index b2668fe919..782b358380 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_1_tests.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_1_tests.cpp @@ -566,7 +566,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandStreamReceiverFlushTaskTests, WhenFlushing typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS; auto gmmHelper = pDevice->getGmmHelper(); auto stateHeapMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER); - auto l3CacheOnMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto l3CacheOnMocs = gmmHelper->getL3EnabledMOCS(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver(); flushTask(commandStreamReceiver); diff --git a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp index 7ef66751d7..a1f6d5e091 100644 --- a/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/command_stream/command_stream_receiver_flush_task_tests_xehp_and_later.cpp @@ -464,7 +464,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, Wh typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS; auto gmmHelper = pDevice->getGmmHelper(); auto stateHeapMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER); - auto l1CacheOnMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto l1CacheOnMocs = gmmHelper->getL1EnabledMOCS(); auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver(); if (commandStreamReceiver.heaplessStateInitialized) { diff --git a/opencl/test/unit_test/gen12lp/buffer_tests_gen12lp.inl b/opencl/test/unit_test/gen12lp/buffer_tests_gen12lp.inl index 25aeddf6e4..c435a7d626 100644 --- a/opencl/test/unit_test/gen12lp/buffer_tests_gen12lp.inl +++ b/opencl/test/unit_test/gen12lp/buffer_tests_gen12lp.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -45,7 +45,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferNotReadonlyWhenProgrammingSurfaceStat typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -62,7 +62,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyWhenProgrammingSurfaceStateTh typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, true, context->getDevice(0)->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -80,7 +80,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenConstantSurfaceWhenProgrammingSurfaceStateT typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context->getDevice(0)->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -100,7 +100,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenL1ForceEnabledWhenProgrammingSurfaceStateTh typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -120,7 +120,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyAndL1ForceEnabledWhenProgramm typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = device->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -140,7 +140,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyL1ForceDisabledWhenProgrammin typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, true, device->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } diff --git a/opencl/test/unit_test/gen12lp/gfx_core_helper_tests_gen12lp.inl b/opencl/test/unit_test/gen12lp/gfx_core_helper_tests_gen12lp.inl index 7970e45536..4bd4ef4d0b 100644 --- a/opencl/test/unit_test/gen12lp/gfx_core_helper_tests_gen12lp.inl +++ b/opencl/test/unit_test/gen12lp/gfx_core_helper_tests_gen12lp.inl @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2024 Intel Corporation + * Copyright (C) 2019-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -307,8 +307,8 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, whenRequestingMocsThenProperMocsIndicesA 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 mocsNoCache = gmmHelper->getUncachedMOCS() >> 1; + const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1; EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); @@ -323,9 +323,9 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceEnabledWhenRequestingMocsThe 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; + const auto mocsNoCache = gmmHelper->getUncachedMOCS() >> 1; + const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1; + const auto mocsL1 = gmmHelper->getL1EnabledMOCS() >> 1; EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); @@ -340,8 +340,8 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceDisabledWhenRequestingMocsTh 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 mocsNoCache = gmmHelper->getUncachedMOCS() >> 1; + const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1; EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false)); EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true)); diff --git a/opencl/test/unit_test/gen12lp/tgllp/buffer_tests_tgllp.cpp b/opencl/test/unit_test/gen12lp/tgllp/buffer_tests_tgllp.cpp index 58bed872d0..a94227828d 100644 --- a/opencl/test/unit_test/gen12lp/tgllp/buffer_tests_tgllp.cpp +++ b/opencl/test/unit_test/gen12lp/tgllp/buffer_tests_tgllp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2023 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -40,7 +40,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferNotReadonlyWhenProgrammingSurfaceStat typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false, 1u); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -57,7 +57,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyWhenProgrammingSurfaceStateTh typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, true, context->getDevice(0)->getDevice(), false, 1u); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = device->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -75,7 +75,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenConstantSurfaceWhenProgrammingSurfaceStateT typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context->getDevice(0)->getDevice(), false, 1u); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = device->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -95,7 +95,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenL1ForceEnabledWhenProgrammingSurfaceStateTh typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false, 1u); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = device->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -115,7 +115,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyL1ForceDisabledWhenProgrammin typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, true, device->getDevice(), false, 1u); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } diff --git a/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp b/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp index bee3bf69ea..25bc97e51c 100644 --- a/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp +++ b/opencl/test/unit_test/helpers/test_preamble_xehp_and_later.cpp @@ -249,7 +249,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, whenFlushC hwParserCsr.findHardwareCommands(); ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress); auto stateBaseAddress = static_cast(hwParserCsr.cmdStateBaseAddress); - auto expectedMocsForStateless = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expectedMocsForStateless = gmmHelper->getL1EnabledMOCS(); auto expectedMocsForHeap = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER); EXPECT_EQ(expectedMocsForHeap, stateBaseAddress->getSurfaceStateMemoryObjectControlState()); @@ -298,7 +298,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, givenL3ToL hwParserCsr.findHardwareCommands(); ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress); auto stateBaseAddress = static_cast(hwParserCsr.cmdStateBaseAddress); - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expectedMocs = pDevice->getGmmHelper()->getL1EnabledMOCS(); EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState()); } @@ -317,7 +317,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, givenForce hwParserCsr.findHardwareCommands(); ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress); auto stateBaseAddress = static_cast(hwParserCsr.cmdStateBaseAddress); - auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = pDevice->getGmmHelper()->getL3EnabledMOCS(); EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState()); } diff --git a/opencl/test/unit_test/kernel/kernel_tests.cpp b/opencl/test/unit_test/kernel/kernel_tests.cpp index 7a827dbb4a..7cd86b0748 100644 --- a/opencl/test/unit_test/kernel/kernel_tests.cpp +++ b/opencl/test/unit_test/kernel/kernel_tests.cpp @@ -3887,7 +3887,7 @@ HWTEST2_F(KernelConstantSurfaceTest, givenKernelWithConstantSurfaceWhenKernelIsC ptrOffset(kernel->getSurfaceStateHeap(), pKernelInfo->kernelDescriptor.payloadMappings.implicitArgs.globalConstantsSurfaceAddress.bindful)); auto actualMocs = surfaceState->getMemoryObjectControlState(); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/linux/main_linux_dll.cpp b/opencl/test/unit_test/linux/main_linux_dll.cpp index a77fe19b17..ce8995cfcc 100644 --- a/opencl/test/unit_test/linux/main_linux_dll.cpp +++ b/opencl/test/unit_test/linux/main_linux_dll.cpp @@ -7,6 +7,7 @@ #include "shared/source/device/device.h" #include "shared/source/direct_submission/direct_submission_controller.h" +#include "shared/source/gmm_helper/gmm_helper.h" #include "shared/source/helpers/aligned_memory.h" #include "shared/source/helpers/basic_math.h" #include "shared/source/helpers/gfx_core_helper.h" @@ -26,6 +27,7 @@ #include "shared/test/common/libult/signal_utils.h" #include "shared/test/common/mocks/mock_compiler_product_helper.h" #include "shared/test/common/mocks/mock_execution_environment.h" +#include "shared/test/common/mocks/mock_gmm_client_context.h" #include "shared/test/common/mocks/mock_release_helper.h" #include "shared/test/common/os_interface/linux/device_command_stream_fixture.h" #include "shared/test/common/test_macros/hw_test.h" @@ -862,6 +864,7 @@ int main(int argc, char **argv) { initializeTestedDevice(); Os::dxcoreDllName = ""; + GmmHelper::createGmmContextWrapperFunc = GmmClientContext::create; int sigOut = setAlarm(enableAlarm); if (sigOut != 0) diff --git a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp index f35c11f0f5..ca01d28977 100644 --- a/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_set_arg_tests.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2018-2024 Intel Corporation + * Copyright (C) 2018-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -141,8 +141,8 @@ HWTEST_F(BufferSetArgTest, givenSetKernelArgOnReadOnlyBufferThatIsMisalingedWhen auto surfaceState = reinterpret_cast(ptrOffset(pKernel->getSurfaceStateHeap(), pKernelInfo->argAsPtr(0).bindful)); auto mocs = surfaceState->getMemoryObjectControlState(); auto gmmHelper = pDevice->getGmmHelper(); - auto expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto expectedMocs2 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expectedMocs = gmmHelper->getL3EnabledMOCS(); + auto expectedMocs2 = gmmHelper->getL1EnabledMOCS(); EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs); } diff --git a/opencl/test/unit_test/mem_obj/buffer_tests.cpp b/opencl/test/unit_test/mem_obj/buffer_tests.cpp index 9a96c318ab..c05bc5f185 100644 --- a/opencl/test/unit_test/mem_obj/buffer_tests.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_tests.cpp @@ -1513,7 +1513,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, BufferSetSurfaceTests, givenBufferSetSurfaceThatM auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), mocs); + EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), mocs); alignedFree(ptr); } @@ -1532,7 +1532,7 @@ HWTEST_F(BufferSetSurfaceTests, givenDebugVariableToDisableCachingForStatefulBuf auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs); alignedFree(ptr); debugManager.flags.DisableCachingForStatefulBufferAccess.set(false); @@ -1552,7 +1552,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemoryPtrIsUnalignedToC auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs); alignedFree(ptr); } @@ -1571,7 +1571,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemorySizeIsUnalignedTo auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs); alignedFree(ptr); } @@ -1590,7 +1590,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemoryIsUnalignedToCach auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), mocs); + EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), mocs); alignedFree(ptr); } @@ -1750,7 +1750,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferWhenSetArgStatefulWithL3ChacheDisable auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs); EXPECT_EQ(128u, surfaceState.getWidth()); EXPECT_EQ(4u, surfaceState.getHeight()); } @@ -1778,8 +1778,8 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferThatIsMisalignedButIsAReadOnlyArgumen auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - auto expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto expectedMocs2 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expectedMocs = gmmHelper->getL3EnabledMOCS(); + auto expectedMocs2 = gmmHelper->getL1EnabledMOCS(); EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs); } @@ -1801,7 +1801,7 @@ HWTEST_F(BufferSetSurfaceTests, givenAlignedCacheableReadOnlyBufferThenChoseOclB typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); @@ -1826,7 +1826,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, BufferSetSurfaceTests, givenAlignedCacheableNonRe typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = device->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); @@ -1912,7 +1912,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferThatIsMisalignedWhenSurfaceStateIsBei Buffer::setSurfaceState(device.get(), &surfaceState, false, false, 5, svmPtr, 0, nullptr, 0, 0, false); - EXPECT_EQ(device->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), surfaceState.getMemoryObjectControlState()); + EXPECT_EQ(device->getGmmHelper()->getUncachedMOCS(), surfaceState.getMemoryObjectControlState()); } using BufferHwFromDeviceTests = BufferTests; @@ -2128,8 +2128,8 @@ HWTEST_P(BufferL3CacheTests, givenMisalignedAndAlignedBufferWhenClEnqueueWriteIm ASSERT_NE(surfaceStateAddress, nullptr); auto surfaceState = *reinterpret_cast(surfaceStateAddress); - auto expect = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto expect2 = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expect = ctx.getDevice(0)->getGmmHelper()->getL3EnabledMOCS(); + auto expect2 = ctx.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); EXPECT_NE(0u, surfaceState.getMemoryObjectControlState()); EXPECT_TRUE(expect == surfaceState.getMemoryObjectControlState() || expect2 == surfaceState.getMemoryObjectControlState()); @@ -2154,8 +2154,8 @@ HWTEST_P(BufferL3CacheTests, givenMisalignedAndAlignedBufferWhenClEnqueueWriteBu clEnqueueWriteBufferRect(&cmdQ, buffer, false, origin, origin, region, 0, 0, 0, 0, hostPtr, 0, nullptr, nullptr); - auto expect = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); - auto expect2 = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto expect = ctx.getDevice(0)->getGmmHelper()->getL3EnabledMOCS(); + auto expect2 = ctx.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); EXPECT_NE(0u, surfaceState->getMemoryObjectControlState()); EXPECT_TRUE(expect == surfaceState->getMemoryObjectControlState() || expect2 == surfaceState->getMemoryObjectControlState()); diff --git a/opencl/test/unit_test/mem_obj/buffer_tests_xehp_and_later.cpp b/opencl/test/unit_test/mem_obj/buffer_tests_xehp_and_later.cpp index f4100f3545..b88ced1f01 100644 --- a/opencl/test/unit_test/mem_obj/buffer_tests_xehp_and_later.cpp +++ b/opencl/test/unit_test/mem_obj/buffer_tests_xehp_and_later.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -180,7 +180,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenDebugVariableForcingL typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -204,7 +204,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenDebugVariableForcingL typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL3EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -226,7 +226,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenBufferWhenArgumentIsC typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, true, true, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getUncachedMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); } @@ -246,7 +246,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenBufferSetSurfaceThatM auto mocs = surfaceState.getMemoryObjectControlState(); auto gmmHelper = device->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST), mocs); + EXPECT_EQ(gmmHelper->getL1EnabledMOCS(), mocs); alignedFree(ptr); } @@ -269,7 +269,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenAlignedCacheableNonRe typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getDevice().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getDevice().getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp b/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp index df902012cf..4e4a665e78 100644 --- a/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp +++ b/opencl/test/unit_test/xe2_hpg_core/command_stream_receiver_hw_tests_xe2_hpg_core.cpp @@ -1054,7 +1054,7 @@ XE2_HPG_CORETEST_F(Xe2BcsTests, givenOverriddenMocksValueWhenAppendBlitCommandsB bltCmd->setDestinationX2CoordinateRight(1); bltCmd->setDestinationY2CoordinateBottom(1); - uint32_t mockValue = context->getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + uint32_t mockValue = context->getDevice(0)->getGmmHelper()->getL3EnabledMOCS(); uint32_t newValue = mockValue + 1; debugManager.flags.OverrideBlitterMocs.set(newValue); diff --git a/opencl/test/unit_test/xe2_hpg_core/test_cmds_programming_xe2_hpg_core.cpp b/opencl/test/unit_test/xe2_hpg_core/test_cmds_programming_xe2_hpg_core.cpp index 30c133214e..77cac1a4f3 100644 --- a/opencl/test/unit_test/xe2_hpg_core/test_cmds_programming_xe2_hpg_core.cpp +++ b/opencl/test/unit_test/xe2_hpg_core/test_cmds_programming_xe2_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2024 Intel Corporation + * Copyright (C) 2024-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -96,7 +96,7 @@ XE2_HPG_CORETEST_F(CmdsProgrammingTestsXe2HpgCore, givenAlignedCacheableReadOnly typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/xe3_core/command_stream_receiver_hw_tests_xe3_core.cpp b/opencl/test/unit_test/xe3_core/command_stream_receiver_hw_tests_xe3_core.cpp index 39790f5830..5f00af2dd6 100644 --- a/opencl/test/unit_test/xe3_core/command_stream_receiver_hw_tests_xe3_core.cpp +++ b/opencl/test/unit_test/xe3_core/command_stream_receiver_hw_tests_xe3_core.cpp @@ -733,7 +733,7 @@ XE3_CORETEST_F(Xe3BcsTests, givenOverriddenMocksValueWhenAppendBlitCommandsBlock bltCmd->setDestinationX2CoordinateRight(1); bltCmd->setDestinationY2CoordinateBottom(1); - uint32_t mockValue = context->getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + uint32_t mockValue = context->getDevice(0)->getGmmHelper()->getL3EnabledMOCS(); uint32_t newValue = mockValue + 1; debugManager.flags.OverrideBlitterMocs.set(newValue); diff --git a/opencl/test/unit_test/xe3_core/test_cmds_programming_xe3_core.cpp b/opencl/test/unit_test/xe3_core/test_cmds_programming_xe3_core.cpp index d580f69034..825fa8e7b2 100644 --- a/opencl/test/unit_test/xe3_core/test_cmds_programming_xe3_core.cpp +++ b/opencl/test/unit_test/xe3_core/test_cmds_programming_xe3_core.cpp @@ -96,7 +96,7 @@ XE3_CORETEST_F(CmdsProgrammingTestsXe3Core, givenAlignedCacheableReadOnlyBufferT typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/xe_hpc_core/copy_engine_tests_xe_hpc_core.cpp b/opencl/test/unit_test/xe_hpc_core/copy_engine_tests_xe_hpc_core.cpp index 81d82c7f39..60cb6ebb34 100644 --- a/opencl/test/unit_test/xe_hpc_core/copy_engine_tests_xe_hpc_core.cpp +++ b/opencl/test/unit_test/xe_hpc_core/copy_engine_tests_xe_hpc_core.cpp @@ -157,7 +157,7 @@ XE_HPC_CORETEST_F(BlitXeHpcCoreTests, givenTransferLargerThenHalfOfL3WhenItIsPro ASSERT_NE(hwParser.cmdList.end(), itorBltCmd); MEM_COPY *bltCmd = (MEM_COPY *)*itorBltCmd; - auto mocsL3disabled = clDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocsL3disabled = clDevice->getGmmHelper()->getUncachedMOCS(); EXPECT_EQ(mocsL3disabled, bltCmd->getDestinationMOCS()); EXPECT_EQ(mocsL3disabled, bltCmd->getSourceMOCS()); } diff --git a/opencl/test/unit_test/xe_hpc_core/test_cmds_programming_xe_hpc_core.cpp b/opencl/test/unit_test/xe_hpc_core/test_cmds_programming_xe_hpc_core.cpp index 4fe66d9e9f..104df5743c 100644 --- a/opencl/test/unit_test/xe_hpc_core/test_cmds_programming_xe_hpc_core.cpp +++ b/opencl/test/unit_test/xe_hpc_core/test_cmds_programming_xe_hpc_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -96,7 +96,7 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenAlignedCacheableReadOnlyBu typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/xe_hpg_core/copy_engine_tests_xe_hpg_core.cpp b/opencl/test/unit_test/xe_hpg_core/copy_engine_tests_xe_hpg_core.cpp index f687110b5c..089405b921 100644 --- a/opencl/test/unit_test/xe_hpg_core/copy_engine_tests_xe_hpg_core.cpp +++ b/opencl/test/unit_test/xe_hpg_core/copy_engine_tests_xe_hpg_core.cpp @@ -76,7 +76,7 @@ XE_HPG_CORETEST_F(BlitXeHpgCoreTests, givenBufferWhenProgrammingBltCommandThenSe auto bltCmd = genCmdCast(*(hwParser.cmdList.begin())); EXPECT_NE(nullptr, bltCmd); - auto mocs = clDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocs = clDevice->getRootDeviceEnvironment().getGmmHelper()->getUncachedMOCS(); EXPECT_EQ(mocs, bltCmd->getDestinationMOCS()); EXPECT_EQ(mocs, bltCmd->getSourceMOCS()); diff --git a/opencl/test/unit_test/xe_hpg_core/dg2/test_cmds_programming_dg2.cpp b/opencl/test/unit_test/xe_hpg_core/dg2/test_cmds_programming_dg2.cpp index 0e058889b0..576610c06f 100644 --- a/opencl/test/unit_test/xe_hpg_core/dg2/test_cmds_programming_dg2.cpp +++ b/opencl/test/unit_test/xe_hpg_core/dg2/test_cmds_programming_dg2.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -120,7 +120,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenAlignedCacheableReadOnlyBufferThenChoseO typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); @@ -150,7 +150,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenAlignedCacheableReadOnlyBufferAndDebugge typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, clDevice->getDevice(), false); - const auto expectedMocs = clDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = clDevice->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/opencl/test/unit_test/xe_hpg_core/test_cmds_programming_xe_hpg_core.cpp b/opencl/test/unit_test/xe_hpg_core/test_cmds_programming_xe_hpg_core.cpp index 3dcdc553f1..c1d03c8c6f 100644 --- a/opencl/test/unit_test/xe_hpg_core/test_cmds_programming_xe_hpg_core.cpp +++ b/opencl/test/unit_test/xe_hpg_core/test_cmds_programming_xe_hpg_core.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -99,7 +99,7 @@ XE_HPG_CORETEST_F(CmdsProgrammingTestsXeHpgCore, givenAlignedCacheableReadOnlyBu typename FamilyType::RENDER_SURFACE_STATE surfaceState = {}; buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false); - const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + const auto expectedMocs = context.getDevice(0)->getGmmHelper()->getL1EnabledMOCS(); const auto actualMocs = surfaceState.getMemoryObjectControlState(); EXPECT_EQ(expectedMocs, actualMocs); diff --git a/shared/source/command_container/command_encoder.inl b/shared/source/command_container/command_encoder.inl index dc0629593a..f280beaf1a 100644 --- a/shared/source/command_container/command_encoder.inl +++ b/shared/source/command_container/command_encoder.inl @@ -478,7 +478,7 @@ void EncodeSurfaceState::encodeBuffer(EncodeSurfaceStateArgs &args) { } if (debugManager.flags.DisableCachingForStatefulBufferAccess.get()) { - surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + surfaceState->setMemoryObjectControlState(args.gmmHelper->getUncachedMOCS()); } EncodeSurfaceState::encodeExtraBufferParams(args); diff --git a/shared/source/command_container/command_encoder_xehp_and_later.inl b/shared/source/command_container/command_encoder_xehp_and_later.inl index e083aead24..28023bfeb1 100644 --- a/shared/source/command_container/command_encoder_xehp_and_later.inl +++ b/shared/source/command_container/command_encoder_xehp_and_later.inl @@ -309,7 +309,7 @@ void EncodeDispatchKernel::encode(CommandContainer &container, EncodeDis STATE_BASE_ADDRESS sbaCmd; auto gmmHelper = container.getDevice()->getGmmHelper(); uint32_t statelessMocsIndex = - args.requiresUncachedMocs ? (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1) : (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + args.requiresUncachedMocs ? (gmmHelper->getUncachedMOCS() >> 1) : (gmmHelper->getL3EnabledMOCS() >> 1); auto l1CachePolicy = container.l1CachePolicyDataRef()->getL1CacheValue(false); auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true); @@ -526,9 +526,9 @@ inline uint32_t EncodePostSync::getPostSyncMocs(const RootDeviceEnvironm } if (dcFlush) { - return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + return gmmHelper->getUncachedMOCS(); } else { - return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + return gmmHelper->getL3EnabledMOCS(); } } @@ -790,13 +790,13 @@ void EncodeSurfaceState::encodeExtraBufferParams(EncodeSurfaceStateArgs setConstCachePolicy = true; } - if (surfaceState->getMemoryObjectControlState() == args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) && + if (surfaceState->getMemoryObjectControlState() == args.gmmHelper->getL3EnabledMOCS() && debugManager.flags.ForceL1Caching.get() != 0) { setConstCachePolicy = true; } if (setConstCachePolicy == true) { - surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); + surfaceState->setMemoryObjectControlState(args.gmmHelper->getL1EnabledMOCS()); } encodeExtraCacheSettings(surfaceState, args); diff --git a/shared/source/direct_submission/direct_submission_hw.inl b/shared/source/direct_submission/direct_submission_hw.inl index 1259e60bc2..ec95dd7ad7 100644 --- a/shared/source/direct_submission/direct_submission_hw.inl +++ b/shared/source/direct_submission/direct_submission_hw.inl @@ -129,7 +129,7 @@ void DirectSubmissionHw::dispatchStaticRelaxedOrderingSch uint64_t loopSectionStartAddress = schedulerStartAddress + RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection::loopStartSectionStart; - const uint32_t miMathMocs = this->rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const uint32_t miMathMocs = this->rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); constexpr bool isBcs = Dispatcher::isCopy(); @@ -850,7 +850,7 @@ void DirectSubmissionHw::preinitializeRelaxedOrderingSect LriHelper::program(&stream, RegisterOffsets::csGprR8, 8, true, isBcs); LriHelper::program(&stream, RegisterOffsets::csGprR8 + 4, 0, true, isBcs); - const uint32_t miMathMocs = this->rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const uint32_t miMathMocs = this->rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); EncodeAluHelper aluHelper({{ {AluRegisters::opcodeLoad, AluRegisters::srca, AluRegisters::gpr1}, diff --git a/shared/source/gen12lp/command_encoder_gen12lp.cpp b/shared/source/gen12lp/command_encoder_gen12lp.cpp index b33fb094e1..6ad19fd7a0 100644 --- a/shared/source/gen12lp/command_encoder_gen12lp.cpp +++ b/shared/source/gen12lp/command_encoder_gen12lp.cpp @@ -240,7 +240,7 @@ void EncodeDispatchKernel::encode(CommandContainer &container, EncodeDis STATE_BASE_ADDRESS sba; auto gmmHelper = container.getDevice()->getGmmHelper(); uint32_t statelessMocsIndex = - args.requiresUncachedMocs ? (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1) : (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + args.requiresUncachedMocs ? (gmmHelper->getUncachedMOCS() >> 1) : (gmmHelper->getL3EnabledMOCS() >> 1); auto l1CachePolicy = container.l1CachePolicyDataRef()->getL1CacheValue(false); auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true); EncodeStateBaseAddressArgs encodeStateBaseAddressArgs = { @@ -755,7 +755,7 @@ void EncodeWA::encodeAdditionalPipelineSelect(LinearStream &stream, cons template <> void EncodeSurfaceState::encodeExtraBufferParams(EncodeSurfaceStateArgs &args) { auto surfaceState = reinterpret_cast(args.outMemory); - const bool isL3Allowed = surfaceState->getMemoryObjectControlState() == args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + const bool isL3Allowed = surfaceState->getMemoryObjectControlState() == args.gmmHelper->getL3EnabledMOCS(); if (isL3Allowed) { const bool isConstantSurface = args.allocation && args.allocation->getAllocationType() == AllocationType::constantSurface; bool useL1 = args.isReadOnly || isConstantSurface; @@ -765,7 +765,7 @@ void EncodeSurfaceState::encodeExtraBufferParams(EncodeSurfaceStateArgs } if (useL1) { - surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); + surfaceState->setMemoryObjectControlState(args.gmmHelper->getL1EnabledMOCS()); } } } diff --git a/shared/source/gen12lp/gfx_core_helper_gen12lp.cpp b/shared/source/gen12lp/gfx_core_helper_gen12lp.cpp index 04af2fbaa8..615f8b548d 100644 --- a/shared/source/gen12lp/gfx_core_helper_gen12lp.cpp +++ b/shared/source/gen12lp/gfx_core_helper_gen12lp.cpp @@ -265,13 +265,13 @@ uint32_t GfxCoreHelperHw::getMocsIndex(const GmmHelper &gmmHelper, bool } if (l1enabled) { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; + return gmmHelper.getL1EnabledMOCS() >> 1; } else { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; + return gmmHelper.getL3EnabledMOCS() >> 1; } } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + return gmmHelper.getUncachedMOCS() >> 1; } template <> diff --git a/shared/source/gmm_helper/gmm_helper.cpp b/shared/source/gmm_helper/gmm_helper.cpp index 7969ed34b8..d236c7e72f 100644 --- a/shared/source/gmm_helper/gmm_helper.cpp +++ b/shared/source/gmm_helper/gmm_helper.cpp @@ -33,6 +33,12 @@ const RootDeviceEnvironment &GmmHelper::getRootDeviceEnvironment() const { return rootDeviceEnvironment; } +void GmmHelper::initMocsDefaults() { + mocsL1Enabled = getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + mocsL3Enabled = getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + mocsUncached = getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); +} + uint32_t GmmHelper::getMOCS(uint32_t type) const { if (allResourcesUncached || (debugManager.flags.ForceAllResourcesUncached.get() == true)) { type = GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED; @@ -47,12 +53,29 @@ uint32_t GmmHelper::getMOCS(uint32_t type) const { return static_cast(mocs.DwordValue); } +uint32_t GmmHelper::getL1EnabledMOCS() const { + return mocsL1Enabled; +} + +uint32_t GmmHelper::getL3EnabledMOCS() const { + return mocsL3Enabled; +} + +uint32_t GmmHelper::getUncachedMOCS() const { + return mocsUncached; +} + void GmmHelper::applyMocsEncryptionBit(uint32_t &index) { if (debugManager.flags.ForceStatelessMocsEncryptionBit.get() == 1) { index |= 1; } } +void GmmHelper::forceAllResourcesUncached() { + allResourcesUncached = true; + initMocsDefaults(); +} + GmmHelper::GmmHelper(const RootDeviceEnvironment &rootDeviceEnvironmentArg) : rootDeviceEnvironment(rootDeviceEnvironmentArg) { auto hwInfo = getHardwareInfo(); auto hwInfoAddressWidth = Math::log2(hwInfo->capabilityTable.gpuAddressSpace + 1); @@ -60,6 +83,8 @@ GmmHelper::GmmHelper(const RootDeviceEnvironment &rootDeviceEnvironmentArg) : ro gmmClientContext = GmmHelper::createGmmContextWrapperFunc(rootDeviceEnvironment); UNRECOVERABLE_IF(!gmmClientContext); + + initMocsDefaults(); } uint64_t GmmHelper::canonize(uint64_t address) const { diff --git a/shared/source/gmm_helper/gmm_helper.h b/shared/source/gmm_helper/gmm_helper.h index 7fcc757c3a..63a28e1148 100644 --- a/shared/source/gmm_helper/gmm_helper.h +++ b/shared/source/gmm_helper/gmm_helper.h @@ -21,8 +21,13 @@ class GmmHelper { const HardwareInfo *getHardwareInfo(); uint32_t getMOCS(uint32_t type) const; + uint32_t getL1EnabledMOCS() const; + uint32_t getL3EnabledMOCS() const; + uint32_t getUncachedMOCS() const; + void initMocsDefaults(); + static void applyMocsEncryptionBit(uint32_t &index); - void forceAllResourcesUncached() { allResourcesUncached = true; }; + void forceAllResourcesUncached(); static constexpr uint64_t maxPossiblePitch = (1ull << 31); @@ -40,9 +45,12 @@ class GmmHelper { static std::unique_ptr (*createGmmContextWrapperFunc)(const RootDeviceEnvironment &); protected: - uint32_t addressWidth; const RootDeviceEnvironment &rootDeviceEnvironment; std::unique_ptr gmmClientContext; + uint32_t addressWidth = 0; + uint32_t mocsL1Enabled = 0; + uint32_t mocsL3Enabled = 0; + uint32_t mocsUncached = 0; bool allResourcesUncached = false; }; } // namespace NEO diff --git a/shared/source/helpers/blit_commands_helper_pvc_and_later.inl b/shared/source/helpers/blit_commands_helper_pvc_and_later.inl index 85a3251e5e..035840ec6b 100644 --- a/shared/source/helpers/blit_commands_helper_pvc_and_later.inl +++ b/shared/source/helpers/blit_commands_helper_pvc_and_later.inl @@ -16,7 +16,7 @@ void BlitCommandsHelper::dispatchBlitMemoryByteFill(const BlitPropert using MEM_SET = typename Family::MEM_SET; auto blitCmd = Family::cmdInitMemSet; - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } diff --git a/shared/source/helpers/blit_commands_helper_xehp_and_later.inl b/shared/source/helpers/blit_commands_helper_xehp_and_later.inl index 43dfd984ae..03e91debcc 100644 --- a/shared/source/helpers/blit_commands_helper_xehp_and_later.inl +++ b/shared/source/helpers/blit_commands_helper_xehp_and_later.inl @@ -60,7 +60,7 @@ void BlitCommandsHelper::appendBlitMemoryOptionsForFillBuffer(NEO::Gr appendExtraMemoryProperties(blitCmd, rootDeviceEnvironment); - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getUncachedMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } diff --git a/shared/source/helpers/gfx_core_helper_base.inl b/shared/source/helpers/gfx_core_helper_base.inl index 1f56baa9e6..dd65ab0926 100644 --- a/shared/source/helpers/gfx_core_helper_base.inl +++ b/shared/source/helpers/gfx_core_helper_base.inl @@ -135,9 +135,9 @@ void GfxCoreHelperHw::setRenderSurfaceStateForScratchResource(const Root state.setVerticalLineStrideOffset(0); if ((isAligned(bufferStateAddress) && isAligned(bufferStateSize)) || isReadOnly) { - state.setMemoryObjectControlState(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + state.setMemoryObjectControlState(gmmHelper->getL3EnabledMOCS()); } else { - state.setMemoryObjectControlState(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + state.setMemoryObjectControlState(gmmHelper->getUncachedMOCS()); } if (debugManager.flags.OverrideMocsIndexForScratchSpace.get() != -1) { auto mocsIndex = static_cast(debugManager.flags.OverrideMocsIndexForScratchSpace.get()) << 1; diff --git a/shared/source/helpers/gfx_core_helper_xehp_and_later.inl b/shared/source/helpers/gfx_core_helper_xehp_and_later.inl index 7beaa79f5a..98cc1a0cc3 100644 --- a/shared/source/helpers/gfx_core_helper_xehp_and_later.inl +++ b/shared/source/helpers/gfx_core_helper_xehp_and_later.inl @@ -83,17 +83,16 @@ EngineGroupType GfxCoreHelperHw::getEngineGroupType(aub_stream::Engin template uint32_t GfxCoreHelperHw::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const { if (l3enabled) { - if (debugManager.flags.ForceL1Caching.get() == 0) { - if (l1enabled) { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; - } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - } else { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; + if (debugManager.flags.ForceL1Caching.get() != 1) { + l1enabled = static_cast(debugManager.flags.ForceL1Caching.get()); } + if (l1enabled) { + return gmmHelper.getL1EnabledMOCS() >> 1; + } + return gmmHelper.getL3EnabledMOCS() >> 1; } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + return gmmHelper.getUncachedMOCS() >> 1; } template diff --git a/shared/source/helpers/state_base_address_xehp_and_later.inl b/shared/source/helpers/state_base_address_xehp_and_later.inl index 6b187455ad..ae76d53134 100644 --- a/shared/source/helpers/state_base_address_xehp_and_later.inl +++ b/shared/source/helpers/state_base_address_xehp_and_later.inl @@ -87,11 +87,11 @@ void StateBaseAddressHelper::appendStateBaseAddressParameters( setSbaStatelessCompressionParams(args.stateBaseAddressCmd, args.memoryCompressionState); } - bool l3MocsEnabled = (args.stateBaseAddressCmd->getStatelessDataPortAccessMemoryObjectControlState() >> 1) == (args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + bool l3MocsEnabled = (args.stateBaseAddressCmd->getStatelessDataPortAccessMemoryObjectControlState() >> 1) == (args.gmmHelper->getL3EnabledMOCS() >> 1); bool constMocsAllowed = (l3MocsEnabled && (debugManager.flags.ForceL1Caching.get() != 0)); if (constMocsAllowed) { - auto constMocsIndex = args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST); + auto constMocsIndex = args.gmmHelper->getL1EnabledMOCS(); GmmHelper::applyMocsEncryptionBit(constMocsIndex); args.stateBaseAddressCmd->setStatelessDataPortAccessMemoryObjectControlState(constMocsIndex); diff --git a/shared/source/xe2_hpg_core/command_stream_receiver_hw_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/command_stream_receiver_hw_xe2_hpg_core.cpp index 7cef085d79..1081470710 100644 --- a/shared/source/xe2_hpg_core/command_stream_receiver_hw_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/command_stream_receiver_hw_xe2_hpg_core.cpp @@ -125,7 +125,7 @@ void BlitCommandsHelper::appendBlitCommandsBlockCopy(const BlitPropertie blitCmd.setSourceSurfaceType(XY_BLOCK_COPY_BLT::SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_1D); } - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } @@ -204,7 +204,7 @@ void BlitCommandsHelper::appendBlitCommandsMemCopy(const BlitProperties blitCmd.setCopyType(MEM_COPY::COPY_TYPE::COPY_TYPE_LINEAR_COPY); } - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } diff --git a/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp b/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp index f96d3e577c..8c4d4a4b13 100644 --- a/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp +++ b/shared/source/xe2_hpg_core/gfx_core_helper_xe2_hpg_core.cpp @@ -79,9 +79,9 @@ uint32_t GfxCoreHelperHw::getMinimalSIMDSize() const { template <> uint32_t GfxCoreHelperHw::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const { if (l3enabled) { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; + return gmmHelper.getL3EnabledMOCS() >> 1; } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + return gmmHelper.getUncachedMOCS() >> 1; } template <> diff --git a/shared/source/xe3_core/command_stream_receiver_hw_xe3_core.cpp b/shared/source/xe3_core/command_stream_receiver_hw_xe3_core.cpp index 2b0e86a4ad..f64134ab79 100644 --- a/shared/source/xe3_core/command_stream_receiver_hw_xe3_core.cpp +++ b/shared/source/xe3_core/command_stream_receiver_hw_xe3_core.cpp @@ -124,7 +124,7 @@ void BlitCommandsHelper::appendBlitCommandsBlockCopy(const BlitPropertie blitCmd.setSourceSurfaceType(XY_BLOCK_COPY_BLT::SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_1D); } - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } @@ -158,7 +158,7 @@ void BlitCommandsHelper::appendBlitCommandsMemCopy(const BlitProperties blitCmd.setCopyType(MEM_COPY::COPY_TYPE::COPY_TYPE_LINEAR_COPY); } - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getL3EnabledMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); } diff --git a/shared/source/xe3_core/gfx_core_helper_xe3_core.cpp b/shared/source/xe3_core/gfx_core_helper_xe3_core.cpp index 5ffc3e02fc..9d6a73ae42 100644 --- a/shared/source/xe3_core/gfx_core_helper_xe3_core.cpp +++ b/shared/source/xe3_core/gfx_core_helper_xe3_core.cpp @@ -84,9 +84,9 @@ uint32_t GfxCoreHelperHw::getMinimalSIMDSize() const { template <> uint32_t GfxCoreHelperHw::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const { if (l3enabled) { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; + return gmmHelper.getL3EnabledMOCS() >> 1; } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + return gmmHelper.getUncachedMOCS() >> 1; } template <> diff --git a/shared/source/xe_hpc_core/gfx_core_helper_xe_hpc_core.cpp b/shared/source/xe_hpc_core/gfx_core_helper_xe_hpc_core.cpp index 801c43c922..e4478c0f1d 100644 --- a/shared/source/xe_hpc_core/gfx_core_helper_xe_hpc_core.cpp +++ b/shared/source/xe_hpc_core/gfx_core_helper_xe_hpc_core.cpp @@ -127,9 +127,9 @@ uint32_t GfxCoreHelperHw::getMinimalSIMDSize() const { template <> uint32_t GfxCoreHelperHw::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const { if (l3enabled) { - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; + return gmmHelper.getL3EnabledMOCS() >> 1; } - return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; + return gmmHelper.getUncachedMOCS() >> 1; } template <> diff --git a/shared/source/xe_hpg_core/command_stream_receiver_hw_xe_hpg_core.cpp b/shared/source/xe_hpg_core/command_stream_receiver_hw_xe_hpg_core.cpp index 8d81165245..070f0ae6f3 100644 --- a/shared/source/xe_hpg_core/command_stream_receiver_hw_xe_hpg_core.cpp +++ b/shared/source/xe_hpg_core/command_stream_receiver_hw_xe_hpg_core.cpp @@ -129,7 +129,7 @@ void BlitCommandsHelper::appendBlitCommandsBlockCopy(const BlitPropertie DEBUG_BREAK_IF((AuxTranslationDirection::none != blitProperties.auxTranslationDirection) && (blitProperties.dstAllocation != blitProperties.srcAllocation || !blitProperties.dstAllocation->isCompressionEnabled())); - auto mocs = rootDeviceEnvironment.getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto mocs = rootDeviceEnvironment.getGmmHelper()->getUncachedMOCS(); if (debugManager.flags.OverrideBlitterMocs.get() != -1) { mocs = static_cast(debugManager.flags.OverrideBlitterMocs.get()); diff --git a/shared/test/unit_test/command_container/command_encoder_tests.cpp b/shared/test/unit_test/command_container/command_encoder_tests.cpp index f4898099f4..85369aadb1 100644 --- a/shared/test/unit_test/command_container/command_encoder_tests.cpp +++ b/shared/test/unit_test/command_container/command_encoder_tests.cpp @@ -719,7 +719,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncoderTests, givenAtLeastXeHpPlatformWhenSe EXPECT_NO_THROW(walkerCmd.getPostSync().setMocs(mocs)); auto gmmHelper = rootDeviceEnvironment.getGmmHelper(); - auto expectedMocs = dcFlush ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + auto expectedMocs = dcFlush ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS(); EXPECT_EQ(expectedMocs, walkerCmd.getPostSync().getMocs()); } diff --git a/shared/test/unit_test/command_container/command_encoder_tests_xe_hpg_core_and_later.cpp b/shared/test/unit_test/command_container/command_encoder_tests_xe_hpg_core_and_later.cpp index 4c47a7c40b..42e0260bed 100644 --- a/shared/test/unit_test/command_container/command_encoder_tests_xe_hpg_core_and_later.cpp +++ b/shared/test/unit_test/command_container/command_encoder_tests_xe_hpg_core_and_later.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -35,7 +35,7 @@ HWTEST2_F(CommandEncoderXeHpgCorePlusTests, givenSpecifiedL1CacheControlWhenAppe args.outMemory = &rssCmd; args.graphicsAddress = allocation->getGpuAddress(); args.size = allocation->getUnderlyingBufferSize(); - args.mocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER); + args.mocs = pDevice->getGmmHelper()->getL3EnabledMOCS(); args.numAvailableDevices = pDevice->getNumGenericSubDevices(); args.allocation = allocation; args.gmmHelper = pDevice->getGmmHelper(); diff --git a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp index 78b54c7619..0b8a7e09e7 100644 --- a/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp +++ b/shared/test/unit_test/direct_submission/direct_submission_tests_2.cpp @@ -1614,7 +1614,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenDebugFlagSetWhenDispatching EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled); EXPECT_TRUE(verifyStaticSchedulerProgramming(*directSubmission.relaxedOrderingSchedulerAllocation, directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, 123, - pDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER))); + pDevice->getRootDeviceEnvironment().getGmmHelper()->getL3EnabledMOCS())); } HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenNewNumberOfClientsWhenDispatchingWorkThenIncraseQueueSize, IsAtLeastXeHpcCore) { @@ -1628,7 +1628,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenNewNumberOfClientsWhenDispa EXPECT_EQ(RelaxedOrderingHelper::queueSizeMultiplier, directSubmission.currentRelaxedOrderingQueueSize); EXPECT_TRUE(verifyStaticSchedulerProgramming(*directSubmission.relaxedOrderingSchedulerAllocation, directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, RelaxedOrderingHelper::queueSizeMultiplier, - pDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER))); + pDevice->getRootDeviceEnvironment().getGmmHelper()->getL3EnabledMOCS())); const uint64_t expectedQueueSizeValueVa = directSubmission.relaxedOrderingSchedulerAllocation->getGpuAddress() + RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection::drainRequestSectionStart + @@ -1708,7 +1708,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, whenInitializingThenDispatchStat EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled); EXPECT_TRUE(verifyStaticSchedulerProgramming(*directSubmission.relaxedOrderingSchedulerAllocation, directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, RelaxedOrderingHelper::queueSizeMultiplier, - pDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER))); + pDevice->getRootDeviceEnvironment().getGmmHelper()->getL3EnabledMOCS())); } { @@ -1861,7 +1861,7 @@ HWTEST_F(DirectSubmissionRelaxedOrderingTests, whenDispatchingWorkThenDispatchTa EXPECT_EQ(8u, miMathCmd->DW0.BitField.DwordLength); if constexpr (FamilyType::isUsingMiMathMocs) { - EXPECT_EQ(miMathCmd->DW0.BitField.MemoryObjectControlState, pDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(miMathCmd->DW0.BitField.MemoryObjectControlState, pDevice->getRootDeviceEnvironment().getGmmHelper()->getL3EnabledMOCS()); } auto miAluCmd = reinterpret_cast(++miMathCmd); diff --git a/shared/test/unit_test/encoders/test_encode_dispatch_kernel.cpp b/shared/test/unit_test/encoders/test_encode_dispatch_kernel.cpp index f4ecb2df77..495d5ff7f7 100644 --- a/shared/test/unit_test/encoders/test_encode_dispatch_kernel.cpp +++ b/shared/test/unit_test/encoders/test_encode_dispatch_kernel.cpp @@ -116,7 +116,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED))); + (gmmHelper->getUncachedMOCS())); } HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUncachedMocsAndNonDirtyHeapsThenCorrectMocsIsSet) { @@ -144,7 +144,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED))); + (gmmHelper->getUncachedMOCS())); } HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndDirtyHeapsThenSbaIsNotProgrammed) { @@ -173,7 +173,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNon auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER))); + (gmmHelper->getL3EnabledMOCS())); } HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndNonDirtyHeapsThenSbaIsNotProgrammed) { @@ -673,7 +673,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandEncodeStatesTest, givenCleanHeapsAndSlmNot auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED))); + (gmmHelper->getUncachedMOCS())); } HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandEncodeStatesTest, givenDirtyHeapsAndSlmNotChangedWhenDispatchKernelThenHeapsAreCleanAndFlushAdded) { diff --git a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_dg2_and_later.cpp b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_dg2_and_later.cpp index 3902fe4744..a07569805f 100644 --- a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_dg2_and_later.cpp +++ b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_dg2_and_later.cpp @@ -98,7 +98,7 @@ HWTEST2_F(CommandEncodeStatesTestDg2AndLater, givenEventAddressWhenEncodeThenMoc auto gmmHelper = pDevice->getGmmHelper(); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), cmd->getPostSync().getMocs()); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), cmd->getPostSync().getMocs()); } HWTEST2_F(CommandEncodeStatesTestDg2AndLater, GivenVariousSlmTotalSizesWhenSetPreferredSlmIsCalledThenCorrectValuesAreSet, IsXeHpgCore) { diff --git a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp index 7d0ee9d287..340d0f534f 100644 --- a/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp +++ b/shared/test/unit_test/encoders/test_encode_dispatch_kernel_xehp_and_later.cpp @@ -432,9 +432,9 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenEventAddressWhenEncod ASSERT_NE(itor, commands.end()); auto cmd = genCmdCast(*itor); if (MemorySynchronizationCommands::getDcFlushEnable(true, pDevice->getRootDeviceEnvironment())) { - EXPECT_EQ(pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), cmd->getPostSync().getMocs()); + EXPECT_EQ(pDevice->getGmmHelper()->getUncachedMOCS(), cmd->getPostSync().getMocs()); } else { - EXPECT_EQ(pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), cmd->getPostSync().getMocs()); + EXPECT_EQ(pDevice->getGmmHelper()->getL3EnabledMOCS(), cmd->getPostSync().getMocs()); } } diff --git a/shared/test/unit_test/encoders/test_encode_states.cpp b/shared/test/unit_test/encoders/test_encode_states.cpp index 7ad5a100f9..f174e82ca0 100644 --- a/shared/test/unit_test/encoders/test_encode_states.cpp +++ b/shared/test/unit_test/encoders/test_encode_states.cpp @@ -374,7 +374,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenCommandContainerWithDirtyHeapsWhenSetSta cmdContainer->setHeapDirty(NEO::HeapType::surfaceState); auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); STATE_BASE_ADDRESS sba; @@ -415,7 +415,7 @@ HWTEST_F(CommandEncodeStatesTest, givenCommandContainerWhenSetStateBaseAddressCa STATE_BASE_ADDRESS sba; auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); EncodeStateBaseAddressArgs args = createDefaultEncodeStateBaseAddressArgs(cmdContainer.get(), sba, statelessMocsIndex); @@ -470,7 +470,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenHeapSharingEnabledWhenRetrievingNotIniti cmdContainer->setHeapDirty(NEO::HeapType::surfaceState); auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); STATE_BASE_ADDRESS sba; EncodeStateBaseAddressArgs args = createDefaultEncodeStateBaseAddressArgs(cmdContainer.get(), sba, statelessMocsIndex); @@ -503,7 +503,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenSbaPropertiesWhenBindingBaseAddressSetTh cmdContainer->setHeapDirty(NEO::HeapType::surfaceState); auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); StateBaseAddressProperties sbaProperties; sbaProperties.initSupport(pDevice->getRootDeviceEnvironment()); diff --git a/shared/test/unit_test/encoders/test_encode_states_dg2.cpp b/shared/test/unit_test/encoders/test_encode_states_dg2.cpp index d989d66094..ab656b9acb 100644 --- a/shared/test/unit_test/encoders/test_encode_states_dg2.cpp +++ b/shared/test/unit_test/encoders/test_encode_states_dg2.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022-2024 Intel Corporation + * Copyright (C) 2022-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -26,7 +26,7 @@ HWTEST2_F(CommandEncodeStatesDG2Test, givenCommandContainerWhenSetStateBaseAddre STATE_BASE_ADDRESS sba; auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); EncodeStateBaseAddressArgs args = createDefaultEncodeStateBaseAddressArgs(cmdContainer.get(), sba, statelessMocsIndex); @@ -51,7 +51,7 @@ HWTEST2_F(CommandEncodeStatesDG2Test, givenCommandContainerAndDebuggerWhenSetSta cmdContainer->getDevice()->getExecutionEnvironment()->rootDeviceEnvironments[0]->debugger.reset(debugger); STATE_BASE_ADDRESS sba; auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); EncodeStateBaseAddressArgs args = createDefaultEncodeStateBaseAddressArgs(cmdContainer.get(), sba, statelessMocsIndex); EncodeStateBaseAddress::encode(args); diff --git a/shared/test/unit_test/gen12lp/test_command_encoder_gen12lp.cpp b/shared/test/unit_test/gen12lp/test_command_encoder_gen12lp.cpp index 3160a3100d..4c45587e1c 100644 --- a/shared/test/unit_test/gen12lp/test_command_encoder_gen12lp.cpp +++ b/shared/test/unit_test/gen12lp/test_command_encoder_gen12lp.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2020-2024 Intel Corporation + * Copyright (C) 2020-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -88,7 +88,7 @@ GEN12LPTEST_F(CommandEncodeStatesTest, givenVariousEngineTypesWhenEncodeSbaThenA ASSERT_EQ(CommandContainer::ErrorCode::success, ret); auto gmmHelper = cmdContainer.getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); { STATE_BASE_ADDRESS sba; diff --git a/shared/test/unit_test/gmm_helper/gmm_helper_tests.cpp b/shared/test/unit_test/gmm_helper/gmm_helper_tests.cpp index 04a630694a..e4d3571b30 100644 --- a/shared/test/unit_test/gmm_helper/gmm_helper_tests.cpp +++ b/shared/test/unit_test/gmm_helper/gmm_helper_tests.cpp @@ -1228,12 +1228,12 @@ TEST(GmmHelperTest, givenNewCoherencyModelWhenGetMocsThenDeferToPat) { GTEST_SKIP(); } - EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + EXPECT_EQ(0u, gmmHelper->getUncachedMOCS()); EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER)); EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE)); EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER)); - EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); - EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(0u, gmmHelper->getL1EnabledMOCS()); + EXPECT_EQ(0u, gmmHelper->getL3EnabledMOCS()); EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC)); GmmHelper::createGmmContextWrapperFunc = createGmmContextSave; @@ -1249,24 +1249,24 @@ TEST(GmmHelperTest, givenGmmHelperAndL3CacheDisabledForDebugThenCorrectMOCSIsRet } auto gmmHelper = executionEnvironment.rootDeviceEnvironments[0]->getGmmHelper(); - auto uncachedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto uncachedMocs = gmmHelper->getUncachedMOCS(); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + EXPECT_EQ(uncachedMocs, gmmHelper->getUncachedMOCS()); EXPECT_EQ(2u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER)); EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE)); EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER)); - EXPECT_EQ(8u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); - EXPECT_EQ(16u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(8u, gmmHelper->getL1EnabledMOCS()); + EXPECT_EQ(16u, gmmHelper->getL3EnabledMOCS()); EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC)); gmmHelper->forceAllResourcesUncached(); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + EXPECT_EQ(uncachedMocs, gmmHelper->getUncachedMOCS()); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER)); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE)); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER)); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(uncachedMocs, gmmHelper->getL1EnabledMOCS()); + EXPECT_EQ(uncachedMocs, gmmHelper->getL3EnabledMOCS()); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC)); GmmHelper::createGmmContextWrapperFunc = createGmmContextSave; } @@ -1281,25 +1281,26 @@ TEST(GmmHelperTest, givenGmmHelperAndForceAllResourcesUncachedDebugVariableSetTh } auto gmmHelper = executionEnvironment.rootDeviceEnvironments[0]->getGmmHelper(); - auto uncachedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED); + auto uncachedMocs = gmmHelper->getUncachedMOCS(); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + EXPECT_EQ(uncachedMocs, gmmHelper->getUncachedMOCS()); EXPECT_EQ(2u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER)); EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE)); EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER)); - EXPECT_EQ(8u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); - EXPECT_EQ(16u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(8u, gmmHelper->getL1EnabledMOCS()); + EXPECT_EQ(16u, gmmHelper->getL3EnabledMOCS()); EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC)); DebugManagerStateRestore restore; debugManager.flags.ForceAllResourcesUncached.set(true); + gmmHelper->initMocsDefaults(); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)); + EXPECT_EQ(uncachedMocs, gmmHelper->getUncachedMOCS()); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER)); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE)); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER)); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST)); - EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)); + EXPECT_EQ(uncachedMocs, gmmHelper->getL1EnabledMOCS()); + EXPECT_EQ(uncachedMocs, gmmHelper->getL3EnabledMOCS()); EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC)); GmmHelper::createGmmContextWrapperFunc = createGmmContextSave; } diff --git a/shared/test/unit_test/helpers/gfx_core_helper_tests.cpp b/shared/test/unit_test/helpers/gfx_core_helper_tests.cpp index 6ac60edc09..fd2b26f86d 100644 --- a/shared/test/unit_test/helpers/gfx_core_helper_tests.cpp +++ b/shared/test/unit_test/helpers/gfx_core_helper_tests.cpp @@ -539,14 +539,14 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid addr += offset; EXPECT_EQ(addr, state->getSurfaceBaseAddress()); EXPECT_EQ(type, state->getSurfaceType()); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), state->getMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), state->getMemoryObjectControlState()); memset(stateBuffer, 0, sizeof(RENDER_SURFACE_STATE)); size = 0x1003; length.length = static_cast(alignUp(size, 4) - 1); bool isReadOnly = false; gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, false); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), state->getMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), state->getMemoryObjectControlState()); EXPECT_EQ(length.surfaceState.depth + 1u, state->getDepth()); EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth()); EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight()); @@ -556,7 +556,7 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid addr = 0x2001; length.length = static_cast(size - 1); gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, false); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), state->getMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getUncachedMOCS(), state->getMemoryObjectControlState()); EXPECT_EQ(length.surfaceState.depth + 1u, state->getDepth()); EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth()); EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight()); @@ -567,7 +567,7 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid length.length = static_cast(alignUp(size, 4) - 1); isReadOnly = true; gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, false); - EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), state->getMemoryObjectControlState()); + EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), state->getMemoryObjectControlState()); EXPECT_EQ(length.surfaceState.depth + 1u, state->getDepth()); EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth()); EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight()); @@ -940,9 +940,9 @@ TEST_F(GfxCoreHelperTest, givenAUBDumpForceAllToLocalMemoryDebugVarWhenSetThenGe HWCMDTEST_F(IGFX_GEN12LP_CORE, GfxCoreHelperTest, givenVariousCachesRequestThenCorrectMocsIndexesAreReturned) { auto &gfxCoreHelper = getHelper(); auto gmmHelper = this->pDevice->getGmmHelper(); - auto expectedMocsForL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; - auto expectedMocsForL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; - auto expectedMocsForL3andL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1; + auto expectedMocsForL3off = gmmHelper->getUncachedMOCS() >> 1; + auto expectedMocsForL3on = gmmHelper->getL3EnabledMOCS() >> 1; + auto expectedMocsForL3andL1on = gmmHelper->getL1EnabledMOCS() >> 1; auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true); EXPECT_EQ(expectedMocsForL3off, mocsIndex); diff --git a/shared/test/unit_test/helpers/gfx_core_helper_tests_pvc_and_later.cpp b/shared/test/unit_test/helpers/gfx_core_helper_tests_pvc_and_later.cpp index 4c779200da..33d7978c1d 100644 --- a/shared/test/unit_test/helpers/gfx_core_helper_tests_pvc_and_later.cpp +++ b/shared/test/unit_test/helpers/gfx_core_helper_tests_pvc_and_later.cpp @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2024 Intel Corporation + * Copyright (C) 2021-2025 Intel Corporation * * SPDX-License-Identifier: MIT * @@ -25,8 +25,8 @@ HWTEST2_F(GfxCoreHelperTestPvcAndLater, givenVariousCachesRequestsThenProperMocs auto &gfxCoreHelper = getHelper(); auto gmmHelper = this->pDevice->getRootDeviceEnvironment().getGmmHelper(); - auto expectedMocsForL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1; - auto expectedMocsForL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1; + auto expectedMocsForL3off = gmmHelper->getUncachedMOCS() >> 1; + auto expectedMocsForL3on = gmmHelper->getL3EnabledMOCS() >> 1; auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true); EXPECT_EQ(expectedMocsForL3off, mocsIndex); diff --git a/shared/test/unit_test/helpers/test_blit_commands_helper_pvc_and_later.cpp b/shared/test/unit_test/helpers/test_blit_commands_helper_pvc_and_later.cpp index 013cf190e1..f93c85bc20 100644 --- a/shared/test/unit_test/helpers/test_blit_commands_helper_pvc_and_later.cpp +++ b/shared/test/unit_test/helpers/test_blit_commands_helper_pvc_and_later.cpp @@ -120,7 +120,7 @@ HWTEST2_F(BlitTests, givenGmmWithEnabledCompresionWhenAppendBlitCommandsForVillB HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsPVC) { using MEM_SET = typename FamilyType::MEM_SET; DebugManagerStateRestore dbgRestore; - uint32_t mockValue = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) + 1; + uint32_t mockValue = pDevice->getGmmHelper()->getL3EnabledMOCS() + 1; debugManager.flags.OverrideBlitterMocs.set(mockValue); uint32_t pattern = 1; diff --git a/shared/test/unit_test/helpers/test_blit_commands_helper_xehp_and_later.cpp b/shared/test/unit_test/helpers/test_blit_commands_helper_xehp_and_later.cpp index 5f02b70a3b..1730cd8d83 100644 --- a/shared/test/unit_test/helpers/test_blit_commands_helper_xehp_and_later.cpp +++ b/shared/test/unit_test/helpers/test_blit_commands_helper_xehp_and_later.cpp @@ -121,7 +121,7 @@ HWTEST2_F(BlitTests, givenGmmWithEnabledCompresionAndDebugFlagSetWhenAppendBlitC HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForFillBufferThenDebugMocksValueIsSet, BlitPlatforms) { DebugManagerStateRestore dbgRestore; - uint32_t mockValue = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) + 1; + uint32_t mockValue = pDevice->getGmmHelper()->getL3EnabledMOCS() + 1; debugManager.flags.OverrideBlitterMocs.set(mockValue); diff --git a/shared/test/unit_test/xe2_hpg_core/test_blit_commands_helper_xe2_hpg_core.cpp b/shared/test/unit_test/xe2_hpg_core/test_blit_commands_helper_xe2_hpg_core.cpp index dfc5ed204b..7f4185f63c 100644 --- a/shared/test/unit_test/xe2_hpg_core/test_blit_commands_helper_xe2_hpg_core.cpp +++ b/shared/test/unit_test/xe2_hpg_core/test_blit_commands_helper_xe2_hpg_core.cpp @@ -39,7 +39,7 @@ HWTEST2_F(BlitTests, givenOneBytePatternWhenFillPatternWithBlitThenCommandIsProg HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsXe2HpgCore) { using MEM_SET = typename FamilyType::MEM_SET; DebugManagerStateRestore dbgRestore; - uint32_t mockValue = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) + 1; + uint32_t mockValue = pDevice->getGmmHelper()->getL3EnabledMOCS() + 1; debugManager.flags.OverrideBlitterMocs.set(mockValue); uint32_t pattern = 1; diff --git a/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp b/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp index 3b75a001df..e3bd7d8cea 100644 --- a/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp +++ b/shared/test/unit_test/xe2_hpg_core/test_encode_xe2_hpg_core.cpp @@ -464,7 +464,7 @@ XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenCleanHeapsAndSlmNotChangedAn auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED))); + (gmmHelper->getUncachedMOCS())); } XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenDebugFlagSetWhenAdjustIsCalledThenUpdateRequiredScratchSizeField) { diff --git a/shared/test/unit_test/xe3_core/command_encoder_xe3_core_tests.cpp b/shared/test/unit_test/xe3_core/command_encoder_xe3_core_tests.cpp index 9a3bce6997..9e75b25f55 100644 --- a/shared/test/unit_test/xe3_core/command_encoder_xe3_core_tests.cpp +++ b/shared/test/unit_test/xe3_core/command_encoder_xe3_core_tests.cpp @@ -174,7 +174,7 @@ XE3_CORETEST_F(CommandEncodeStatesXe3Test, givenHeapSharingEnabledWhenRetrieving cmdContainer->setHeapDirty(NEO::HeapType::surfaceState); auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper(); - uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1); + uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1); STATE_BASE_ADDRESS sba; EncodeStateBaseAddressArgs args = createDefaultEncodeStateBaseAddressArgs(cmdContainer.get(), sba, statelessMocsIndex); diff --git a/shared/test/unit_test/xe_hpc_core/test_encode_xe_hpc_core.cpp b/shared/test/unit_test/xe_hpc_core/test_encode_xe_hpc_core.cpp index a13d2062bb..6ada5b8afa 100644 --- a/shared/test/unit_test/xe_hpc_core/test_encode_xe_hpc_core.cpp +++ b/shared/test/unit_test/xe_hpc_core/test_encode_xe_hpc_core.cpp @@ -484,7 +484,7 @@ XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenCleanHeapsAndSlmNotChangedAndU auto cmdSba = genCmdCast(*itor); auto gmmHelper = cmdContainer->getDevice()->getGmmHelper(); EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(), - (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED))); + (gmmHelper->getUncachedMOCS())); } using XeHpcSbaTest = SbaTest;