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 <kamil.kopryk@intel.com>
This commit is contained in:
parent
5a545073f6
commit
dd3d294f87
|
@ -243,7 +243,7 @@ ze_result_t CommandListCoreFamily<gfxCoreFamily>::initialize(Device *device, NEO
|
||||||
this->signalAllEventPackets = L0GfxCoreHelper::useSignalAllEventPackets(hwInfo);
|
this->signalAllEventPackets = L0GfxCoreHelper::useSignalAllEventPackets(hwInfo);
|
||||||
this->dynamicHeapRequired = NEO::EncodeDispatchKernel<GfxFamily>::isDshNeeded(device->getDeviceInfo());
|
this->dynamicHeapRequired = NEO::EncodeDispatchKernel<GfxFamily>::isDshNeeded(device->getDeviceInfo());
|
||||||
this->doubleSbaWa = productHelper.isAdditionalStateBaseAddressWARequired(hwInfo);
|
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->l1CachePolicyData.init(productHelper);
|
||||||
this->cmdListHeapAddressModel = L0GfxCoreHelper::getHeapAddressModel(rootDeviceEnvironment);
|
this->cmdListHeapAddressModel = L0GfxCoreHelper::getHeapAddressModel(rootDeviceEnvironment);
|
||||||
this->dummyBlitWa.rootDeviceEnvironment = &(neoDevice->getRootDeviceEnvironmentRef());
|
this->dummyBlitWa.rootDeviceEnvironment = &(neoDevice->getRootDeviceEnvironmentRef());
|
||||||
|
|
|
@ -2631,7 +2631,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandListCreateTests, whenCommandListIsCreatedT
|
||||||
EXPECT_TRUE(cmdSba->getSurfaceStateBaseAddressModifyEnable());
|
EXPECT_TRUE(cmdSba->getSurfaceStateBaseAddressModifyEnable());
|
||||||
EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress());
|
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) {
|
HWTEST_F(CommandListCreateTests, givenCommandListWithCopyOnlyWhenCreatedThenStateBaseAddressCmdIsNotProgrammedAndHeapIsNotAllocated) {
|
||||||
|
|
|
@ -115,7 +115,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandListTests, whenCommandListIsCreatedThenPCAnd
|
||||||
EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress());
|
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) {
|
HWTEST2_F(CommandListTests, whenCommandListIsCreatedAndProgramExtendedPipeControlPriorToNonPipelinedStateCommandIsEnabledThenPCAndStateBaseAddressCmdsAreAddedAndCorrectlyProgrammed, IsAtLeastXeHpCore) {
|
||||||
|
@ -203,7 +203,7 @@ HWTEST2_F(CommandListTests, whenCommandListIsCreatedAndProgramExtendedPipeContro
|
||||||
EXPECT_EQ(ssh->getHeapGpuBase(), cmdSba->getSurfaceStateBaseAddress());
|
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<DeviceFixture>;
|
using CommandListTestsReserveSize = Test<DeviceFixture>;
|
||||||
|
|
|
@ -139,7 +139,7 @@ HWTEST2_F(CommandQueueProgramSBATest, whenProgrammingStateBaseAddressWithStatele
|
||||||
auto pSbaCmd = static_cast<STATE_BASE_ADDRESS *>(*itor);
|
auto pSbaCmd = static_cast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
uint32_t statelessMocsIndex = pSbaCmd->getStatelessDataPortAccessMemoryObjectControlState();
|
uint32_t statelessMocsIndex = pSbaCmd->getStatelessDataPortAccessMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getNEODevice()->getGmmHelper();
|
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);
|
EXPECT_EQ(statelessMocsIndex, expectedMocs);
|
||||||
|
|
||||||
commandQueue->destroy();
|
commandQueue->destroy();
|
||||||
|
|
|
@ -304,7 +304,7 @@ HWTEST2_P(L0DebuggerParameterizedTests, givenDebuggerWhenAppendingKernelToComman
|
||||||
|
|
||||||
auto debugSurfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ssh->getCpuBase());
|
auto debugSurfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(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();
|
const auto actualMocs = debugSurfaceState->getMemoryObjectControlState();
|
||||||
|
|
||||||
EXPECT_EQ(actualMocs, mocsNoCache);
|
EXPECT_EQ(actualMocs, mocsNoCache);
|
||||||
|
@ -1001,7 +1001,7 @@ HWTEST2_F(L0DebuggerGlobalStatelessTest,
|
||||||
ASSERT_NE(debugSurface, nullptr);
|
ASSERT_NE(debugSurface, nullptr);
|
||||||
ASSERT_EQ(debugSurface->getGpuAddress(), debugSurfaceState->getSurfaceBaseAddress());
|
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();
|
const auto actualMocs = debugSurfaceState->getMemoryObjectControlState();
|
||||||
|
|
||||||
EXPECT_EQ(actualMocs, mocsNoCache);
|
EXPECT_EQ(actualMocs, mocsNoCache);
|
||||||
|
|
|
@ -681,7 +681,7 @@ HWTEST2_F(ModuleUncachedBufferTest,
|
||||||
EXPECT_EQ(devicePtr, reinterpret_cast<void *>(surfaceStateAddress->getSurfaceBaseAddress()));
|
EXPECT_EQ(devicePtr, reinterpret_cast<void *>(surfaceStateAddress->getSurfaceBaseAddress()));
|
||||||
|
|
||||||
auto gmmHelper = device->getNEODevice()->getGmmHelper();
|
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());
|
EXPECT_EQ(expectedMocs, surfaceStateAddress->getMemoryObjectControlState());
|
||||||
|
|
||||||
|
|
|
@ -898,9 +898,9 @@ uint32_t Buffer::getMocsValue(bool disableL3Cache, bool isReadOnlyArgument, uint
|
||||||
|
|
||||||
auto gmmHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getGmmHelper();
|
auto gmmHelper = executionEnvironment->rootDeviceEnvironments[rootDeviceIndex]->getGmmHelper();
|
||||||
if (!disableL3Cache && !isMemObjUncacheableForSurfaceState() && (alignedMemObj || readOnlyMemObj || !isMemObjZeroCopy())) {
|
if (!disableL3Cache && !isMemObjUncacheableForSurfaceState() && (alignedMemObj || readOnlyMemObj || !isMemObjZeroCopy())) {
|
||||||
return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
return gmmHelper->getL3EnabledMOCS();
|
||||||
} else {
|
} else {
|
||||||
return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
return gmmHelper->getUncachedMOCS();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2019-2024 Intel Corporation
|
* Copyright (C) 2019-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* 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 bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr);
|
||||||
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
||||||
|
|
||||||
auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS();
|
||||||
|
|
||||||
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
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 bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheableInSurfaceState, 0, n * sizeof(float), nullptr, nullptr);
|
||||||
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
||||||
|
|
||||||
auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS();
|
||||||
|
|
||||||
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
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 bufferUncacheable2 = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr);
|
||||||
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
auto pBufferUncacheable2 = clUniquePtr(castToObject<Buffer>(bufferUncacheable2));
|
||||||
|
|
||||||
auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS();
|
||||||
|
|
||||||
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
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 bufferUncacheable = clCreateBufferWithPropertiesINTEL(context, propertiesUncacheable, 0, n * sizeof(float), nullptr, nullptr);
|
||||||
auto pBufferUncacheable = clUniquePtr(castToObject<Buffer>(bufferUncacheable));
|
auto pBufferUncacheable = clUniquePtr(castToObject<Buffer>(bufferUncacheable));
|
||||||
|
|
||||||
auto mocsCacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto mocsCacheable = pClDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto mocsUncacheable = pClDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
auto mocsUncacheable = pClDevice->getGmmHelper()->getUncachedMOCS();
|
||||||
|
|
||||||
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
retVal = clSetKernelArg(pMultiDeviceKernel, 0, sizeof(cl_mem), &bufferCacheable1);
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||||
|
|
|
@ -206,7 +206,7 @@ HWCMDTEST_P(IGFX_XE_HP_CORE, AuxBuiltInTests, givenXeHpCoreCommandsAndAuxTransla
|
||||||
{
|
{
|
||||||
// read args
|
// read args
|
||||||
auto argNum = 0;
|
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 sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap();
|
||||||
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
||||||
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
||||||
|
@ -221,7 +221,7 @@ HWCMDTEST_P(IGFX_XE_HP_CORE, AuxBuiltInTests, givenXeHpCoreCommandsAndAuxTransla
|
||||||
{
|
{
|
||||||
// write args
|
// write args
|
||||||
auto argNum = 1;
|
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 sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap();
|
||||||
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
||||||
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
||||||
|
@ -700,7 +700,7 @@ HWCMDTEST_P(IGFX_GEN12LP_CORE, AuxBuiltInTests, givenAuxTranslationKernelWhenSet
|
||||||
{
|
{
|
||||||
// read args
|
// read args
|
||||||
auto argNum = 0;
|
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 sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap();
|
||||||
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
||||||
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
||||||
|
@ -715,7 +715,7 @@ HWCMDTEST_P(IGFX_GEN12LP_CORE, AuxBuiltInTests, givenAuxTranslationKernelWhenSet
|
||||||
{
|
{
|
||||||
// write args
|
// write args
|
||||||
auto argNum = 1;
|
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 sshBase = mockAuxBuiltInOp.convertToAuxKernel[0]->getSurfaceStateHeap();
|
||||||
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
auto sshOffset = mockAuxBuiltInOp.convertToAuxKernel[0]->getKernelInfo().getArgDescriptorAt(argNum).as<ArgDescPointer>().bindful;
|
||||||
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
auto surfaceState = reinterpret_cast<RENDER_SURFACE_STATE *>(ptrOffset(sshBase, sshOffset));
|
||||||
|
|
|
@ -130,7 +130,7 @@ HWTEST2_F(Dg2AndLaterDispatchWalkerBasicTest, givenTimestampPacketWhenDispatchin
|
||||||
|
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
|
|
||||||
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS();
|
||||||
|
|
||||||
auto walker = genCmdCast<DefaultWalkerType *>(*hwParser.itorWalker);
|
auto walker = genCmdCast<DefaultWalkerType *>(*hwParser.itorWalker);
|
||||||
EXPECT_EQ(POSTSYNC_DATA::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation());
|
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());
|
EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end());
|
||||||
|
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS();
|
||||||
|
|
||||||
WalkerVariant walkerVariant = NEO::UnitTestHelper<FamilyType>::getWalkerVariant(*hwParser.itorWalker);
|
WalkerVariant walkerVariant = NEO::UnitTestHelper<FamilyType>::getWalkerVariant(*hwParser.itorWalker);
|
||||||
|
|
||||||
|
|
|
@ -484,7 +484,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterDispatchWalkerBasicTest, givenTimestamp
|
||||||
EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end());
|
EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end());
|
||||||
|
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS();
|
||||||
|
|
||||||
auto walker = genCmdCast<DefaultWalkerType *>(*hwParser.itorWalker);
|
auto walker = genCmdCast<DefaultWalkerType *>(*hwParser.itorWalker);
|
||||||
EXPECT_EQ(PostSyncType::OPERATION::OPERATION_WRITE_TIMESTAMP, walker->getPostSync().getOperation());
|
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());
|
EXPECT_NE(hwParser.itorWalker, hwParser.cmdList.end());
|
||||||
|
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) : gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, device->getRootDeviceEnvironment()) ? gmmHelper->getUncachedMOCS() : gmmHelper->getL3EnabledMOCS();
|
||||||
|
|
||||||
WalkerVariant walkerVariant = NEO::UnitTestHelper<FamilyType>::getWalkerVariant(*hwParser.itorWalker);
|
WalkerVariant walkerVariant = NEO::UnitTestHelper<FamilyType>::getWalkerVariant(*hwParser.itorWalker);
|
||||||
std::visit([expectedMocs](auto &&walker) {
|
std::visit([expectedMocs](auto &&walker) {
|
||||||
|
|
|
@ -336,8 +336,8 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenAlignedPointerAndAlignedSizeWhenReadBuf
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
auto gmmHelper = pDevice->getGmmHelper();
|
||||||
auto mocsIndexL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
auto mocsIndexL3on = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
auto mocsIndexL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
auto mocsIndexL1on = gmmHelper->getL1EnabledMOCS() >> 1;
|
||||||
|
|
||||||
EXPECT_TRUE(mocsIndexL3on == csr.latestSentStatelessMocsConfig || mocsIndexL1on == csr.latestSentStatelessMocsConfig);
|
EXPECT_TRUE(mocsIndexL3on == csr.latestSentStatelessMocsConfig || mocsIndexL1on == csr.latestSentStatelessMocsConfig);
|
||||||
}
|
}
|
||||||
|
@ -364,9 +364,9 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenNotAlignedPointerAndAlignedSizeWhenRead
|
||||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||||
|
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
auto gmmHelper = pDevice->getGmmHelper();
|
||||||
auto mocsIndexL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
auto mocsIndexL3off = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
auto mocsIndexL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
auto mocsIndexL3on = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
auto mocsIndexL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
auto mocsIndexL1on = gmmHelper->getL1EnabledMOCS() >> 1;
|
||||||
|
|
||||||
EXPECT_EQ(mocsIndexL3off, csr.latestSentStatelessMocsConfig);
|
EXPECT_EQ(mocsIndexL3off, csr.latestSentStatelessMocsConfig);
|
||||||
|
|
||||||
|
@ -410,7 +410,7 @@ HWTEST_F(EnqueueReadBufferTypeTest, givenNotAlignedPointerAndSizeWhenBlockedRead
|
||||||
EXPECT_EQ(CL_SUCCESS, retVal);
|
EXPECT_EQ(CL_SUCCESS, retVal);
|
||||||
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
auto &csr = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
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);
|
EXPECT_EQ(mocsIndexL3off, csr.latestSentStatelessMocsConfig);
|
||||||
clReleaseEvent(userEvent);
|
clReleaseEvent(userEvent);
|
||||||
|
|
|
@ -566,7 +566,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandStreamReceiverFlushTaskTests, WhenFlushing
|
||||||
typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
|
typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
auto gmmHelper = pDevice->getGmmHelper();
|
||||||
auto stateHeapMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER);
|
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<FamilyType>();
|
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||||
flushTask(commandStreamReceiver);
|
flushTask(commandStreamReceiver);
|
||||||
|
|
||||||
|
|
|
@ -464,7 +464,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandStreamReceiverFlushTaskXeHPAndLaterTests, Wh
|
||||||
typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
|
typedef typename FamilyType::STATE_BASE_ADDRESS STATE_BASE_ADDRESS;
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
auto gmmHelper = pDevice->getGmmHelper();
|
||||||
auto stateHeapMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER);
|
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<FamilyType>();
|
auto &commandStreamReceiver = pDevice->getUltCommandStreamReceiver<FamilyType>();
|
||||||
|
|
||||||
if (commandStreamReceiver.heaplessStateInitialized) {
|
if (commandStreamReceiver.heaplessStateInitialized) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2024 Intel Corporation
|
* Copyright (C) 2020-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -45,7 +45,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferNotReadonlyWhenProgrammingSurfaceStat
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyWhenProgrammingSurfaceStateTh
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, true, context->getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -80,7 +80,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenConstantSurfaceWhenProgrammingSurfaceStateT
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context->getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -100,7 +100,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenL1ForceEnabledWhenProgrammingSurfaceStateTh
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyAndL1ForceEnabledWhenProgramm
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -140,7 +140,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyL1ForceDisabledWhenProgrammin
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, true, device->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2019-2024 Intel Corporation
|
* Copyright (C) 2019-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -307,8 +307,8 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, whenRequestingMocsThenProperMocsIndicesA
|
||||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||||
auto gmmHelper = this->pDevice->getGmmHelper();
|
auto gmmHelper = this->pDevice->getGmmHelper();
|
||||||
|
|
||||||
const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
const auto mocsNoCache = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
|
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
||||||
|
@ -323,9 +323,9 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceEnabledWhenRequestingMocsThe
|
||||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||||
auto gmmHelper = this->pDevice->getGmmHelper();
|
auto gmmHelper = this->pDevice->getGmmHelper();
|
||||||
|
|
||||||
const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
const auto mocsNoCache = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
const auto mocsL1 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
const auto mocsL1 = gmmHelper->getL1EnabledMOCS() >> 1;
|
||||||
|
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
||||||
|
@ -340,8 +340,8 @@ GEN12LPTEST_F(GfxCoreHelperTestGen12Lp, givenL1ForceDisabledWhenRequestingMocsTh
|
||||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||||
auto gmmHelper = this->pDevice->getGmmHelper();
|
auto gmmHelper = this->pDevice->getGmmHelper();
|
||||||
|
|
||||||
const auto mocsNoCache = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
const auto mocsNoCache = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
const auto mocsL3 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
const auto mocsL3 = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
|
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, false));
|
||||||
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
EXPECT_EQ(mocsNoCache, gfxCoreHelper.getMocsIndex(*gmmHelper, false, true));
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2023 Intel Corporation
|
* Copyright (C) 2020-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -40,7 +40,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferNotReadonlyWhenProgrammingSurfaceStat
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false, 1u);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -57,7 +57,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyWhenProgrammingSurfaceStateTh
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, true, context->getDevice(0)->getDevice(), false, 1u);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenConstantSurfaceWhenProgrammingSurfaceStateT
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context->getDevice(0)->getDevice(), false, 1u);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -95,7 +95,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenL1ForceEnabledWhenProgrammingSurfaceStateTh
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, device->getDevice(), false, 1u);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -115,7 +115,7 @@ GEN12LPTEST_F(BufferTestsTgllp, givenBufferReadonlyL1ForceDisabledWhenProgrammin
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, true, device->getDevice(), false, 1u);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
|
|
@ -249,7 +249,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, whenFlushC
|
||||||
hwParserCsr.findHardwareCommands<FamilyType>();
|
hwParserCsr.findHardwareCommands<FamilyType>();
|
||||||
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
||||||
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(hwParserCsr.cmdStateBaseAddress);
|
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(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);
|
auto expectedMocsForHeap = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER);
|
||||||
|
|
||||||
EXPECT_EQ(expectedMocsForHeap, stateBaseAddress->getSurfaceStateMemoryObjectControlState());
|
EXPECT_EQ(expectedMocsForHeap, stateBaseAddress->getSurfaceStateMemoryObjectControlState());
|
||||||
|
@ -298,7 +298,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, givenL3ToL
|
||||||
hwParserCsr.findHardwareCommands<FamilyType>();
|
hwParserCsr.findHardwareCommands<FamilyType>();
|
||||||
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
||||||
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(hwParserCsr.cmdStateBaseAddress);
|
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(hwParserCsr.cmdStateBaseAddress);
|
||||||
auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto expectedMocs = pDevice->getGmmHelper()->getL1EnabledMOCS();
|
||||||
|
|
||||||
EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState());
|
EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState());
|
||||||
}
|
}
|
||||||
|
@ -317,7 +317,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHpCommandStreamReceiverFlushTaskTests, givenForce
|
||||||
hwParserCsr.findHardwareCommands<FamilyType>();
|
hwParserCsr.findHardwareCommands<FamilyType>();
|
||||||
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
ASSERT_NE(nullptr, hwParserCsr.cmdStateBaseAddress);
|
||||||
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(hwParserCsr.cmdStateBaseAddress);
|
auto stateBaseAddress = static_cast<STATE_BASE_ADDRESS *>(hwParserCsr.cmdStateBaseAddress);
|
||||||
auto expectedMocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = pDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
|
|
||||||
EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState());
|
EXPECT_EQ(expectedMocs, stateBaseAddress->getStatelessDataPortAccessMemoryObjectControlState());
|
||||||
}
|
}
|
||||||
|
|
|
@ -3887,7 +3887,7 @@ HWTEST2_F(KernelConstantSurfaceTest, givenKernelWithConstantSurfaceWhenKernelIsC
|
||||||
ptrOffset(kernel->getSurfaceStateHeap(),
|
ptrOffset(kernel->getSurfaceStateHeap(),
|
||||||
pKernelInfo->kernelDescriptor.payloadMappings.implicitArgs.globalConstantsSurfaceAddress.bindful));
|
pKernelInfo->kernelDescriptor.payloadMappings.implicitArgs.globalConstantsSurfaceAddress.bindful));
|
||||||
auto actualMocs = surfaceState->getMemoryObjectControlState();
|
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);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
|
|
||||||
#include "shared/source/device/device.h"
|
#include "shared/source/device/device.h"
|
||||||
#include "shared/source/direct_submission/direct_submission_controller.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/aligned_memory.h"
|
||||||
#include "shared/source/helpers/basic_math.h"
|
#include "shared/source/helpers/basic_math.h"
|
||||||
#include "shared/source/helpers/gfx_core_helper.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/libult/signal_utils.h"
|
||||||
#include "shared/test/common/mocks/mock_compiler_product_helper.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_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/mocks/mock_release_helper.h"
|
||||||
#include "shared/test/common/os_interface/linux/device_command_stream_fixture.h"
|
#include "shared/test/common/os_interface/linux/device_command_stream_fixture.h"
|
||||||
#include "shared/test/common/test_macros/hw_test.h"
|
#include "shared/test/common/test_macros/hw_test.h"
|
||||||
|
@ -862,6 +864,7 @@ int main(int argc, char **argv) {
|
||||||
initializeTestedDevice();
|
initializeTestedDevice();
|
||||||
|
|
||||||
Os::dxcoreDllName = "";
|
Os::dxcoreDllName = "";
|
||||||
|
GmmHelper::createGmmContextWrapperFunc = GmmClientContext::create<MockGmmClientContext>;
|
||||||
|
|
||||||
int sigOut = setAlarm(enableAlarm);
|
int sigOut = setAlarm(enableAlarm);
|
||||||
if (sigOut != 0)
|
if (sigOut != 0)
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2018-2024 Intel Corporation
|
* Copyright (C) 2018-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -141,8 +141,8 @@ HWTEST_F(BufferSetArgTest, givenSetKernelArgOnReadOnlyBufferThatIsMisalingedWhen
|
||||||
auto surfaceState = reinterpret_cast<const RENDER_SURFACE_STATE *>(ptrOffset(pKernel->getSurfaceStateHeap(), pKernelInfo->argAsPtr(0).bindful));
|
auto surfaceState = reinterpret_cast<const RENDER_SURFACE_STATE *>(ptrOffset(pKernel->getSurfaceStateHeap(), pKernelInfo->argAsPtr(0).bindful));
|
||||||
auto mocs = surfaceState->getMemoryObjectControlState();
|
auto mocs = surfaceState->getMemoryObjectControlState();
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
auto gmmHelper = pDevice->getGmmHelper();
|
||||||
auto expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = gmmHelper->getL3EnabledMOCS();
|
||||||
auto expectedMocs2 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto expectedMocs2 = gmmHelper->getL1EnabledMOCS();
|
||||||
EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs);
|
EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1513,7 +1513,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, BufferSetSurfaceTests, givenBufferSetSurfaceThatM
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), mocs);
|
EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
}
|
}
|
||||||
|
@ -1532,7 +1532,7 @@ HWTEST_F(BufferSetSurfaceTests, givenDebugVariableToDisableCachingForStatefulBuf
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs);
|
EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
debugManager.flags.DisableCachingForStatefulBufferAccess.set(false);
|
debugManager.flags.DisableCachingForStatefulBufferAccess.set(false);
|
||||||
|
@ -1552,7 +1552,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemoryPtrIsUnalignedToC
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs);
|
EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
}
|
}
|
||||||
|
@ -1571,7 +1571,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemorySizeIsUnalignedTo
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED), mocs);
|
EXPECT_EQ(gmmHelper->getUncachedMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
}
|
}
|
||||||
|
@ -1590,7 +1590,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferSetSurfaceThatMemoryIsUnalignedToCach
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), mocs);
|
EXPECT_EQ(gmmHelper->getL3EnabledMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
}
|
}
|
||||||
|
@ -1750,7 +1750,7 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferWhenSetArgStatefulWithL3ChacheDisable
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
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(128u, surfaceState.getWidth());
|
||||||
EXPECT_EQ(4u, surfaceState.getHeight());
|
EXPECT_EQ(4u, surfaceState.getHeight());
|
||||||
}
|
}
|
||||||
|
@ -1778,8 +1778,8 @@ HWTEST_F(BufferSetSurfaceTests, givenBufferThatIsMisalignedButIsAReadOnlyArgumen
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
auto expectedMocs = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expectedMocs = gmmHelper->getL3EnabledMOCS();
|
||||||
auto expectedMocs2 = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto expectedMocs2 = gmmHelper->getL1EnabledMOCS();
|
||||||
EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs);
|
EXPECT_TRUE(expectedMocs == mocs || expectedMocs2 == mocs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1801,7 +1801,7 @@ HWTEST_F(BufferSetSurfaceTests, givenAlignedCacheableReadOnlyBufferThenChoseOclB
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
@ -1826,7 +1826,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, BufferSetSurfaceTests, givenAlignedCacheableNonRe
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
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);
|
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;
|
using BufferHwFromDeviceTests = BufferTests;
|
||||||
|
@ -2128,8 +2128,8 @@ HWTEST_P(BufferL3CacheTests, givenMisalignedAndAlignedBufferWhenClEnqueueWriteIm
|
||||||
ASSERT_NE(surfaceStateAddress, nullptr);
|
ASSERT_NE(surfaceStateAddress, nullptr);
|
||||||
auto surfaceState = *reinterpret_cast<RENDER_SURFACE_STATE *>(surfaceStateAddress);
|
auto surfaceState = *reinterpret_cast<RENDER_SURFACE_STATE *>(surfaceStateAddress);
|
||||||
|
|
||||||
auto expect = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
auto expect = ctx.getDevice(0)->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto expect2 = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto expect2 = ctx.getDevice(0)->getGmmHelper()->getL1EnabledMOCS();
|
||||||
|
|
||||||
EXPECT_NE(0u, surfaceState.getMemoryObjectControlState());
|
EXPECT_NE(0u, surfaceState.getMemoryObjectControlState());
|
||||||
EXPECT_TRUE(expect == surfaceState.getMemoryObjectControlState() || expect2 == 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);
|
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 expect = ctx.getDevice(0)->getGmmHelper()->getL3EnabledMOCS();
|
||||||
auto expect2 = ctx.getDevice(0)->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto expect2 = ctx.getDevice(0)->getGmmHelper()->getL1EnabledMOCS();
|
||||||
|
|
||||||
EXPECT_NE(0u, surfaceState->getMemoryObjectControlState());
|
EXPECT_NE(0u, surfaceState->getMemoryObjectControlState());
|
||||||
EXPECT_TRUE(expect == surfaceState->getMemoryObjectControlState() || expect2 == surfaceState->getMemoryObjectControlState());
|
EXPECT_TRUE(expect == surfaceState->getMemoryObjectControlState() || expect2 == surfaceState->getMemoryObjectControlState());
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -180,7 +180,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenDebugVariableForcingL
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenDebugVariableForcingL
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -226,7 +226,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenBufferWhenArgumentIsC
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, true, true, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
}
|
}
|
||||||
|
@ -246,7 +246,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenBufferSetSurfaceThatM
|
||||||
|
|
||||||
auto mocs = surfaceState.getMemoryObjectControlState();
|
auto mocs = surfaceState.getMemoryObjectControlState();
|
||||||
auto gmmHelper = device->getGmmHelper();
|
auto gmmHelper = device->getGmmHelper();
|
||||||
EXPECT_EQ(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST), mocs);
|
EXPECT_EQ(gmmHelper->getL1EnabledMOCS(), mocs);
|
||||||
|
|
||||||
alignedFree(ptr);
|
alignedFree(ptr);
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, XeHPAndLaterBufferTests, givenAlignedCacheableNonRe
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -1054,7 +1054,7 @@ XE2_HPG_CORETEST_F(Xe2BcsTests, givenOverriddenMocksValueWhenAppendBlitCommandsB
|
||||||
bltCmd->setDestinationX2CoordinateRight(1);
|
bltCmd->setDestinationX2CoordinateRight(1);
|
||||||
bltCmd->setDestinationY2CoordinateBottom(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;
|
uint32_t newValue = mockValue + 1;
|
||||||
debugManager.flags.OverrideBlitterMocs.set(newValue);
|
debugManager.flags.OverrideBlitterMocs.set(newValue);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2024 Intel Corporation
|
* Copyright (C) 2024-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -96,7 +96,7 @@ XE2_HPG_CORETEST_F(CmdsProgrammingTestsXe2HpgCore, givenAlignedCacheableReadOnly
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -733,7 +733,7 @@ XE3_CORETEST_F(Xe3BcsTests, givenOverriddenMocksValueWhenAppendBlitCommandsBlock
|
||||||
bltCmd->setDestinationX2CoordinateRight(1);
|
bltCmd->setDestinationX2CoordinateRight(1);
|
||||||
bltCmd->setDestinationY2CoordinateBottom(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;
|
uint32_t newValue = mockValue + 1;
|
||||||
debugManager.flags.OverrideBlitterMocs.set(newValue);
|
debugManager.flags.OverrideBlitterMocs.set(newValue);
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ XE3_CORETEST_F(CmdsProgrammingTestsXe3Core, givenAlignedCacheableReadOnlyBufferT
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ XE_HPC_CORETEST_F(BlitXeHpcCoreTests, givenTransferLargerThenHalfOfL3WhenItIsPro
|
||||||
ASSERT_NE(hwParser.cmdList.end(), itorBltCmd);
|
ASSERT_NE(hwParser.cmdList.end(), itorBltCmd);
|
||||||
MEM_COPY *bltCmd = (MEM_COPY *)*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->getDestinationMOCS());
|
||||||
EXPECT_EQ(mocsL3disabled, bltCmd->getSourceMOCS());
|
EXPECT_EQ(mocsL3disabled, bltCmd->getSourceMOCS());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -96,7 +96,7 @@ XE_HPC_CORETEST_F(CmdsProgrammingTestsXeHpcCore, givenAlignedCacheableReadOnlyBu
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -76,7 +76,7 @@ XE_HPG_CORETEST_F(BlitXeHpgCoreTests, givenBufferWhenProgrammingBltCommandThenSe
|
||||||
auto bltCmd = genCmdCast<XY_COPY_BLT *>(*(hwParser.cmdList.begin()));
|
auto bltCmd = genCmdCast<XY_COPY_BLT *>(*(hwParser.cmdList.begin()));
|
||||||
EXPECT_NE(nullptr, bltCmd);
|
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->getDestinationMOCS());
|
||||||
EXPECT_EQ(mocs, bltCmd->getSourceMOCS());
|
EXPECT_EQ(mocs, bltCmd->getSourceMOCS());
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -120,7 +120,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenAlignedCacheableReadOnlyBufferThenChoseO
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ DG2TEST_F(CmdsProgrammingTestsDg2, givenAlignedCacheableReadOnlyBufferAndDebugge
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, clDevice->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -99,7 +99,7 @@ XE_HPG_CORETEST_F(CmdsProgrammingTestsXeHpgCore, givenAlignedCacheableReadOnlyBu
|
||||||
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
typename FamilyType::RENDER_SURFACE_STATE surfaceState = {};
|
||||||
buffer->setArgStateful(&surfaceState, false, false, false, false, context.getDevice(0)->getDevice(), false);
|
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();
|
const auto actualMocs = surfaceState.getMemoryObjectControlState();
|
||||||
EXPECT_EQ(expectedMocs, actualMocs);
|
EXPECT_EQ(expectedMocs, actualMocs);
|
||||||
|
|
||||||
|
|
|
@ -478,7 +478,7 @@ void EncodeSurfaceState<Family>::encodeBuffer(EncodeSurfaceStateArgs &args) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (debugManager.flags.DisableCachingForStatefulBufferAccess.get()) {
|
if (debugManager.flags.DisableCachingForStatefulBufferAccess.get()) {
|
||||||
surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED));
|
surfaceState->setMemoryObjectControlState(args.gmmHelper->getUncachedMOCS());
|
||||||
}
|
}
|
||||||
|
|
||||||
EncodeSurfaceState<Family>::encodeExtraBufferParams(args);
|
EncodeSurfaceState<Family>::encodeExtraBufferParams(args);
|
||||||
|
|
|
@ -309,7 +309,7 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
||||||
STATE_BASE_ADDRESS sbaCmd;
|
STATE_BASE_ADDRESS sbaCmd;
|
||||||
auto gmmHelper = container.getDevice()->getGmmHelper();
|
auto gmmHelper = container.getDevice()->getGmmHelper();
|
||||||
uint32_t statelessMocsIndex =
|
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 l1CachePolicy = container.l1CachePolicyDataRef()->getL1CacheValue(false);
|
||||||
auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true);
|
auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true);
|
||||||
|
|
||||||
|
@ -526,9 +526,9 @@ inline uint32_t EncodePostSync<Family>::getPostSyncMocs(const RootDeviceEnvironm
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dcFlush) {
|
if (dcFlush) {
|
||||||
return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED);
|
return gmmHelper->getUncachedMOCS();
|
||||||
} else {
|
} else {
|
||||||
return gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
return gmmHelper->getL3EnabledMOCS();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -790,13 +790,13 @@ void EncodeSurfaceState<Family>::encodeExtraBufferParams(EncodeSurfaceStateArgs
|
||||||
setConstCachePolicy = true;
|
setConstCachePolicy = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (surfaceState->getMemoryObjectControlState() == args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) &&
|
if (surfaceState->getMemoryObjectControlState() == args.gmmHelper->getL3EnabledMOCS() &&
|
||||||
debugManager.flags.ForceL1Caching.get() != 0) {
|
debugManager.flags.ForceL1Caching.get() != 0) {
|
||||||
setConstCachePolicy = true;
|
setConstCachePolicy = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setConstCachePolicy == true) {
|
if (setConstCachePolicy == true) {
|
||||||
surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST));
|
surfaceState->setMemoryObjectControlState(args.gmmHelper->getL1EnabledMOCS());
|
||||||
}
|
}
|
||||||
|
|
||||||
encodeExtraCacheSettings(surfaceState, args);
|
encodeExtraCacheSettings(surfaceState, args);
|
||||||
|
|
|
@ -129,7 +129,7 @@ void DirectSubmissionHw<GfxFamily, Dispatcher>::dispatchStaticRelaxedOrderingSch
|
||||||
|
|
||||||
uint64_t loopSectionStartAddress = schedulerStartAddress + RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection<GfxFamily>::loopStartSectionStart;
|
uint64_t loopSectionStartAddress = schedulerStartAddress + RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection<GfxFamily>::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();
|
constexpr bool isBcs = Dispatcher::isCopy();
|
||||||
|
|
||||||
|
@ -850,7 +850,7 @@ void DirectSubmissionHw<GfxFamily, Dispatcher>::preinitializeRelaxedOrderingSect
|
||||||
LriHelper<GfxFamily>::program(&stream, RegisterOffsets::csGprR8, 8, true, isBcs);
|
LriHelper<GfxFamily>::program(&stream, RegisterOffsets::csGprR8, 8, true, isBcs);
|
||||||
LriHelper<GfxFamily>::program(&stream, RegisterOffsets::csGprR8 + 4, 0, true, isBcs);
|
LriHelper<GfxFamily>::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<GfxFamily, 9> aluHelper({{
|
EncodeAluHelper<GfxFamily, 9> aluHelper({{
|
||||||
{AluRegisters::opcodeLoad, AluRegisters::srca, AluRegisters::gpr1},
|
{AluRegisters::opcodeLoad, AluRegisters::srca, AluRegisters::gpr1},
|
||||||
|
|
|
@ -240,7 +240,7 @@ void EncodeDispatchKernel<Family>::encode(CommandContainer &container, EncodeDis
|
||||||
STATE_BASE_ADDRESS sba;
|
STATE_BASE_ADDRESS sba;
|
||||||
auto gmmHelper = container.getDevice()->getGmmHelper();
|
auto gmmHelper = container.getDevice()->getGmmHelper();
|
||||||
uint32_t statelessMocsIndex =
|
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 l1CachePolicy = container.l1CachePolicyDataRef()->getL1CacheValue(false);
|
||||||
auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true);
|
auto l1CachePolicyDebuggerActive = container.l1CachePolicyDataRef()->getL1CacheValue(true);
|
||||||
EncodeStateBaseAddressArgs<Family> encodeStateBaseAddressArgs = {
|
EncodeStateBaseAddressArgs<Family> encodeStateBaseAddressArgs = {
|
||||||
|
@ -755,7 +755,7 @@ void EncodeWA<Family>::encodeAdditionalPipelineSelect(LinearStream &stream, cons
|
||||||
template <>
|
template <>
|
||||||
void EncodeSurfaceState<Family>::encodeExtraBufferParams(EncodeSurfaceStateArgs &args) {
|
void EncodeSurfaceState<Family>::encodeExtraBufferParams(EncodeSurfaceStateArgs &args) {
|
||||||
auto surfaceState = reinterpret_cast<R_SURFACE_STATE *>(args.outMemory);
|
auto surfaceState = reinterpret_cast<R_SURFACE_STATE *>(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) {
|
if (isL3Allowed) {
|
||||||
const bool isConstantSurface = args.allocation && args.allocation->getAllocationType() == AllocationType::constantSurface;
|
const bool isConstantSurface = args.allocation && args.allocation->getAllocationType() == AllocationType::constantSurface;
|
||||||
bool useL1 = args.isReadOnly || isConstantSurface;
|
bool useL1 = args.isReadOnly || isConstantSurface;
|
||||||
|
@ -765,7 +765,7 @@ void EncodeSurfaceState<Family>::encodeExtraBufferParams(EncodeSurfaceStateArgs
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useL1) {
|
if (useL1) {
|
||||||
surfaceState->setMemoryObjectControlState(args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST));
|
surfaceState->setMemoryObjectControlState(args.gmmHelper->getL1EnabledMOCS());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -265,13 +265,13 @@ uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l1enabled) {
|
if (l1enabled) {
|
||||||
return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
return gmmHelper.getL1EnabledMOCS() >> 1;
|
||||||
} else {
|
} 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 <>
|
template <>
|
||||||
|
|
|
@ -33,6 +33,12 @@ const RootDeviceEnvironment &GmmHelper::getRootDeviceEnvironment() const {
|
||||||
return rootDeviceEnvironment;
|
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 {
|
uint32_t GmmHelper::getMOCS(uint32_t type) const {
|
||||||
if (allResourcesUncached || (debugManager.flags.ForceAllResourcesUncached.get() == true)) {
|
if (allResourcesUncached || (debugManager.flags.ForceAllResourcesUncached.get() == true)) {
|
||||||
type = GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED;
|
type = GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED;
|
||||||
|
@ -47,12 +53,29 @@ uint32_t GmmHelper::getMOCS(uint32_t type) const {
|
||||||
return static_cast<uint32_t>(mocs.DwordValue);
|
return static_cast<uint32_t>(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) {
|
void GmmHelper::applyMocsEncryptionBit(uint32_t &index) {
|
||||||
if (debugManager.flags.ForceStatelessMocsEncryptionBit.get() == 1) {
|
if (debugManager.flags.ForceStatelessMocsEncryptionBit.get() == 1) {
|
||||||
index |= 1;
|
index |= 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void GmmHelper::forceAllResourcesUncached() {
|
||||||
|
allResourcesUncached = true;
|
||||||
|
initMocsDefaults();
|
||||||
|
}
|
||||||
|
|
||||||
GmmHelper::GmmHelper(const RootDeviceEnvironment &rootDeviceEnvironmentArg) : rootDeviceEnvironment(rootDeviceEnvironmentArg) {
|
GmmHelper::GmmHelper(const RootDeviceEnvironment &rootDeviceEnvironmentArg) : rootDeviceEnvironment(rootDeviceEnvironmentArg) {
|
||||||
auto hwInfo = getHardwareInfo();
|
auto hwInfo = getHardwareInfo();
|
||||||
auto hwInfoAddressWidth = Math::log2(hwInfo->capabilityTable.gpuAddressSpace + 1);
|
auto hwInfoAddressWidth = Math::log2(hwInfo->capabilityTable.gpuAddressSpace + 1);
|
||||||
|
@ -60,6 +83,8 @@ GmmHelper::GmmHelper(const RootDeviceEnvironment &rootDeviceEnvironmentArg) : ro
|
||||||
|
|
||||||
gmmClientContext = GmmHelper::createGmmContextWrapperFunc(rootDeviceEnvironment);
|
gmmClientContext = GmmHelper::createGmmContextWrapperFunc(rootDeviceEnvironment);
|
||||||
UNRECOVERABLE_IF(!gmmClientContext);
|
UNRECOVERABLE_IF(!gmmClientContext);
|
||||||
|
|
||||||
|
initMocsDefaults();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint64_t GmmHelper::canonize(uint64_t address) const {
|
uint64_t GmmHelper::canonize(uint64_t address) const {
|
||||||
|
|
|
@ -21,8 +21,13 @@ class GmmHelper {
|
||||||
|
|
||||||
const HardwareInfo *getHardwareInfo();
|
const HardwareInfo *getHardwareInfo();
|
||||||
uint32_t getMOCS(uint32_t type) const;
|
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);
|
static void applyMocsEncryptionBit(uint32_t &index);
|
||||||
void forceAllResourcesUncached() { allResourcesUncached = true; };
|
void forceAllResourcesUncached();
|
||||||
|
|
||||||
static constexpr uint64_t maxPossiblePitch = (1ull << 31);
|
static constexpr uint64_t maxPossiblePitch = (1ull << 31);
|
||||||
|
|
||||||
|
@ -40,9 +45,12 @@ class GmmHelper {
|
||||||
static std::unique_ptr<GmmClientContext> (*createGmmContextWrapperFunc)(const RootDeviceEnvironment &);
|
static std::unique_ptr<GmmClientContext> (*createGmmContextWrapperFunc)(const RootDeviceEnvironment &);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
uint32_t addressWidth;
|
|
||||||
const RootDeviceEnvironment &rootDeviceEnvironment;
|
const RootDeviceEnvironment &rootDeviceEnvironment;
|
||||||
std::unique_ptr<GmmClientContext> gmmClientContext;
|
std::unique_ptr<GmmClientContext> gmmClientContext;
|
||||||
|
uint32_t addressWidth = 0;
|
||||||
|
uint32_t mocsL1Enabled = 0;
|
||||||
|
uint32_t mocsL3Enabled = 0;
|
||||||
|
uint32_t mocsUncached = 0;
|
||||||
bool allResourcesUncached = false;
|
bool allResourcesUncached = false;
|
||||||
};
|
};
|
||||||
} // namespace NEO
|
} // namespace NEO
|
||||||
|
|
|
@ -16,7 +16,7 @@ void BlitCommandsHelper<GfxFamily>::dispatchBlitMemoryByteFill(const BlitPropert
|
||||||
using MEM_SET = typename Family::MEM_SET;
|
using MEM_SET = typename Family::MEM_SET;
|
||||||
auto blitCmd = Family::cmdInitMemSet;
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,7 +60,7 @@ void BlitCommandsHelper<GfxFamily>::appendBlitMemoryOptionsForFillBuffer(NEO::Gr
|
||||||
|
|
||||||
appendExtraMemoryProperties(blitCmd, rootDeviceEnvironment);
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -135,9 +135,9 @@ void GfxCoreHelperHw<Family>::setRenderSurfaceStateForScratchResource(const Root
|
||||||
state.setVerticalLineStrideOffset(0);
|
state.setVerticalLineStrideOffset(0);
|
||||||
if ((isAligned<MemoryConstants::cacheLineSize>(bufferStateAddress) && isAligned<MemoryConstants::cacheLineSize>(bufferStateSize)) ||
|
if ((isAligned<MemoryConstants::cacheLineSize>(bufferStateAddress) && isAligned<MemoryConstants::cacheLineSize>(bufferStateSize)) ||
|
||||||
isReadOnly) {
|
isReadOnly) {
|
||||||
state.setMemoryObjectControlState(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
state.setMemoryObjectControlState(gmmHelper->getL3EnabledMOCS());
|
||||||
} else {
|
} else {
|
||||||
state.setMemoryObjectControlState(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED));
|
state.setMemoryObjectControlState(gmmHelper->getUncachedMOCS());
|
||||||
}
|
}
|
||||||
if (debugManager.flags.OverrideMocsIndexForScratchSpace.get() != -1) {
|
if (debugManager.flags.OverrideMocsIndexForScratchSpace.get() != -1) {
|
||||||
auto mocsIndex = static_cast<uint32_t>(debugManager.flags.OverrideMocsIndexForScratchSpace.get()) << 1;
|
auto mocsIndex = static_cast<uint32_t>(debugManager.flags.OverrideMocsIndexForScratchSpace.get()) << 1;
|
||||||
|
|
|
@ -83,17 +83,16 @@ EngineGroupType GfxCoreHelperHw<GfxFamily>::getEngineGroupType(aub_stream::Engin
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
uint32_t GfxCoreHelperHw<GfxFamily>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
uint32_t GfxCoreHelperHw<GfxFamily>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
||||||
if (l3enabled) {
|
if (l3enabled) {
|
||||||
if (debugManager.flags.ForceL1Caching.get() == 0) {
|
if (debugManager.flags.ForceL1Caching.get() != 1) {
|
||||||
|
l1enabled = static_cast<bool>(debugManager.flags.ForceL1Caching.get());
|
||||||
|
}
|
||||||
if (l1enabled) {
|
if (l1enabled) {
|
||||||
return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
return gmmHelper.getL1EnabledMOCS() >> 1;
|
||||||
}
|
|
||||||
return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
|
||||||
} else {
|
|
||||||
return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
|
||||||
}
|
}
|
||||||
|
return gmmHelper.getL3EnabledMOCS() >> 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
return gmmHelper.getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
return gmmHelper.getUncachedMOCS() >> 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
template <typename GfxFamily>
|
template <typename GfxFamily>
|
||||||
|
|
|
@ -87,11 +87,11 @@ void StateBaseAddressHelper<GfxFamily>::appendStateBaseAddressParameters(
|
||||||
setSbaStatelessCompressionParams<GfxFamily>(args.stateBaseAddressCmd, args.memoryCompressionState);
|
setSbaStatelessCompressionParams<GfxFamily>(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));
|
bool constMocsAllowed = (l3MocsEnabled && (debugManager.flags.ForceL1Caching.get() != 0));
|
||||||
|
|
||||||
if (constMocsAllowed) {
|
if (constMocsAllowed) {
|
||||||
auto constMocsIndex = args.gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST);
|
auto constMocsIndex = args.gmmHelper->getL1EnabledMOCS();
|
||||||
GmmHelper::applyMocsEncryptionBit(constMocsIndex);
|
GmmHelper::applyMocsEncryptionBit(constMocsIndex);
|
||||||
|
|
||||||
args.stateBaseAddressCmd->setStatelessDataPortAccessMemoryObjectControlState(constMocsIndex);
|
args.stateBaseAddressCmd->setStatelessDataPortAccessMemoryObjectControlState(constMocsIndex);
|
||||||
|
|
|
@ -125,7 +125,7 @@ void BlitCommandsHelper<Family>::appendBlitCommandsBlockCopy(const BlitPropertie
|
||||||
blitCmd.setSourceSurfaceType(XY_BLOCK_COPY_BLT::SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_1D);
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
@ -204,7 +204,7 @@ void BlitCommandsHelper<Family>::appendBlitCommandsMemCopy(const BlitProperties
|
||||||
blitCmd.setCopyType(MEM_COPY::COPY_TYPE::COPY_TYPE_LINEAR_COPY);
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,9 +79,9 @@ uint32_t GfxCoreHelperHw<Family>::getMinimalSIMDSize() const {
|
||||||
template <>
|
template <>
|
||||||
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
||||||
if (l3enabled) {
|
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 <>
|
template <>
|
||||||
|
|
|
@ -124,7 +124,7 @@ void BlitCommandsHelper<Family>::appendBlitCommandsBlockCopy(const BlitPropertie
|
||||||
blitCmd.setSourceSurfaceType(XY_BLOCK_COPY_BLT::SURFACE_TYPE::SURFACE_TYPE_SURFTYPE_1D);
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
@ -158,7 +158,7 @@ void BlitCommandsHelper<Family>::appendBlitCommandsMemCopy(const BlitProperties
|
||||||
blitCmd.setCopyType(MEM_COPY::COPY_TYPE::COPY_TYPE_LINEAR_COPY);
|
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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
}
|
}
|
||||||
|
|
|
@ -84,9 +84,9 @@ uint32_t GfxCoreHelperHw<Family>::getMinimalSIMDSize() const {
|
||||||
template <>
|
template <>
|
||||||
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
||||||
if (l3enabled) {
|
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 <>
|
template <>
|
||||||
|
|
|
@ -127,9 +127,9 @@ uint32_t GfxCoreHelperHw<Family>::getMinimalSIMDSize() const {
|
||||||
template <>
|
template <>
|
||||||
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
uint32_t GfxCoreHelperHw<Family>::getMocsIndex(const GmmHelper &gmmHelper, bool l3enabled, bool l1enabled) const {
|
||||||
if (l3enabled) {
|
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 <>
|
template <>
|
||||||
|
|
|
@ -129,7 +129,7 @@ void BlitCommandsHelper<Family>::appendBlitCommandsBlockCopy(const BlitPropertie
|
||||||
DEBUG_BREAK_IF((AuxTranslationDirection::none != blitProperties.auxTranslationDirection) &&
|
DEBUG_BREAK_IF((AuxTranslationDirection::none != blitProperties.auxTranslationDirection) &&
|
||||||
(blitProperties.dstAllocation != blitProperties.srcAllocation || !blitProperties.dstAllocation->isCompressionEnabled()));
|
(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) {
|
if (debugManager.flags.OverrideBlitterMocs.get() != -1) {
|
||||||
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
mocs = static_cast<uint32_t>(debugManager.flags.OverrideBlitterMocs.get());
|
||||||
|
|
|
@ -719,7 +719,7 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncoderTests, givenAtLeastXeHpPlatformWhenSe
|
||||||
EXPECT_NO_THROW(walkerCmd.getPostSync().setMocs(mocs));
|
EXPECT_NO_THROW(walkerCmd.getPostSync().setMocs(mocs));
|
||||||
|
|
||||||
auto gmmHelper = rootDeviceEnvironment.getGmmHelper();
|
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());
|
EXPECT_EQ(expectedMocs, walkerCmd.getPostSync().getMocs());
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -35,7 +35,7 @@ HWTEST2_F(CommandEncoderXeHpgCorePlusTests, givenSpecifiedL1CacheControlWhenAppe
|
||||||
args.outMemory = &rssCmd;
|
args.outMemory = &rssCmd;
|
||||||
args.graphicsAddress = allocation->getGpuAddress();
|
args.graphicsAddress = allocation->getGpuAddress();
|
||||||
args.size = allocation->getUnderlyingBufferSize();
|
args.size = allocation->getUnderlyingBufferSize();
|
||||||
args.mocs = pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER);
|
args.mocs = pDevice->getGmmHelper()->getL3EnabledMOCS();
|
||||||
args.numAvailableDevices = pDevice->getNumGenericSubDevices();
|
args.numAvailableDevices = pDevice->getNumGenericSubDevices();
|
||||||
args.allocation = allocation;
|
args.allocation = allocation;
|
||||||
args.gmmHelper = pDevice->getGmmHelper();
|
args.gmmHelper = pDevice->getGmmHelper();
|
||||||
|
|
|
@ -1614,7 +1614,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenDebugFlagSetWhenDispatching
|
||||||
EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled);
|
EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled);
|
||||||
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
||||||
directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, 123,
|
directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, 123,
|
||||||
pDevice->getRootDeviceEnvironment().getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)));
|
pDevice->getRootDeviceEnvironment().getGmmHelper()->getL3EnabledMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenNewNumberOfClientsWhenDispatchingWorkThenIncraseQueueSize, IsAtLeastXeHpcCore) {
|
HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenNewNumberOfClientsWhenDispatchingWorkThenIncraseQueueSize, IsAtLeastXeHpcCore) {
|
||||||
|
@ -1628,7 +1628,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, givenNewNumberOfClientsWhenDispa
|
||||||
EXPECT_EQ(RelaxedOrderingHelper::queueSizeMultiplier, directSubmission.currentRelaxedOrderingQueueSize);
|
EXPECT_EQ(RelaxedOrderingHelper::queueSizeMultiplier, directSubmission.currentRelaxedOrderingQueueSize);
|
||||||
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
||||||
directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, RelaxedOrderingHelper::queueSizeMultiplier,
|
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() +
|
const uint64_t expectedQueueSizeValueVa = directSubmission.relaxedOrderingSchedulerAllocation->getGpuAddress() +
|
||||||
RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection<FamilyType>::drainRequestSectionStart +
|
RelaxedOrderingHelper::StaticSchedulerSizeAndOffsetSection<FamilyType>::drainRequestSectionStart +
|
||||||
|
@ -1708,7 +1708,7 @@ HWTEST2_F(DirectSubmissionRelaxedOrderingTests, whenInitializingThenDispatchStat
|
||||||
EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled);
|
EXPECT_EQ(1u, directSubmission.dispatchStaticRelaxedOrderingSchedulerCalled);
|
||||||
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
EXPECT_TRUE(verifyStaticSchedulerProgramming<FamilyType>(*directSubmission.relaxedOrderingSchedulerAllocation,
|
||||||
directSubmission.deferredTasksListAllocation->getGpuAddress(), directSubmission.semaphoreGpuVa, RelaxedOrderingHelper::queueSizeMultiplier,
|
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);
|
EXPECT_EQ(8u, miMathCmd->DW0.BitField.DwordLength);
|
||||||
|
|
||||||
if constexpr (FamilyType::isUsingMiMathMocs) {
|
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<MI_MATH_ALU_INST_INLINE *>(++miMathCmd);
|
auto miAluCmd = reinterpret_cast<MI_MATH_ALU_INST_INLINE *>(++miMathCmd);
|
||||||
|
|
|
@ -116,7 +116,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getUncachedMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUncachedMocsAndNonDirtyHeapsThenCorrectMocsIsSet) {
|
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUncachedMocsAndNonDirtyHeapsThenCorrectMocsIsSet) {
|
||||||
|
@ -144,7 +144,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithUnc
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getUncachedMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndDirtyHeapsThenSbaIsNotProgrammed) {
|
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndDirtyHeapsThenSbaIsNotProgrammed) {
|
||||||
|
@ -173,7 +173,7 @@ HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNon
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER)));
|
(gmmHelper->getL3EnabledMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndNonDirtyHeapsThenSbaIsNotProgrammed) {
|
HWTEST_F(CommandEncodeStatesUncachedMocsTests, whenEncodingDispatchKernelWithNonUncachedMocsAndNonDirtyHeapsThenSbaIsNotProgrammed) {
|
||||||
|
@ -673,7 +673,7 @@ HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandEncodeStatesTest, givenCleanHeapsAndSlmNot
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getUncachedMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandEncodeStatesTest, givenDirtyHeapsAndSlmNotChangedWhenDispatchKernelThenHeapsAreCleanAndFlushAdded) {
|
HWCMDTEST_F(IGFX_GEN12LP_CORE, CommandEncodeStatesTest, givenDirtyHeapsAndSlmNotChangedWhenDispatchKernelThenHeapsAreCleanAndFlushAdded) {
|
||||||
|
|
|
@ -98,7 +98,7 @@ HWTEST2_F(CommandEncodeStatesTestDg2AndLater, givenEventAddressWhenEncodeThenMoc
|
||||||
|
|
||||||
auto gmmHelper = pDevice->getGmmHelper();
|
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) {
|
HWTEST2_F(CommandEncodeStatesTestDg2AndLater, GivenVariousSlmTotalSizesWhenSetPreferredSlmIsCalledThenCorrectValuesAreSet, IsXeHpgCore) {
|
||||||
|
|
|
@ -432,9 +432,9 @@ HWCMDTEST_F(IGFX_XE_HP_CORE, CommandEncodeStatesTest, givenEventAddressWhenEncod
|
||||||
ASSERT_NE(itor, commands.end());
|
ASSERT_NE(itor, commands.end());
|
||||||
auto cmd = genCmdCast<DefaultWalkerType *>(*itor);
|
auto cmd = genCmdCast<DefaultWalkerType *>(*itor);
|
||||||
if (MemorySynchronizationCommands<FamilyType>::getDcFlushEnable(true, pDevice->getRootDeviceEnvironment())) {
|
if (MemorySynchronizationCommands<FamilyType>::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 {
|
} else {
|
||||||
EXPECT_EQ(pDevice->getGmmHelper()->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER), cmd->getPostSync().getMocs());
|
EXPECT_EQ(pDevice->getGmmHelper()->getL3EnabledMOCS(), cmd->getPostSync().getMocs());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -374,7 +374,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenCommandContainerWithDirtyHeapsWhenSetSta
|
||||||
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
||||||
|
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
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;
|
STATE_BASE_ADDRESS sba;
|
||||||
|
|
||||||
|
@ -415,7 +415,7 @@ HWTEST_F(CommandEncodeStatesTest, givenCommandContainerWhenSetStateBaseAddressCa
|
||||||
|
|
||||||
STATE_BASE_ADDRESS sba;
|
STATE_BASE_ADDRESS sba;
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
||||||
uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1);
|
uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1);
|
||||||
|
|
||||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
||||||
|
|
||||||
|
@ -470,7 +470,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenHeapSharingEnabledWhenRetrievingNotIniti
|
||||||
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
||||||
|
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
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;
|
STATE_BASE_ADDRESS sba;
|
||||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
||||||
|
@ -503,7 +503,7 @@ HWTEST2_F(CommandEncodeStatesTest, givenSbaPropertiesWhenBindingBaseAddressSetTh
|
||||||
|
|
||||||
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
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;
|
StateBaseAddressProperties sbaProperties;
|
||||||
sbaProperties.initSupport(pDevice->getRootDeviceEnvironment());
|
sbaProperties.initSupport(pDevice->getRootDeviceEnvironment());
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2022-2024 Intel Corporation
|
* Copyright (C) 2022-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -26,7 +26,7 @@ HWTEST2_F(CommandEncodeStatesDG2Test, givenCommandContainerWhenSetStateBaseAddre
|
||||||
|
|
||||||
STATE_BASE_ADDRESS sba;
|
STATE_BASE_ADDRESS sba;
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
||||||
uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1);
|
uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1);
|
||||||
|
|
||||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ HWTEST2_F(CommandEncodeStatesDG2Test, givenCommandContainerAndDebuggerWhenSetSta
|
||||||
cmdContainer->getDevice()->getExecutionEnvironment()->rootDeviceEnvironments[0]->debugger.reset(debugger);
|
cmdContainer->getDevice()->getExecutionEnvironment()->rootDeviceEnvironments[0]->debugger.reset(debugger);
|
||||||
STATE_BASE_ADDRESS sba;
|
STATE_BASE_ADDRESS sba;
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
||||||
uint32_t statelessMocsIndex = (gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1);
|
uint32_t statelessMocsIndex = (gmmHelper->getL3EnabledMOCS() >> 1);
|
||||||
|
|
||||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
||||||
EncodeStateBaseAddress<FamilyType>::encode(args);
|
EncodeStateBaseAddress<FamilyType>::encode(args);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2020-2024 Intel Corporation
|
* Copyright (C) 2020-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -88,7 +88,7 @@ GEN12LPTEST_F(CommandEncodeStatesTest, givenVariousEngineTypesWhenEncodeSbaThenA
|
||||||
ASSERT_EQ(CommandContainer::ErrorCode::success, ret);
|
ASSERT_EQ(CommandContainer::ErrorCode::success, ret);
|
||||||
|
|
||||||
auto gmmHelper = cmdContainer.getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
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;
|
STATE_BASE_ADDRESS sba;
|
||||||
|
|
|
@ -1228,12 +1228,12 @@ TEST(GmmHelperTest, givenNewCoherencyModelWhenGetMocsThenDeferToPat) {
|
||||||
GTEST_SKIP();
|
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_STATE_HEAP_BUFFER));
|
||||||
EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE));
|
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_IMAGE_FROM_BUFFER));
|
||||||
EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST));
|
EXPECT_EQ(0u, gmmHelper->getL1EnabledMOCS());
|
||||||
EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
EXPECT_EQ(0u, gmmHelper->getL3EnabledMOCS());
|
||||||
EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
EXPECT_EQ(0u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
||||||
|
|
||||||
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
||||||
|
@ -1249,24 +1249,24 @@ TEST(GmmHelperTest, givenGmmHelperAndL3CacheDisabledForDebugThenCorrectMOCSIsRet
|
||||||
}
|
}
|
||||||
auto gmmHelper = executionEnvironment.rootDeviceEnvironments[0]->getGmmHelper();
|
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(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));
|
||||||
EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER));
|
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(8u, gmmHelper->getL1EnabledMOCS());
|
||||||
EXPECT_EQ(16u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
EXPECT_EQ(16u, gmmHelper->getL3EnabledMOCS());
|
||||||
EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
||||||
|
|
||||||
gmmHelper->forceAllResourcesUncached();
|
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_STATE_HEAP_BUFFER));
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE));
|
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_IMAGE_FROM_BUFFER));
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getL1EnabledMOCS());
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getL3EnabledMOCS());
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
||||||
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
||||||
}
|
}
|
||||||
|
@ -1281,25 +1281,26 @@ TEST(GmmHelperTest, givenGmmHelperAndForceAllResourcesUncachedDebugVariableSetTh
|
||||||
}
|
}
|
||||||
auto gmmHelper = executionEnvironment.rootDeviceEnvironments[0]->getGmmHelper();
|
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(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));
|
||||||
EXPECT_EQ(4u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE_FROM_BUFFER));
|
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(8u, gmmHelper->getL1EnabledMOCS());
|
||||||
EXPECT_EQ(16u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
EXPECT_EQ(16u, gmmHelper->getL3EnabledMOCS());
|
||||||
EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
EXPECT_EQ(32u, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
||||||
|
|
||||||
DebugManagerStateRestore restore;
|
DebugManagerStateRestore restore;
|
||||||
debugManager.flags.ForceAllResourcesUncached.set(true);
|
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_STATE_HEAP_BUFFER));
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_IMAGE));
|
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_IMAGE_FROM_BUFFER));
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getL1EnabledMOCS());
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getL3EnabledMOCS());
|
||||||
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
EXPECT_EQ(uncachedMocs, gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_INLINE_CONST_HDC));
|
||||||
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
GmmHelper::createGmmContextWrapperFunc = createGmmContextSave;
|
||||||
}
|
}
|
||||||
|
|
|
@ -539,14 +539,14 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid
|
||||||
addr += offset;
|
addr += offset;
|
||||||
EXPECT_EQ(addr, state->getSurfaceBaseAddress());
|
EXPECT_EQ(addr, state->getSurfaceBaseAddress());
|
||||||
EXPECT_EQ(type, state->getSurfaceType());
|
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));
|
memset(stateBuffer, 0, sizeof(RENDER_SURFACE_STATE));
|
||||||
size = 0x1003;
|
size = 0x1003;
|
||||||
length.length = static_cast<uint32_t>(alignUp(size, 4) - 1);
|
length.length = static_cast<uint32_t>(alignUp(size, 4) - 1);
|
||||||
bool isReadOnly = false;
|
bool isReadOnly = false;
|
||||||
gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, 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.depth + 1u, state->getDepth());
|
||||||
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
||||||
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
||||||
|
@ -556,7 +556,7 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid
|
||||||
addr = 0x2001;
|
addr = 0x2001;
|
||||||
length.length = static_cast<uint32_t>(size - 1);
|
length.length = static_cast<uint32_t>(size - 1);
|
||||||
gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, 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.depth + 1u, state->getDepth());
|
||||||
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
||||||
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
||||||
|
@ -567,7 +567,7 @@ HWTEST_F(GfxCoreHelperTest, givenCreatedSurfaceStateBufferWhenNoAllocationProvid
|
||||||
length.length = static_cast<uint32_t>(alignUp(size, 4) - 1);
|
length.length = static_cast<uint32_t>(alignUp(size, 4) - 1);
|
||||||
isReadOnly = true;
|
isReadOnly = true;
|
||||||
gfxCoreHelper.setRenderSurfaceStateForScratchResource(rootDeviceEnvironment, stateBuffer, size, addr, 0, pitch, nullptr, isReadOnly, type, true, false);
|
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.depth + 1u, state->getDepth());
|
||||||
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
EXPECT_EQ(length.surfaceState.width + 1u, state->getWidth());
|
||||||
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
EXPECT_EQ(length.surfaceState.height + 1u, state->getHeight());
|
||||||
|
@ -940,9 +940,9 @@ TEST_F(GfxCoreHelperTest, givenAUBDumpForceAllToLocalMemoryDebugVarWhenSetThenGe
|
||||||
HWCMDTEST_F(IGFX_GEN12LP_CORE, GfxCoreHelperTest, givenVariousCachesRequestThenCorrectMocsIndexesAreReturned) {
|
HWCMDTEST_F(IGFX_GEN12LP_CORE, GfxCoreHelperTest, givenVariousCachesRequestThenCorrectMocsIndexesAreReturned) {
|
||||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||||
auto gmmHelper = this->pDevice->getGmmHelper();
|
auto gmmHelper = this->pDevice->getGmmHelper();
|
||||||
auto expectedMocsForL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
auto expectedMocsForL3off = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
auto expectedMocsForL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
auto expectedMocsForL3on = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
auto expectedMocsForL3andL1on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CONST) >> 1;
|
auto expectedMocsForL3andL1on = gmmHelper->getL1EnabledMOCS() >> 1;
|
||||||
|
|
||||||
auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true);
|
auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true);
|
||||||
EXPECT_EQ(expectedMocsForL3off, mocsIndex);
|
EXPECT_EQ(expectedMocsForL3off, mocsIndex);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (C) 2021-2024 Intel Corporation
|
* Copyright (C) 2021-2025 Intel Corporation
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
|
@ -25,8 +25,8 @@ HWTEST2_F(GfxCoreHelperTestPvcAndLater, givenVariousCachesRequestsThenProperMocs
|
||||||
|
|
||||||
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
auto &gfxCoreHelper = getHelper<GfxCoreHelper>();
|
||||||
auto gmmHelper = this->pDevice->getRootDeviceEnvironment().getGmmHelper();
|
auto gmmHelper = this->pDevice->getRootDeviceEnvironment().getGmmHelper();
|
||||||
auto expectedMocsForL3off = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED) >> 1;
|
auto expectedMocsForL3off = gmmHelper->getUncachedMOCS() >> 1;
|
||||||
auto expectedMocsForL3on = gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER) >> 1;
|
auto expectedMocsForL3on = gmmHelper->getL3EnabledMOCS() >> 1;
|
||||||
|
|
||||||
auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true);
|
auto mocsIndex = gfxCoreHelper.getMocsIndex(*gmmHelper, false, true);
|
||||||
EXPECT_EQ(expectedMocsForL3off, mocsIndex);
|
EXPECT_EQ(expectedMocsForL3off, mocsIndex);
|
||||||
|
|
|
@ -120,7 +120,7 @@ HWTEST2_F(BlitTests, givenGmmWithEnabledCompresionWhenAppendBlitCommandsForVillB
|
||||||
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsPVC) {
|
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsPVC) {
|
||||||
using MEM_SET = typename FamilyType::MEM_SET;
|
using MEM_SET = typename FamilyType::MEM_SET;
|
||||||
DebugManagerStateRestore dbgRestore;
|
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);
|
debugManager.flags.OverrideBlitterMocs.set(mockValue);
|
||||||
|
|
||||||
uint32_t pattern = 1;
|
uint32_t pattern = 1;
|
||||||
|
|
|
@ -121,7 +121,7 @@ HWTEST2_F(BlitTests, givenGmmWithEnabledCompresionAndDebugFlagSetWhenAppendBlitC
|
||||||
|
|
||||||
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForFillBufferThenDebugMocksValueIsSet, BlitPlatforms) {
|
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForFillBufferThenDebugMocksValueIsSet, BlitPlatforms) {
|
||||||
DebugManagerStateRestore dbgRestore;
|
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);
|
debugManager.flags.OverrideBlitterMocs.set(mockValue);
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ HWTEST2_F(BlitTests, givenOneBytePatternWhenFillPatternWithBlitThenCommandIsProg
|
||||||
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsXe2HpgCore) {
|
HWTEST2_F(BlitTests, givenOverridedMocksValueWhenAppendBlitCommandsForVillBufferThenDebugMocksValueIsSet, IsXe2HpgCore) {
|
||||||
using MEM_SET = typename FamilyType::MEM_SET;
|
using MEM_SET = typename FamilyType::MEM_SET;
|
||||||
DebugManagerStateRestore dbgRestore;
|
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);
|
debugManager.flags.OverrideBlitterMocs.set(mockValue);
|
||||||
|
|
||||||
uint32_t pattern = 1;
|
uint32_t pattern = 1;
|
||||||
|
|
|
@ -464,7 +464,7 @@ XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenCleanHeapsAndSlmNotChangedAn
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getUncachedMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenDebugFlagSetWhenAdjustIsCalledThenUpdateRequiredScratchSizeField) {
|
XE2_HPG_CORETEST_F(EncodeKernelXe2HpgCoreTest, givenDebugFlagSetWhenAdjustIsCalledThenUpdateRequiredScratchSizeField) {
|
||||||
|
|
|
@ -174,7 +174,7 @@ XE3_CORETEST_F(CommandEncodeStatesXe3Test, givenHeapSharingEnabledWhenRetrieving
|
||||||
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
cmdContainer->setHeapDirty(NEO::HeapType::surfaceState);
|
||||||
|
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getRootDeviceEnvironment().getGmmHelper();
|
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;
|
STATE_BASE_ADDRESS sba;
|
||||||
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
EncodeStateBaseAddressArgs<FamilyType> args = createDefaultEncodeStateBaseAddressArgs<FamilyType>(cmdContainer.get(), sba, statelessMocsIndex);
|
||||||
|
|
|
@ -484,7 +484,7 @@ XE_HPC_CORETEST_F(EncodeKernelXeHpcCoreTest, givenCleanHeapsAndSlmNotChangedAndU
|
||||||
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
auto cmdSba = genCmdCast<STATE_BASE_ADDRESS *>(*itor);
|
||||||
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
auto gmmHelper = cmdContainer->getDevice()->getGmmHelper();
|
||||||
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
EXPECT_EQ(cmdSba->getStatelessDataPortAccessMemoryObjectControlState(),
|
||||||
(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_BUFFER_CACHELINE_MISALIGNED)));
|
(gmmHelper->getUncachedMOCS()));
|
||||||
}
|
}
|
||||||
|
|
||||||
using XeHpcSbaTest = SbaTest;
|
using XeHpcSbaTest = SbaTest;
|
||||||
|
|
Loading…
Reference in New Issue