On 11/04/2015 04:28 PM, Guo, Yejun wrote:
Did you verify the patch with opencl conformance test, I'm almost sure that 
image array and image3d need this condition. This might not necessary for 
image2d, but need verification to avoid regression issue.

Sorry that I don't test with image array/image3d.

But for the image array/image3d: I think that the correct check should be:
(slice_pitch >= image_row_pitch * ALIGN(h, XXX) && slice_pitch % image_row_pitch == 0)

In such case it is enough that the internal check uses the aligned height. But it doesn't make sense that the height in image_desc should be already aligned.

How do you think?


-----Original Message-----
From: Beignet [mailto:[email protected]] On Behalf Of Zhao 
Yakui
Sent: Wednesday, November 04, 2015 10:38 AM
To: [email protected]
Cc: Zhao, Yakui; Guo, Yejun
Subject: [Beignet] [PATCH] Remove the incorrect check of height alignment in 2D 
image + use_host_ptr

Currently it will reject the creation of image based on host_ptr if the height 
is not aligned. In fact this is wrong. And we can't pass the aligned height in 
image_desc. Otherwise the sampler doesn't work as expected because of padding 
height. It is enough if the image_row_pitch follows the aligned requirement of 
width.

Signed-off-by: Zhao Yakui<[email protected]>
---
  src/cl_mem.c | 1 -
  1 file changed, 1 deletion(-)

diff --git a/src/cl_mem.c b/src/cl_mem.c index ca3e76f..82e44ae 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -839,7 +839,6 @@ _cl_mem_new_image(cl_context ctx,
      int cacheline_size = 0;
      cl_get_device_info(ctx->device, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, 
sizeof(cacheline_size),&cacheline_size, NULL);
      if (ALIGN((unsigned long)data, cacheline_size) == (unsigned long)data&&
-        ALIGN(h, cl_buffer_get_tiling_align(ctx, CL_NO_TILE, 1)) == h&&
          ((image_type != CL_MEM_OBJECT_IMAGE3D&&  image_type != 
CL_MEM_OBJECT_IMAGE1D_ARRAY&&  image_type != CL_MEM_OBJECT_IMAGE2D_ARRAY) || pitch * h 
== slice_pitch)) {
        tiling = CL_NO_TILE;
        enableUserptr = 1;
--
1.9.1

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

_______________________________________________
Beignet mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/beignet

Reply via email to