From: Luo Xionghu <[email protected]>

if image from buffer, the image's pitch should be same with
buffer bo's row pitch.

v2: correct style. image from buffer need update both aligned_pitch and
aligned_h, while image from user ptr only set aligned_pitch, so just
keep them independently.

Signed-off-by: Luo Xionghu <[email protected]>
---
 src/cl_mem.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/cl_mem.c b/src/cl_mem.c
index cb2af47..72c335d 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -851,8 +851,13 @@ _cl_mem_new_image(cl_context ctx,
     if (aligned_pitch < pitch && enableUserptr)
       aligned_pitch = pitch;
     //no need align the height if 2d image from buffer.
-    if (image_type == CL_MEM_OBJECT_IMAGE2D && buffer != NULL)
+    //the pitch should be same with buffer's pitch as they share same bo.
+    if (image_type == CL_MEM_OBJECT_IMAGE2D && buffer != NULL) {
+      if(aligned_pitch < pitch) {
+        aligned_pitch = pitch;
+      }
       aligned_h = h;
+    }
     else
       aligned_h  = ALIGN(h, cl_buffer_get_tiling_align(ctx, CL_NO_TILE, 1));
   } else if (tiling == CL_TILE_X) {
-- 
1.9.1

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

Reply via email to