diff options
-rw-r--r-- | libmg2d.v | 2 | ||||
-rw-r--r-- | mg2d.c | 23 | ||||
-rw-r--r-- | mg2d.h | 1 |
3 files changed, 16 insertions, 10 deletions
@@ -1,4 +1,4 @@ -LIBMG2D_13 { +LIBMG2D_14 { global: mg2d_*; local: *; }; @@ -1971,6 +1971,7 @@ unsigned int mg2d_max_fd_stencil(void) int mg2d_init_guess(MG2DContext *ctx, const double *src, ptrdiff_t src_stride, + const ptrdiff_t src_start[2], const size_t src_size[2], const double src_step[2]) { @@ -2000,22 +2001,26 @@ int mg2d_init_guess(MG2DContext *ctx, const double *src, priv->transfer_init->tp = priv->tp; priv->transfer_init->cpuflags = priv->cpuflags; - priv->transfer_init->src.size[0] = src_size[0]; - priv->transfer_init->src.size[1] = src_size[1]; - priv->transfer_init->src.step[0] = src_step[0]; - priv->transfer_init->src.step[1] = src_step[1]; + priv->transfer_init->src.start[0] = src_start[1]; + priv->transfer_init->src.start[1] = src_start[0]; + priv->transfer_init->src.size[0] = src_size[1]; + priv->transfer_init->src.size[1] = src_size[0]; + priv->transfer_init->src.step[0] = src_step[1]; + priv->transfer_init->src.step[1] = src_step[0]; - priv->transfer_init->dst.size[0] = ctx->local_size[0]; - priv->transfer_init->dst.size[1] = ctx->local_size[1]; - priv->transfer_init->dst.step[0] = ctx->step[0]; - priv->transfer_init->dst.step[1] = ctx->step[1]; + priv->transfer_init->dst.start[0] = ctx->local_start[1]; + priv->transfer_init->dst.start[1] = ctx->local_start[0]; + priv->transfer_init->dst.size[0] = ctx->local_size[1]; + priv->transfer_init->dst.size[1] = ctx->local_size[0]; + priv->transfer_init->dst.step[0] = ctx->step[1]; + priv->transfer_init->dst.step[1] = ctx->step[0]; ret = mg2di_gt_init(priv->transfer_init); if (ret < 0) return ret; } - ret = mg2di_ndarray_wrap(&a_src, 2, src_size, src, + ret = mg2di_ndarray_wrap(&a_src, 2, (size_t [2]){ src_size[1], src_size[0] }, src, (ptrdiff_t [2]){ src_stride, 1 }); if (ret < 0) return ret; @@ -288,6 +288,7 @@ unsigned int mg2d_max_fd_stencil(void); int mg2d_init_guess(MG2DContext *ctx, const double *src, ptrdiff_t src_stride, + const ptrdiff_t src_start[2], const size_t src_size[2], const double src_step[2]); |