[Beignet] [PATCH 1/2] Save depth and slice_pitch in cl_mem images.

Zhigang Gong zhigang.gong at linux.intel.com
Sun May 19 22:51:51 PDT 2013


LGTM, pushed. Thanks.

On Fri, May 17, 2013 at 06:06:13PM +0200, Dag Lem wrote:
> 
> Signed-off-by: Dag Lem <dag at nimrod.no>
> ---
>  src/cl_command_queue.c | 2 +-
>  src/cl_mem.c           | 4 +++-
>  src/cl_mem.h           | 3 ++-
>  src/cl_mem_gl.c        | 4 +++-
>  4 files changed, 9 insertions(+), 4 deletions(-)
> 
> diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
> index 3d7b02e..a2a864a 100644
> --- a/src/cl_command_queue.c
> +++ b/src/cl_command_queue.c
> @@ -108,7 +108,7 @@ cl_command_queue_bind_image(cl_command_queue queue, cl_kernel k)
>      cl_gpgpu_bind_image(queue->gpgpu, k->images[i].idx, k->args[id].mem->bo,
>                          k->args[id].mem->intel_fmt, k->args[id].mem->type,
>                          k->args[id].mem->w, k->args[id].mem->h,
> -                        k->args[id].mem->pitch, k->args[id].mem->tiling);
> +                        k->args[id].mem->row_pitch, k->args[id].mem->tiling);
>    }
>    return CL_SUCCESS;
>  }
> diff --git a/src/cl_mem.c b/src/cl_mem.c
> index 10c96de..a832de1 100644
> --- a/src/cl_mem.c
> +++ b/src/cl_mem.c
> @@ -410,11 +410,13 @@ _cl_mem_new_image(cl_context ctx,
>  
>    mem->w = w;
>    mem->h = h;
> +  mem->depth = depth;
>    mem->fmt = *fmt;
>    mem->intel_fmt = intel_fmt;
>    mem->bpp = bpp;
>    mem->is_image = 1;
> -  mem->pitch = aligned_pitch;
> +  mem->row_pitch = aligned_pitch;
> +  mem->slice_pitch = image_type == CL_MEM_OBJECT_IMAGE1D || image_type == CL_MEM_OBJECT_IMAGE2D ? 0 : aligned_pitch*aligned_h;
>    mem->tiling = tiling;
>    mem->type = image_type;
>  
> diff --git a/src/cl_mem.h b/src/cl_mem.h
> index 99f3835..341ccd9 100644
> --- a/src/cl_mem.h
> +++ b/src/cl_mem.h
> @@ -43,7 +43,8 @@ struct _cl_mem {
>    uint32_t is_image;        /* Indicate if this is an image or not */
>    cl_image_format fmt;      /* only for images */
>    cl_mem_object_type type;  /* only for images 1D/2D...*/
> -  size_t w,h,depth,pitch;   /* only for images (depth is only for 3d images) */
> +  size_t w,h,depth;         /* only for images (depth is only for 3D images) */
> +  size_t row_pitch,slice_pitch;
>    uint32_t intel_fmt;       /* format to provide in the surface state */
>    uint32_t bpp;             /* number of bytes per pixel */
>    cl_image_tiling_t tiling; /* only IVB+ supports TILE_[X,Y] (image only) */
> diff --git a/src/cl_mem_gl.c b/src/cl_mem_gl.c
> index 3dfac00..930107f 100644
> --- a/src/cl_mem_gl.c
> +++ b/src/cl_mem_gl.c
> @@ -198,11 +198,13 @@ LOCAL cl_mem cl_mem_new_gl_texture(cl_context ctx,
>    mem->type = get_mem_type_from_target(texture_target);
>    mem->w = w;
>    mem->h = h;
> +  mem->depth = 1;
>    mem->fmt = cl_format;
>    mem->intel_fmt = intel_fmt;
>    mem->bpp = bpp;
>    mem->is_image = 1;
> -  mem->pitch = pitch;
> +  mem->row_pitch = pitch;
> +  mem->slice_pitch = 0;
>    mem->tiling = tiling;
>    mem->ref_n = 1;
>    mem->magic = CL_MAGIC_MEM_HEADER;
> -- 
> 1.8.1.4
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list