     }
     __syncthreads();
     loaddata[idx+4] = tex2D<float>( src_data, off_x, blockIdx.y );
+    __syncthreads();
 
     float g;
     float val;

                          oct_obj.getIntermediateData( ) );
                }
            } else {
                filter_gauss_horiz_v11
                    <<<h_grid,h_block,0,oct_str_0>>>
                    ( oct_obj._data_tex[ level-1 ],
                      oct_obj.getIntermediateData( ) );

                dim3 block( 128, 1 );
                dim3 grid;
                const int width  = _octaves[octave].getData(0).getWidth();
                const int height = _octaves[octave].getData(0).getHeight();
                grid.x  = grid_divide( width,  128 );
                grid.y  = height;
                filter_gauss_horiz_v11_128x1
                    <<<grid,block,0,oct_str_0>>>
                    ( oct_obj._data_tex[ level-1 ],
                      oct_obj.getIntermediateData( ) );
            }

            if( level == 0 ) {
                filter_gauss_vert_v11
                    <<<v_grid,v_block,0,oct_str_0>>>
                    ( oct_obj._interm_data_tex,
                      oct_obj.getData( level ) );
            } else {
                filter_gauss_vert_v11
                    <<<v_grid,v_block,0,oct_str_0>>>
                    ( oct_obj._interm_data_tex,


    dst_data.ptr(idy)[idx] = out;
}
#endif

__global__
void filter_gauss_horiz_v11_by_2( cudaTextureObject_t src_data,
