 
             if (cell_index.y >= degree) { break; }
 
-            sum += trace_through(origin + cell_index * cell_size, rsi);
+            sum += trace_through(origin + cell_index * cell_size);
 
             cell_index.y += 1.0;
         }

    vec3 y = random_on_sphere(

        light.position, light.radius,
        random(rsi++), random(rsi++)
    );

    if (!visible(x, y)) { return vec3(0, 0, 0); }

    vec3 D = vec3(camera_world_matrix * vec4(p, 1)) - o;

    // Trace
    return trace(Ray(o, normalize(D)));
}


void main(void) {

    uv = (vs_pixel + 1.0) * 0.5;
    rsi = 0;

    float degree = float(pixel_sampler_grid_degree);

