diff --git a/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c b/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c index 31d442666fe..6d5a860e891 100644 --- a/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c +++ b/src/gallium/winsys/kmsro/drm/kmsro_drm_winsys.c @@ -72,7 +72,7 @@ struct pipe_screen *kmsro_drm_screen_create(int fd, * flag on allocation will have ensured. */ ro->create_for_resource = renderonly_create_gpu_import_for_resource; - screen = vc4_drm_screen_create_renderonly(ro, config); + screen = vc4_drm_screen_create_renderonly(ro->gpu_fd, ro, config); if (!screen) goto out_free; diff --git a/src/gallium/winsys/vc4/drm/vc4_drm_public.h b/src/gallium/winsys/vc4/drm/vc4_drm_public.h index a727242d7ba..9a4731a08d8 100644 --- a/src/gallium/winsys/vc4/drm/vc4_drm_public.h +++ b/src/gallium/winsys/vc4/drm/vc4_drm_public.h @@ -29,7 +29,7 @@ struct renderonly; struct pipe_screen *vc4_drm_screen_create(int drmFD, const struct pipe_screen_config *config); -struct pipe_screen *vc4_drm_screen_create_renderonly(struct renderonly *ro, +struct pipe_screen *vc4_drm_screen_create_renderonly(int fd, struct renderonly *ro, const struct pipe_screen_config *config); #endif /* __VC4_DRM_PUBLIC_H__ */ diff --git a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c index ac0a7051f74..4be6cc9eaff 100644 --- a/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c +++ b/src/gallium/winsys/vc4/drm/vc4_drm_winsys.c @@ -60,9 +60,9 @@ vc4_drm_screen_create(int fd, const struct pipe_screen_config *config) } struct pipe_screen * -vc4_drm_screen_create_renderonly(struct renderonly *ro, +vc4_drm_screen_create_renderonly(int fd, struct renderonly *ro, const struct pipe_screen_config *config) { - return u_pipe_screen_lookup_or_create(os_dupfd_cloexec(ro->gpu_fd), config, + return u_pipe_screen_lookup_or_create(os_dupfd_cloexec(fd), config, ro, vc4_screen_create); }