     __shared__ uint scanOutput[THREADS_PER_BLK];
     __shared__ uint scanScratch[2 * THREADS_PER_BLK];
     __shared__ int circleInBlock[THREADS_PER_BLK];
+    __shared__ float radiusShared[THREADS_PER_BLK];
 
     int index3_circ;
     float3 p_circ;

                p = *(float3*)(&cuConstRendererParams.position[index3]);
                pixelCenterNorm = make_float2(invWidth * (static_cast<float>(imageX) + 0.5f),
                                                     invHeight * (static_cast<float>(imageY) + 0.5f));
                shadePixel(circleInBlock[i]+thread_iter,pixelCenterNorm, p, &imgPtr);
        }
    }
    *(float4*)(&cuConstRendererParams.imageData[offset]) = imgPtr;
}

            // Push all circle in block region forward
            circleInBlock[circleInBlockIdx] = linearThreadIndex;
        }
        // Sync circleInBlock
        __syncthreads();

        for (int i=0; i < num_circle_in_block; i++){               
