Gwenole Beauchesne <gb.de...@gmail.com> writes: > Fix eglCreateImage() from a packed dma_buf surface with a non-zero offset > to pixels data. In particular, this fixes support for planar YUV surfaces > when they are individually mapped on a per-plane basis, i.e. when the > OES_EGL_image_external is not used and user application wants to use its > own shader code for composition, or processing on individual plane (OCL). > > Signed-off-by: Gwenole Beauchesne <gwenole.beauche...@intel.com> > --- > src/mesa/drivers/dri/i965/intel_screen.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/src/mesa/drivers/dri/i965/intel_screen.c > b/src/mesa/drivers/dri/i965/intel_screen.c > index 05cf6b1..81a8330 100644 > --- a/src/mesa/drivers/dri/i965/intel_screen.c > +++ b/src/mesa/drivers/dri/i965/intel_screen.c > @@ -651,6 +651,7 @@ intel_create_image_from_fds(__DRIscreen *screen, > { > struct intel_screen *intelScreen = screen->driverPrivate; > struct intel_image_format *f; > + uint32_t mask_x, mask_y; > __DRIimage *image; > int i, index; > > @@ -684,6 +685,14 @@ intel_create_image_from_fds(__DRIscreen *screen, > image->strides[index] = strides[index]; > } > > + if (f->nplanes == 1) { > + image->offset = image->offsets[0]; > + intel_region_get_tile_masks(image->region, &mask_x, &mask_y, false); > + if (image->offset & mask_x) > + _mesa_warning(NULL, > + "intel_create_image_from_fds: offset not on tile > boundary"); > + }
I'm confused here. offset is a byte offset, right? If so, then a tile boundary is 4096, not the byte width of a row in a tile. Are you planning on supporting non-4096-aligned imports? I'm hoping not.
pgpWz6J1Zru3s.pgp
Description: PGP signature
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev