Skip to content

Commit

Permalink
Add platforms to avoid dst/src overlap
Browse files Browse the repository at this point in the history
Send dst src operand overlap may cause dead lock due to SBID dependence
  • Loading branch information
bcheng0127 authored and igcbot committed Aug 29, 2024
1 parent 041f93a commit c0b875d
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 11 deletions.
5 changes: 0 additions & 5 deletions IGC/Compiler/CISACodeGen/CISABuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5251,11 +5251,6 @@ namespace IGC
SaveOption(vISA_noSendSrcDstOverlap, true);
}

if (m_program->m_Platform->WaDisableSendSrcDstOverlap())
{
SaveOption(vISA_noSendSrcDstOverlap, true);
}

// Set to stitch all functions to all kernels in a VISABuidler
SaveOption(vISA_noStitchExternFunc, false);

Expand Down
10 changes: 6 additions & 4 deletions IGC/Compiler/CISACodeGen/Platform.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -1567,10 +1567,12 @@ bool WaGeoShaderURBAllocReduction() const

bool WaDisableSendSrcDstOverlap() const
{
return (!IGC_IS_FLAG_ENABLED(DisableSendSrcDstOverlapWA)) &&
(m_SkuTable.FtrWddm2Svm != 0 || m_platformInfo.eRenderCoreFamily == IGFX_GEN10_CORE ||
m_platformInfo.eRenderCoreFamily == IGFX_GEN11_CORE);

return (!IGC_IS_FLAG_ENABLED(DisableSendSrcDstOverlapWA)) &&
(m_SkuTable.FtrWddm2Svm != 0 ||
m_platformInfo.eRenderCoreFamily == IGFX_GEN10_CORE ||
m_platformInfo.eRenderCoreFamily == IGFX_GEN11_CORE ||
(m_platformInfo.eProductFamily >= IGFX_PVC &&
m_platformInfo.eProductFamily <= IGFX_ARROWLAKE));
}

bool WaInsertHDCFenceBeforeEOTWhenSparseAliasedResources() const
Expand Down
4 changes: 2 additions & 2 deletions visa/HWCaps.inc
Original file line number Diff line number Diff line change
Expand Up @@ -334,8 +334,8 @@ bool has8ByteA64Gather() const { return getPlatform() != GENX_TGLLP; }
bool WaDisableSendSrcDstOverlap() const {
return getOption(vISA_noSendSrcDstOverlap) ||
(m_options->getTarget() == VISA_CM && getPlatform() >= GENX_SKL &&
getPlatform() < GENX_TGLLP) ||
getPlatform() == GENX_ICLLP;
getPlatform() < GENX_TGLLP) || getPlatform() == GENX_ICLLP ||
(getPlatform() >= Xe_MTL && getPlatform() <= Xe_PVCXT);
}

bool isXeLP() const { return getPlatform() == GENX_TGLLP; }
Expand Down

0 comments on commit c0b875d

Please sign in to comment.