 
     // int hid    = blockIdx.x % 16;
     // int offset = hid*8;
-    uint32_t offset = ( ( threadIdx.z << 2 ) + threadIdx.y ) * 8;
+    int offset = ( ( ( threadIdx.z << 2 ) + threadIdx.y ) << 3 ); // ( ( threadIdx.z * 4 ) + threadIdx.y ) * 8;
 
     Descriptor* desc = &descs[blockIdx.x];
 

#include "assist.h"

#undef DESCRIPTORS_FROM_UNBLURRED_IMAGE

/*************************************************************
 * V1: device side


            const float dnx = nx + offsetptx;
            const float dny = ny + offsetpty;
            const float ww  = __expf( -scalbnf(dnx*dnx + dny*dny, -3)); // speedup !
            // const float ww  = __expf(-0.125f * (dnx*dnx + dny*dny)); // speedup !
            const float wx  = 1.0f - nxn;
            const float wy  = 1.0f - nyn;
            const float wgt = ww * wx * wy * mod;
