mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-03 14:55:24 +08:00
Start using real mocs index to call state base address programming.
- After this change we start using real MOCS index as an argument to sba programming - We also start tracking real MOCS index in Command Stream Receiver. Change-Id: Id34cffd7e58cb7363df02ac76f82bf377f4bbd77 Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
This commit is contained in:
committed by
sys_ocldev
parent
aeb84b3e20
commit
e851359e32
@@ -270,12 +270,11 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
|
||||
|
||||
auto isStateBaseAddressDirty = dshDirty || iohDirty || sshDirty || stateBaseAddressDirty;
|
||||
|
||||
auto requiredL3Index = CacheSettings::l3CacheOn;
|
||||
if (dispatchFlags.l3CacheSettings == L3CachingSettings::l3CacheOff) {
|
||||
requiredL3Index = CacheSettings::l3CacheOff;
|
||||
}
|
||||
auto &hwHelper = HwHelper::get(peekHwInfo().platform.eRenderCoreFamily);
|
||||
auto l3On = dispatchFlags.l3CacheSettings != L3CachingSettings::l3CacheOff;
|
||||
auto mocsIndex = hwHelper.getMocsIndex(*device.getGmmHelper(), l3On, false);
|
||||
|
||||
if (requiredL3Index != latestSentStatelessMocsConfig) {
|
||||
if (mocsIndex != latestSentStatelessMocsConfig) {
|
||||
isStateBaseAddressDirty = true;
|
||||
}
|
||||
|
||||
@@ -300,7 +299,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
|
||||
ioh,
|
||||
ssh,
|
||||
newGSHbase,
|
||||
requiredL3Index,
|
||||
mocsIndex,
|
||||
getMemoryManager()->getInternalHeapBaseAddress(),
|
||||
device.getGmmHelper(),
|
||||
dispatchFlags);
|
||||
@@ -317,7 +316,7 @@ CompletionStamp CommandStreamReceiverHw<GfxFamily>::flushTask(
|
||||
|
||||
programStateSip(commandStreamCSR, device);
|
||||
|
||||
latestSentStatelessMocsConfig = requiredL3Index;
|
||||
latestSentStatelessMocsConfig = mocsIndex;
|
||||
|
||||
if (DebugManager.flags.AddPatchInfoCommentsForAUBDump.get()) {
|
||||
collectStateBaseAddresPatchInfo(commandStream.getGraphicsAllocation()->getGpuAddress(), stateBaseAddressCmdOffset, dsh, ioh, ssh, newGSHbase);
|
||||
|
||||
@@ -55,12 +55,13 @@ void StateBaseAddressHelper<GfxFamily>::programStateBaseAddress(
|
||||
|
||||
pCmd->setInstructionBufferSize(MemoryConstants::sizeOf4GBinPageEntities);
|
||||
|
||||
//set cache settings
|
||||
auto mocsToProgram = gmmHelper->getMOCS(statelessMocsIndex);
|
||||
if (DebugManager.flags.OverrideStatelessMocsIndex.get() != -1) {
|
||||
mocsToProgram = (DebugManager.flags.OverrideStatelessMocsIndex.get() << 1);
|
||||
statelessMocsIndex = DebugManager.flags.OverrideStatelessMocsIndex.get();
|
||||
}
|
||||
pCmd->setStatelessDataPortAccessMemoryObjectControlState(mocsToProgram);
|
||||
|
||||
statelessMocsIndex = statelessMocsIndex << 1;
|
||||
|
||||
pCmd->setStatelessDataPortAccessMemoryObjectControlState(statelessMocsIndex);
|
||||
pCmd->setInstructionMemoryObjectControlState(gmmHelper->getMOCS(GMM_RESOURCE_USAGE_OCL_STATE_HEAP_BUFFER));
|
||||
|
||||
appendStateBaseAddressParameters(pCmd, dsh, ioh, ssh, generalStateBase, internalHeapBase, gmmHelper, dispatchFlags);
|
||||
|
||||
Reference in New Issue
Block a user