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

Reply via email to