     sumVariance /= (sumW * sumW);
 
     nextTo[idx] = make_float4(sumClr.x, sumClr.y, sumLum, sumVariance);
-
-    surf2Dwrite(
-        nextTo[idx].y >= 0.0f ? make_float4(nextTo[idx].y, 0.0f, 0.0f, 1.0f) : make_float4(0.0f, abs(nextTo[idx].y), 0.0f, 1.0f),
-        dst,
-        ix * sizeof(float4), iy,
-        cudaBoundaryModeTrap);
 }
 
 namespace idaten

    float sumVariance = centerVariance;
    float sumW = 1.0f;

    static const int r = 1;
    
    for (int yy = -r; yy <= r; yy ++) {
        for (int xx = -r; xx <= r; xx++) {
            if (xx != 0 || yy != 0) {
                int x = aten::clamp(ix + xx * stepScale, 0, width - 1);
                int y = aten::clamp(iy + yy * stepScale, 0, height - 1);



__global__ void atrousGradient(
    idaten::TileDomain tileDomain,
    int tileSize,
    const float4* __restrict__ gradient,
    const float4* __restrict__ curAovNormalDepth,
