 
             if( level > 0 ) {
                 filter_gauss_vert_v11_dog
-                    <<<grid,block>>>
+                    <<<d_grid,d_block>>>
                     ( _octaves[octave]._data_tex[level  ],
                       _octaves[octave]._data_tex[level-1],
                       _octaves[octave].getDogData( level-1 ) );

             << "(" << block.x << "," << block.y << "," << block.z << ")" << endl;
#endif


            if( level == 0 ) {
                if( octave == 0 ) {
                    filter_gauss_horiz_v11
                        <<<grid,block>>>
                        ( base->array,
                          _octaves[octave].getIntermediateData( ) );
                } else {
                    filter_gauss_horiz_v11_by_2
                        <<<grid,block>>>
                        ( _octaves[octave-1]._data_tex[ V11_LEVELS-3 ],
                          _octaves[octave].getIntermediateData( ) );
                }
            } else {
                filter_gauss_horiz_v11
                    <<<grid,block>>>
                    ( _octaves[octave]._data_tex[ level-1 ],
                      _octaves[octave].getIntermediateData( ) );
            }

}

__global__
void filter_gauss_horiz_v11_by_2( cudaTextureObject_t src_data,
                                  Plane2D_float       dst_data )
{
    int block_x = blockIdx.x * blockDim.x;
    int block_y = blockIdx.y * blockDim.y;
    int idx;
    int idy     = threadIdx.y;

    float g;
    float val;
