Remove RMW access patterns from gfx memory

Related-To: NEO-4338

Change-Id: I8dcfca9a11f499fde44ca9754dec67fe5a5e3d46
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2020-04-27 18:55:26 +02:00
committed by sys_ocldev
parent 3a9360629b
commit 048c90e3b1
17 changed files with 263 additions and 209 deletions

View File

@@ -38,9 +38,10 @@ void PreemptionHelper::applyPreemptionWaCmdsBegin<GfxFamily>(LinearStream *pComm
preemptionMode == PreemptionMode::MidThread) {
if (device.getHardwareInfo().workaroundTable.waModifyVFEStateAfterGPGPUPreemption) {
auto pCmd = reinterpret_cast<MI_LOAD_REGISTER_IMM *>(pCommandStream->getSpace(sizeof(MI_LOAD_REGISTER_IMM)));
*pCmd = GfxFamily::cmdInitLoadRegisterImm;
pCmd->setRegisterOffset(CS_GPR_R0);
pCmd->setDataDword(GPGPU_WALKER_COOKIE_VALUE_BEFORE_WALKER);
MI_LOAD_REGISTER_IMM cmd = GfxFamily::cmdInitLoadRegisterImm;
cmd.setRegisterOffset(CS_GPR_R0);
cmd.setDataDword(GPGPU_WALKER_COOKIE_VALUE_BEFORE_WALKER);
*pCmd = cmd;
}
}
}
@@ -53,9 +54,10 @@ void PreemptionHelper::applyPreemptionWaCmdsEnd<GfxFamily>(LinearStream *pComman
preemptionMode == PreemptionMode::MidThread) {
if (device.getHardwareInfo().workaroundTable.waModifyVFEStateAfterGPGPUPreemption) {
auto pCmd = reinterpret_cast<MI_LOAD_REGISTER_IMM *>(pCommandStream->getSpace(sizeof(MI_LOAD_REGISTER_IMM)));
*pCmd = GfxFamily::cmdInitLoadRegisterImm;
pCmd->setRegisterOffset(CS_GPR_R0);
pCmd->setDataDword(GPGPU_WALKER_COOKIE_VALUE_AFTER_WALKER);
MI_LOAD_REGISTER_IMM cmd = GfxFamily::cmdInitLoadRegisterImm;
cmd.setRegisterOffset(CS_GPR_R0);
cmd.setDataDword(GPGPU_WALKER_COOKIE_VALUE_AFTER_WALKER);
*pCmd = cmd;
}
}
}