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)); >
signature.asc
Description: OpenPGP digital signature
_______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
