                 float Wl = abs(luminance - centerLum) / (sqrGaussedVarLum + 1e-10f);
                 float Wz = abs(depth - centerDepth) / (cameraDistance * length(offset) * tileSize + 1e-2f);
 
-                float w = expf(-Wl * Wl - Wz) * h[i];
+                float w = expf(-Wl * Wl - Wz);
 
                 sumClr += color * w;
                 sumLum += luminance * w;

    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,
