Reviewed-by: Bruce Cherniak <bruce.chern...@intel.com> > On Dec 17, 2018, at 8:36 AM, Alok Hota <alok.h...@intel.com> wrote: > > Use gfxptr_t type value for stream pointer uses in gather and similar > calls > --- > .../swr/rasterizer/jitter/fetch_jit.cpp | 34 +++++++++---------- > 1 file changed, 16 insertions(+), 18 deletions(-) > > diff --git a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp > b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp > index 3ad0fabe81f..d294a67050c 100644 > --- a/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp > +++ b/src/gallium/drivers/swr/rasterizer/jitter/fetch_jit.cpp > @@ -550,9 +550,6 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > > Value* stream = LOAD(streams, {ied.StreamIndex, > SWR_VERTEX_BUFFER_STATE_xpData}); > > - // VGATHER* takes an *i8 src pointer > - Value* pStreamBase = INT_TO_PTR(stream, PointerType::get(mInt8Ty, > 0)); > - > Value* stride = LOAD(streams, {ied.StreamIndex, > SWR_VERTEX_BUFFER_STATE_pitch}); > Value* vStride = VBROADCAST(stride); > > @@ -620,7 +617,8 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > > // calculate byte offset to the start of the VB > Value* baseOffset = MUL(Z_EXT(startOffset, mInt64Ty), > Z_EXT(stride, mInt64Ty)); > - pStreamBase = GEP(pStreamBase, baseOffset); > + > + // VGATHER* takes an *i8 src pointer so that's what stream is > Value* pStreamBaseGFX = ADD(stream, baseOffset); > > // if we have a start offset, subtract from max vertex. Used for OOB > check > @@ -698,7 +696,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > { > Value* pResults[4]; > CreateGatherOddFormats( > - (SWR_FORMAT)ied.Format, vGatherMask, pStreamBase, vOffsets, > pResults); > + (SWR_FORMAT)ied.Format, vGatherMask, pStreamBaseGFX, > vOffsets, pResults); > ConvertFormat((SWR_FORMAT)ied.Format, pResults); > > for (uint32_t c = 0; c < 4; c += 1) > @@ -733,7 +731,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > // if we have at least one component out of x or y to fetch > if (isComponentEnabled(compMask, 0) || > isComponentEnabled(compMask, 1)) > { > - vGatherResult[0] = GATHERPS(gatherSrc, pStreamBase, > vOffsets, vGatherMask); > + vGatherResult[0] = GATHERPS(gatherSrc, pStreamBaseGFX, > vOffsets, vGatherMask); > // e.g. result of first 8x32bit integer gather for 16bit > components > // 256i - 0 1 2 3 4 5 6 7 > // xyxy xyxy xyxy xyxy xyxy xyxy xyxy xyxy > @@ -744,9 +742,9 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > if (isComponentEnabled(compMask, 2) || > isComponentEnabled(compMask, 3)) > { > // offset base to the next components(zw) in the vertex > to gather > - pStreamBase = GEP(pStreamBase, C((char)4)); > + pStreamBaseGFX = ADD(pStreamBaseGFX, C((int64_t)4)); > > - vGatherResult[1] = GATHERPS(gatherSrc, pStreamBase, > vOffsets, vGatherMask); > + vGatherResult[1] = GATHERPS(gatherSrc, pStreamBaseGFX, > vOffsets, vGatherMask); > // e.g. result of second 8x32bit integer gather for 16bit > components > // 256i - 0 1 2 3 4 5 6 7 > // zwzw zwzw zwzw zwzw zwzw zwzw zwzw zwzw > @@ -811,7 +809,6 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > } > > // offset base to the next component in the vertex to > gather > - pStreamBase = GEP(pStreamBase, C((char)4)); > pStreamBaseGFX = ADD(pStreamBaseGFX, C((int64_t)4)); > } > } > @@ -854,9 +851,9 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > mVWidth / 2, > ConstantFP::get(IRB()->getDoubleTy(), 0.0f)); > > Value* pGatherLo = > - GATHERPD(vZeroDouble, pStreamBase, > vOffsetsLo, vMaskLo); > + GATHERPD(vZeroDouble, pStreamBaseGFX, > vOffsetsLo, vMaskLo); > Value* pGatherHi = > - GATHERPD(vZeroDouble, pStreamBase, > vOffsetsHi, vMaskHi); > + GATHERPD(vZeroDouble, pStreamBaseGFX, > vOffsetsHi, vMaskHi); > > pGatherLo = VCVTPD2PS(pGatherLo); > pGatherHi = VCVTPD2PS(pGatherHi); > @@ -880,7 +877,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > } > > // offset base to the next component in the vertex to > gather > - pStreamBase = GEP(pStreamBase, C((char)8)); > + pStreamBaseGFX = ADD(pStreamBaseGFX, C((int64_t)8)); > } > } > break; > @@ -936,7 +933,8 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > // if we have at least one component to fetch > if (compMask) > { > - Value* vGatherResult = GATHERDD(gatherSrc, pStreamBase, > vOffsets, vGatherMask); > + Value* vGatherResult = GATHERDD( > + gatherSrc, pStreamBaseGFX, vOffsets, vGatherMask, 1, > GFX_MEM_CLIENT_FETCH); > // e.g. result of an 8x32bit integer gather for 8bit > components > // 256i - 0 1 2 3 4 5 6 7 > // xyzw xyzw xyzw xyzw xyzw xyzw xyzw xyzw > @@ -965,7 +963,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > // if we have at least one component out of x or y to fetch > if (isComponentEnabled(compMask, 0) || > isComponentEnabled(compMask, 1)) > { > - vGatherResult[0] = GATHERDD(gatherSrc, pStreamBase, > vOffsets, vGatherMask); > + vGatherResult[0] = GATHERDD(gatherSrc, pStreamBaseGFX, > vOffsets, vGatherMask); > // e.g. result of first 8x32bit integer gather for 16bit > components > // 256i - 0 1 2 3 4 5 6 7 > // xyxy xyxy xyxy xyxy xyxy xyxy xyxy xyxy > @@ -976,9 +974,9 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > if (isComponentEnabled(compMask, 2) || > isComponentEnabled(compMask, 3)) > { > // offset base to the next components(zw) in the vertex > to gather > - pStreamBase = GEP(pStreamBase, C((char)4)); > + pStreamBaseGFX = ADD(pStreamBaseGFX, C((int64_t)4)); > > - vGatherResult[1] = GATHERDD(gatherSrc, pStreamBase, > vOffsets, vGatherMask); > + vGatherResult[1] = GATHERDD(gatherSrc, pStreamBaseGFX, > vOffsets, vGatherMask); > // e.g. result of second 8x32bit integer gather for 16bit > components > // 256i - 0 1 2 3 4 5 6 7 > // zwzw zwzw zwzw zwzw zwzw zwzw zwzw zwzw > @@ -1015,7 +1013,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > if (compCtrl[i] == StoreSrc) > { > Value* pGather = > - GATHERDD(gatherSrc, pStreamBase, vOffsets, > vGatherMask); > + GATHERDD(gatherSrc, pStreamBaseGFX, > vOffsets, vGatherMask); > > if (conversionType == CONVERT_USCALED) > { > @@ -1053,7 +1051,7 @@ void FetchJit::JitGatherVertices(const > FETCH_COMPILE_STATE& fetchState, > } > > // offset base to the next component in the vertex to > gather > - pStreamBase = GEP(pStreamBase, C((char)4)); > + pStreamBaseGFX = ADD(pStreamBaseGFX, C((int64_t)4)); > } > } > break; > -- > 2.17.1 > > _______________________________________________ > 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