@@ -519,9 +519,6 @@ CVariable* CPixelShader::GetInputDelta(uint index, bool loweredInput)
519519 {
520520 inputVar = GetNewVariable (8 , ISA_TYPE_F, EALIGN_GRF, true , CName::NONE);
521521 setup[index + 1 ] = GetNewAlias (inputVar, ISA_TYPE_F, 16 , 4 );
522- // attribute packing
523- m_SetupIndicesUsed.insert (index + 1 );
524- m_MaxSetupIndex = std::max (index + 1 , m_MaxSetupIndex);
525522 }
526523 else
527524 {
@@ -533,9 +530,6 @@ CVariable* CPixelShader::GetInputDelta(uint index, bool loweredInput)
533530 inputVar = GetNewVariable (4 , ISA_TYPE_F, EALIGN_OWORD, true , CName::NONE);
534531 }
535532 setup[index] = inputVar;
536- // attribute packing
537- m_SetupIndicesUsed.insert (index);
538- m_MaxSetupIndex = std::max (index, m_MaxSetupIndex);
539533 }
540534 return inputVar;
541535}
@@ -950,6 +944,7 @@ void CPixelShader::ParseShaderSpecificOpcode(llvm::Instruction* inst)
950944 }
951945 if (GenIntrinsicInst * genIntr = dyn_cast<GenIntrinsicInst>(inst))
952946 {
947+ uint setupIndex;
953948 switch (genIntr->getIntrinsicID ())
954949 {
955950 case GenISAIntrinsic::GenISA_RenderTargetRead:
@@ -986,7 +981,7 @@ void CPixelShader::ParseShaderSpecificOpcode(llvm::Instruction* inst)
986981 {
987982 IGC_ASSERT (llvm::isa<llvm::ConstantInt>(inst->getOperand (0 )));
988983 IGC_ASSERT (llvm::isa<llvm::ConstantInt>(inst->getOperand (1 )));
989- uint setupIndex = int_cast<uint>(llvm::cast<llvm::ConstantInt>(inst->getOperand (0 ))->getZExtValue ());
984+ setupIndex = int_cast<uint>(llvm::cast<llvm::ConstantInt>(inst->getOperand (0 ))->getZExtValue ());
990985 m_MaxSetupIndex = std::max (setupIndex, m_MaxSetupIndex);
991986 // attribute packing
992987 m_SetupIndicesUsed.insert (setupIndex);
@@ -1013,6 +1008,13 @@ void CPixelShader::ParseShaderSpecificOpcode(llvm::Instruction* inst)
10131008 case GenISAIntrinsic::GenISA_PullCentroidBarys:
10141009 m_HasPullBary = true ;
10151010 break ;
1011+ case GenISAIntrinsic::GenISA_Interpolate:
1012+ IGC_ASSERT (llvm::isa<llvm::ConstantInt>(inst->getOperand (0 )));
1013+ setupIndex = int_cast<uint>(llvm::cast<llvm::ConstantInt>(inst->getOperand (0 ))->getZExtValue ());
1014+ m_MaxSetupIndex = std::max (setupIndex, m_MaxSetupIndex);
1015+ // attribute packing
1016+ m_SetupIndicesUsed.insert (setupIndex);
1017+ break ;
10161018 default :
10171019 break ;
10181020 }
0 commit comments