On Mon, Aug 13, 2012 at 10:16 AM, Jakob Bornecrantz <ja...@vmware.com> wrote: > Makes it possible to run Wayland on Gallium drivers. At least a bit until > it tries to use gbm cursor bo's.
Reviewed-by: Kristian Høgsberg <k...@bitplanet.net> > Signed-off-by: Jakob Bornecrantz <ja...@vmware.com> > --- > src/egl/drivers/dri2/egl_dri2.c | 22 ++++++++++++++++------ > 1 file changed, 16 insertions(+), 6 deletions(-) > > diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c > index a78ee8b..7648e68 100644 > --- a/src/egl/drivers/dri2/egl_dri2.c > +++ b/src/egl/drivers/dri2/egl_dri2.c > @@ -1142,9 +1142,13 @@ dri2_create_image_wayland_wl_buffer(_EGLDisplay *disp, > _EGLContext *ctx, > offset = buffer->offset[index]; > stride = buffer->stride[index]; > > - dri_image = dri2_dpy->image->createSubImage(buffer->driver_buffer, > - width, height, format, > - offset, stride / cpp, NULL); > + if (f->nplanes == 1) { > + dri_image = dri2_dpy->image->dupImage(buffer->driver_buffer, NULL); > + } else { > + dri_image = dri2_dpy->image->createSubImage(buffer->driver_buffer, > + width, height, format, > + offset, stride / cpp, > NULL); > + } > > return dri2_create_image(disp, dri_image); > } > @@ -1305,11 +1309,17 @@ dri2_wl_reference_buffer(void *user_data, uint32_t > name, > { > _EGLDisplay *disp = user_data; > struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp); > - int i; > + const struct wl_drm_format_descriptor *f; > + int i, format = 0; > > for (i = 0; i < ARRAY_SIZE(wl_drm_formats); i++) > if (wl_drm_formats[i].wl_format == buffer->format) { > - buffer->driver_format = &wl_drm_formats[i]; > + f = &wl_drm_formats[i]; > + buffer->driver_format = f; > + if (f->nplanes == 1) > + format = f->planes[0].dri_format; > + else > + format = __DRI_IMAGE_FORMAT_NONE; > break; > } > > @@ -1320,7 +1330,7 @@ dri2_wl_reference_buffer(void *user_data, uint32_t name, > dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen, > buffer->buffer.width, > buffer->buffer.height, > - __DRI_IMAGE_FORMAT_NONE, name, > + format, name, > buffer->stride[0] / 4, > NULL); > } > -- > 1.7.9.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev