On 13 February 2017 at 17:34, Daniel Stone <[email protected]> wrote: > Hey, > > On 13 February 2017 at 17:27, Emil Velikov <[email protected]> wrote: >> On 13 February 2017 at 14:06, Daniel Stone <[email protected]> wrote: >>> static EGLBoolean >>> dri2_wl_swrast_allocate_buffer(struct dri2_egl_display *dri2_dpy, >>> - int format, int w, int h, >>> + int drm_format, int w, int h, >>> void **data, int *size, >>> struct wl_buffer **buffer) >>> { >>> struct wl_shm_pool *pool; >>> + uint32_t shm_format; >>> int fd, stride, size_map; >>> void *data_map; >>> >>> - stride = dri2_wl_swrast_get_stride_for_format(format, w); >>> + switch (drm_format) { >>> + case WL_DRM_FORMAT_RGB565: >>> + shm_format = WL_SHM_FORMAT_RGB565; >>> + break; >>> + case WL_DRM_FORMAT_ARGB8888: >>> + shm_format = WL_SHM_FORMAT_ARGB8888; >>> + break; >>> + case WL_DRM_FORMAT_XRGB8888: >>> + shm_format = WL_SHM_FORMAT_XRGB8888; >>> + break; >>> + default: >>> + return EGL_FALSE; >>> + } >> >> Wouldn't it be better to have this in dri2_wl_create_window_surface() ? >> As-is we're passing the DRM formats on the wire, which is quite likely >> to cause issues elsewhere. > > There were a few other codepaths touching the format that seemed like > they might be affected. This is the only one which actually hits the > wire (AFAICT - which others are you thinking of ... ?), so that seemed > like it was the easiest. > From a quick look shm_handle_format() comes to mind. Keep in mind that I'm not that big of an expert on the Wayland code so I might have missed something ;-)
-Emil _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
