The extra shift in the output actually appears detrimental in cgminer and there is a miniscule chance of missing the actual result if it ends up in the same spot as MAXBUFFERS.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
diff --git a/phatk110722.cl b/phatk110722.cl
index 43cdacf..09837a0 100644
--- a/phatk110722.cl
+++ b/phatk110722.cl
@@ -389,31 +389,31 @@ __kernel void search( const uint state0, const uint state1, const uint state2, c
Vals[7] += Vals[3] + P4(124) + P3(124) + P2(124) + P1(124) + s1(124) + ch(124);
#define MAXBUFFERS (4095)
-#define NFLAG (0xFFFUL)
+#define NFLAG (0xFFEUL)
#if defined(VECTORS4) || defined(VECTORS2)
if (Vals[7].x == -H[7])
{
- output[MAXBUFFERS] = output[NFLAG & (W[3].x >> 2)] = W_3.x;
+ output[MAXBUFFERS] = output[NFLAG & W[3].x] = W_3.x;
}
if (Vals[7].y == -H[7])
{
- output[MAXBUFFERS] = output[NFLAG & (W[3].y >> 2)] = W_3.y;
+ output[MAXBUFFERS] = output[NFLAG & W[3].y] = W_3.y;
}
#ifdef VECTORS4
if (Vals[7].z == -H[7])
{
- output[MAXBUFFERS] = output[NFLAG & (W[3].z >> 2)] = W_3.z;
+ output[MAXBUFFERS] = output[NFLAG & W[3].z] = W_3.z;
}
if (Vals[7].w == -H[7])
{
- output[MAXBUFFERS] = output[NFLAG & (W[3].w >> 2)] = W_3.w;
+ output[MAXBUFFERS] = output[NFLAG & W[3].w] = W_3.w;
}
#endif
#else
if (Vals[7] == -H[7])
{
- output[MAXBUFFERS] = output[NFLAG & (W[3] >> 2)] = W_3;
+ output[MAXBUFFERS] = output[NFLAG & W[3]] = W_3;
}
#endif
}
diff --git a/poclbm110717.cl b/poclbm110717.cl
index c5358a4..5b2c199 100644
--- a/poclbm110717.cl
+++ b/poclbm110717.cl
@@ -628,7 +628,7 @@ __kernel void search( const uint state0, const uint state1, const uint state2, c
Vals[7]+=0x5be0cd19U;
#define MAXBUFFERS (4095)
-#define NFLAG (0xFFFUL)
+#define NFLAG (0xFFEUL)
#if defined(VECTORS4) || defined(VECTORS2)
if (Vals[7].x == 0)