Reviewed-by: Edward O'Callaghan <[email protected]>

On 10/11/2016 04:22 PM, Dave Airlie wrote:
> From: Dave Airlie <[email protected]>
> 
> This checks the kernel driver name is amdgpu before calling
> libdrm_amdgpu.
> 
> This avoids the following error:
> amdgpu_device_initialize: DRM version is 1.6.0 but this driver is only 
> compatible with 3.x.x
> 
> when run on a machine with i915 graphics as well as amdgpu.
> 
> Signed-off-by: Dave Airlie <[email protected]>
> ---
>  src/amd/vulkan/radv_device.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index 3d7ebab..c47ea19 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -32,6 +32,7 @@
>  #include "radv_private.h"
>  #include "util/strtod.h"
>  
> +#include <xf86drm.h>
>  #include <amdgpu.h>
>  #include <amdgpu_drm.h>
>  #include "amdgpu_id.h"
> @@ -55,6 +56,7 @@ radv_physical_device_init(struct radv_physical_device 
> *device,
>                         const char *path)
>  {
>       VkResult result;
> +     drmVersionPtr version;
>       int fd;
>  
>       fd = open(path, O_RDWR | O_CLOEXEC);
> @@ -62,6 +64,18 @@ radv_physical_device_init(struct radv_physical_device 
> *device,
>               return vk_errorf(VK_ERROR_INCOMPATIBLE_DRIVER,
>                                "failed to open %s: %m", path);
>  
> +     version = drmGetVersion(fd);
> +     if (!version)
> +             return vk_errorf(VK_ERROR_INCOMPATIBLE_DRIVER,
> +                              "failed to get version %s: %m", path);
> +
> +     if (strcmp(version->name, "amdgpu")) {
> +             drmFreeVersion(version);
> +             close(fd);
> +             return VK_ERROR_INCOMPATIBLE_DRIVER;
> +     }
> +     drmFreeVersion(version);
> +
>       device->_loader_data.loaderMagic = ICD_LOADER_MAGIC;
>       device->instance = instance;
>       assert(strlen(path) < ARRAY_SIZE(device->path));
> 

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to