From 666ea30017648197a786dbe26124da791ba6897e Mon Sep 17 00:00:00 2001 From: Jeremy Newton Date: Wed, 10 Jul 2019 10:23:53 -0400 Subject: [PATCH] pipe-loader: use radeonsi for MM if amdgpu dri is used MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The amdgpu dri is used for the closed source AMD driver. Since this driver does not implement multimedia, we fall back to radeonsi in mesa to do multimedia. This corrects the dri driver name for when it is set to amdgpu. Reviewed-by: Michel Dänzer (v1) Signed-off-by: Jeremy Newton Signed-off-by: Marek Olšák --- src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 960d63b..45b941e 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -194,6 +194,15 @@ pipe_loader_drm_probe_fd_nodup(struct pipe_loader_device **dev, int fd) if (!ddev->base.driver_name) goto fail; + /* For the closed source AMD OpenGL driver, we want libgbm to load + * "amdgpu_dri.so", but we want Gallium multimedia drivers to load + * "radeonsi". So change amdgpu to radeonsi for Gallium. + */ + if (strcmp(ddev->base.driver_name, "amdgpu") == 0) { + FREE(ddev->base.driver_name); + ddev->base.driver_name = strdup("radeonsi"); + } + struct util_dl_library **plib = NULL; #ifndef GALLIUM_STATIC_TARGETS plib = &ddev->lib; -- 2.7.4