Entire patchset: 1-7 (What I meant to say in the first place) Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com>
> On May 24, 2018, at 11:13 AM, Cherniak, Bruce <bruce.chern...@intel.com> > wrote: > > Patchset (1/7) > Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com> > >> On May 23, 2018, at 2:58 PM, Alok Hota <alok.h...@intel.com> wrote: >> >> SCATTERPS previously assumed it was being used with an existing basic >> block >> --- >> .../drivers/swr/rasterizer/jitter/builder_mem.cpp | 29 >> +++++++++++++++------- >> 1 file changed, 20 insertions(+), 9 deletions(-) >> >> diff --git a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp >> b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp >> index 6e17888..77c2095 100644 >> --- a/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp >> +++ b/src/gallium/drivers/swr/rasterizer/jitter/builder_mem.cpp >> @@ -617,17 +617,28 @@ namespace SwrJit >> >> Value* pIsUndef = ICMP_EQ(pIndex, C(32)); >> >> - // Split current block >> - BasicBlock* pPostLoop = >> pCurBB->splitBasicBlock(cast<Instruction>(pIsUndef)->getNextNode()); >> + // Split current block or create new one if building inline >> + BasicBlock* pPostLoop; >> + if (pCurBB->getTerminator()) >> + { >> + pPostLoop = >> pCurBB->splitBasicBlock(cast<Instruction>(pIsUndef)->getNextNode()); >> >> - // Remove unconditional jump created by splitBasicBlock >> - pCurBB->getTerminator()->eraseFromParent(); >> + // Remove unconditional jump created by splitBasicBlock >> + pCurBB->getTerminator()->eraseFromParent(); >> >> - // Add terminator to end of original block >> - IRB()->SetInsertPoint(pCurBB); >> + // Add terminator to end of original block >> + IRB()->SetInsertPoint(pCurBB); >> >> - // Add conditional branch >> - COND_BR(pIsUndef, pPostLoop, pLoop); >> + // Add conditional branch >> + COND_BR(pIsUndef, pPostLoop, pLoop); >> + } >> + else >> + { >> + pPostLoop = BasicBlock::Create(mpJitMgr->mContext, >> "PostScatter_Loop", pFunc); >> + >> + // Add conditional branch >> + COND_BR(pIsUndef, pPostLoop, pLoop); >> + } >> >> // Add loop basic block contents >> IRB()->SetInsertPoint(pLoop); >> @@ -642,7 +653,7 @@ namespace SwrJit >> Value* pOffsetElem = LOADV(pOffsetsArrayPtr, { pIndexPhi }); >> >> // GEP to this offset in dst >> - Value* pCurDst = GEP(pDst, pOffsetElem); >> + Value* pCurDst = GEP(pDst, pOffsetElem, mInt8PtrTy); >> pCurDst = POINTER_CAST(pCurDst, PointerType::get(pSrcTy, 0)); >> STORE(pSrcElem, pCurDst); >> >> -- >> 2.7.4 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev