On 9 June 2017 at 01:27, gurchetansi...@chromium.org <gurchetansi...@chromium.org> wrote: > From: Gurchetan Singh <gurchetansi...@chromium.org> > > We can stop exposing functions needed to initialize the image > extension by creating a helper function. > --- > src/gallium/state_trackers/dri/dri2.c | 33 > ++----------------------- > src/gallium/state_trackers/dri/dri_extensions.c | 33 > +++++++++++++++++++++++-- > src/gallium/state_trackers/dri/dri_extensions.h | 17 ++----------- > 3 files changed, 35 insertions(+), 48 deletions(-) > > diff --git a/src/gallium/state_trackers/dri/dri2.c > b/src/gallium/state_trackers/dri/dri2.c > index b68d93bdaa..45b20eb1e4 100644 > --- a/src/gallium/state_trackers/dri/dri2.c > +++ b/src/gallium/state_trackers/dri/dri2.c > @@ -644,21 +644,6 @@ dri2_update_tex_buffer(struct dri_drawable *drawable, > /* no-op */ > } > > -static __DRIimage * > -dri2_lookup_egl_image(struct dri_screen *screen, void *handle) > -{ > - const __DRIimageLookupExtension *loader = screen->sPriv->dri2.image; > - __DRIimage *img; > - > - if (!loader->lookupEGLImage) > - return NULL; > - > - img = loader->lookupEGLImage(screen->sPriv, > - handle, screen->sPriv->loaderPrivate); > - > - return img; > -} > - > static const __DRIrobustnessExtension dri2Robustness = { > .base = { __DRI2_ROBUSTNESS, 1 } > }; > @@ -1057,13 +1042,7 @@ dri2_init_screen(__DRIscreen * sPriv) > } > > if (dmabuf_ret && dmabuf_ret->val.val_bool) { > - uint64_t cap; > - > - if (drmGetCap(sPriv->fd, DRM_CAP_PRIME, &cap) == 0 && > - (cap & DRM_PRIME_CAP_IMPORT)) { > - dri2ImageExtension.createImageFromFds = dri2_from_fds; > - dri2ImageExtension.createImageFromDmaBufs = dri2_from_dma_bufs; > - } > + dri2_init_image_extension(screen); > } > > if (pscreen->get_param(pscreen, PIPE_CAP_DEVICE_RESET_STATUS_QUERY)) { > @@ -1080,7 +1059,6 @@ dri2_init_screen(__DRIscreen * sPriv) > screen->can_share_buffer = true; > screen->auto_fake_front = dri_with_format(sPriv); > screen->broken_invalidate = !sPriv->dri2.useInvalidate; > - screen->lookup_egl_image = dri2_lookup_egl_image; > > return configs; > > @@ -1110,7 +1088,6 @@ dri_kms_init_screen(__DRIscreen * sPriv) > const __DRIconfig **configs; > struct dri_screen *screen; > struct pipe_screen *pscreen = NULL; > - uint64_t cap; > int fd; > > screen = CALLOC_STRUCT(dri_screen); > @@ -1131,12 +1108,6 @@ dri_kms_init_screen(__DRIscreen * sPriv) > if (!pscreen) > goto release_pipe; > > - if (drmGetCap(sPriv->fd, DRM_CAP_PRIME, &cap) == 0 && > - (cap & DRM_PRIME_CAP_IMPORT)) { > - dri2ImageExtension.createImageFromFds = dri2_from_fds; > - dri2ImageExtension.createImageFromDmaBufs = dri2_from_dma_bufs; > - } > - > sPriv->extensions = dri_screen_extensions; > > configs = dri_init_screen_helper(screen, pscreen, "swrast"); > @@ -1146,7 +1117,7 @@ dri_kms_init_screen(__DRIscreen * sPriv) > screen->can_share_buffer = false; > screen->auto_fake_front = dri_with_format(sPriv); > screen->broken_invalidate = !sPriv->dri2.useInvalidate; > - screen->lookup_egl_image = dri2_lookup_egl_image; > + dri2_init_image_extension(screen); > Having a helper like this and overall deduplicating dri2_init_screen+dri_kms_init_screen is a worthy goal. That should stay in dri2.c though.
No libdrm specifics [be that headers/libraries] or even the plain ioctl are allowed in drisw.c aka swrast_dri.so. Thanks Emil _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev