Skip to content

Commit 2a99486

Browse files
krystian-andrzejewskiigcbot
authored andcommitted
[Autobackout][FuncReg]Revert of change: c525925
Disallow assigning no mask flags for ld raw instructions This change is to prevent from assigning no mask flags for ld raw instructions which contribute to sample coordinates as it may cause OOB access and page faults.
1 parent df256df commit 2a99486

File tree

1 file changed

+5
-24
lines changed

1 file changed

+5
-24
lines changed

IGC/Compiler/CISACodeGen/EmitVISAPass.cpp

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -269,30 +269,11 @@ bool EmitPass::IsNoMaskAllowed(SDAG& sdag)
269269
{
270270
if (auto* I = dyn_cast<LoadInst>(sdag.m_root))
271271
{
272-
switch (I->getPointerAddressSpace())
273-
{
274-
case ADDRESS_SPACE_PRIVATE:
275-
case ADDRESS_SPACE_GLOBAL:
276-
case ADDRESS_SPACE_CONSTANT:
277-
return false;
278-
default:
279-
{
280-
BufferType bufType = DecodeBufferType(I->getPointerAddressSpace());
281-
return bufType != CONSTANT_BUFFER ||
282-
!m_currShader->GetContext()->getModuleMetaData()->compOpt.WaDisableSubspanUseNoMaskForCB;
283-
}
284-
}
285-
}
286-
else if (auto* I = dyn_cast<GenIntrinsicInst>(sdag.m_root))
287-
{
288-
switch (I->getIntrinsicID())
289-
{
290-
case GenISAIntrinsic::GenISA_ldraw_indexed:
291-
case GenISAIntrinsic::GenISA_ldrawvector_indexed:
292-
return false;
293-
default:
294-
break;
295-
}
272+
BufferType bufType = DecodeBufferType(I->getPointerAddressSpace());
273+
return I->getPointerAddressSpace() != ADDRESS_SPACE_PRIVATE &&
274+
I->getPointerAddressSpace() != ADDRESS_SPACE_GLOBAL &&
275+
I->getPointerAddressSpace() != ADDRESS_SPACE_CONSTANT &&
276+
!(bufType == CONSTANT_BUFFER && m_currShader->GetContext()->getModuleMetaData()->compOpt.WaDisableSubspanUseNoMaskForCB);
296277
}
297278

298279
return true;

0 commit comments

Comments
 (0)