loader: remove loader_get_driver_for_fd() driver_type
Reminiscent from the pre-loader days, were we had multiple instances of the loader logic in separate places and one could build a "GALLIUM_ONLY" version. Since that is no longer the case and the loaders (glx/egl/gbm) do not (and should not) require to know any classic/gallium specific we can drop the argument and the related code. Signed-off-by: Emil Velikov <emil.velikov@collabora.com> Reviewed-by: Axel Davy <axel.davy@ens.fr> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
This commit is contained in:

committed by
Emil Velikov

parent
f9f7e44c94
commit
af7abc512c
@@ -934,7 +934,7 @@ dri2_initialize_android(_EGLDriver *drv, _EGLDisplay *dpy)
|
||||
goto cleanup_display;
|
||||
}
|
||||
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (dri2_dpy->driver_name == NULL) {
|
||||
err = "DRI2: failed to get driver name";
|
||||
goto cleanup_device;
|
||||
|
@@ -282,7 +282,7 @@ dri2_initialize_surfaceless(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
if (dri2_dpy->fd < 0)
|
||||
continue;
|
||||
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (dri2_dpy->driver_name) {
|
||||
if (dri2_load_driver(disp)) {
|
||||
driver_loaded = 1;
|
||||
|
@@ -1183,7 +1183,7 @@ dri2_initialize_wayland_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||
* the server by requesting its pci-id */
|
||||
dri2_dpy->is_render_node = drmGetNodeTypeFromFd(dri2_dpy->fd) == DRM_NODE_RENDER;
|
||||
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (dri2_dpy->driver_name == NULL) {
|
||||
_eglError(EGL_BAD_ALLOC, "DRI2: failed to get driver name");
|
||||
goto cleanup_fd;
|
||||
|
@@ -681,7 +681,7 @@ dri2_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
/* If Mesa knows about the appropriate driver for this fd, then trust it.
|
||||
* Otherwise, default to the server's value.
|
||||
*/
|
||||
loader_driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
|
||||
loader_driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (loader_driver_name) {
|
||||
dri2_dpy->driver_name = loader_driver_name;
|
||||
} else {
|
||||
|
@@ -537,7 +537,7 @@ dri3_x11_connect(struct dri2_egl_display *dri2_dpy)
|
||||
|
||||
dri2_dpy->fd = loader_get_user_preferred_fd(dri2_dpy->fd, &dri2_dpy->is_different_gpu);
|
||||
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd, 0);
|
||||
dri2_dpy->driver_name = loader_get_driver_for_fd(dri2_dpy->fd);
|
||||
if (!dri2_dpy->driver_name) {
|
||||
_eglLog(_EGL_WARNING, "DRI3: No driver found");
|
||||
close(dri2_dpy->fd);
|
||||
|
@@ -176,7 +176,7 @@ pipe_loader_drm_probe_fd(struct pipe_loader_device **dev, int fd)
|
||||
ddev->base.ops = &pipe_loader_drm_ops;
|
||||
ddev->fd = fd;
|
||||
|
||||
ddev->base.driver_name = loader_get_driver_for_fd(fd, _LOADER_GALLIUM);
|
||||
ddev->base.driver_name = loader_get_driver_for_fd(fd);
|
||||
if (!ddev->base.driver_name)
|
||||
goto fail;
|
||||
|
||||
|
@@ -516,7 +516,7 @@ dri_screen_create(struct gbm_dri_device *dri)
|
||||
{
|
||||
char *driver_name;
|
||||
|
||||
driver_name = loader_get_driver_for_fd(dri->base.base.fd, 0);
|
||||
driver_name = loader_get_driver_for_fd(dri->base.base.fd);
|
||||
if (!driver_name)
|
||||
return -1;
|
||||
|
||||
|
@@ -1206,7 +1206,7 @@ dri2CreateScreen(int screen, struct glx_display * priv)
|
||||
/* If Mesa knows about the appropriate driver for this fd, then trust it.
|
||||
* Otherwise, default to the server's value.
|
||||
*/
|
||||
loader_driverName = loader_get_driver_for_fd(psc->fd, 0);
|
||||
loader_driverName = loader_get_driver_for_fd(psc->fd);
|
||||
if (loader_driverName) {
|
||||
free(driverName);
|
||||
driverName = loader_driverName;
|
||||
|
@@ -780,7 +780,7 @@ dri3_create_screen(int screen, struct glx_display * priv)
|
||||
psc->fd = loader_get_user_preferred_fd(psc->fd, &psc->is_different_gpu);
|
||||
deviceName = NULL;
|
||||
|
||||
driverName = loader_get_driver_for_fd(psc->fd, 0);
|
||||
driverName = loader_get_driver_for_fd(psc->fd);
|
||||
if (!driverName) {
|
||||
ErrorMessageF("No driver found\n");
|
||||
goto handle_error;
|
||||
|
@@ -378,14 +378,11 @@ loader_get_device_name_for_fd(int fd)
|
||||
}
|
||||
|
||||
char *
|
||||
loader_get_driver_for_fd(int fd, unsigned driver_types)
|
||||
loader_get_driver_for_fd(int fd)
|
||||
{
|
||||
int vendor_id, chip_id, i, j;
|
||||
char *driver = NULL;
|
||||
|
||||
if (!driver_types)
|
||||
driver_types = _LOADER_GALLIUM | _LOADER_DRI;
|
||||
|
||||
if (!loader_get_pci_id_for_fd(fd, &vendor_id, &chip_id)) {
|
||||
|
||||
#if HAVE_LIBDRM
|
||||
@@ -410,9 +407,6 @@ loader_get_driver_for_fd(int fd, unsigned driver_types)
|
||||
if (vendor_id != driver_map[i].vendor_id)
|
||||
continue;
|
||||
|
||||
if (!(driver_types & driver_map[i].driver_types))
|
||||
continue;
|
||||
|
||||
if (driver_map[i].predicate && !driver_map[i].predicate(fd))
|
||||
continue;
|
||||
|
||||
|
@@ -33,9 +33,6 @@ extern "C" {
|
||||
|
||||
/* Helpers to figure out driver and device name, eg. from pci-id, etc. */
|
||||
|
||||
#define _LOADER_DRI (1 << 0)
|
||||
#define _LOADER_GALLIUM (1 << 1)
|
||||
|
||||
int
|
||||
loader_open_device(const char *);
|
||||
|
||||
@@ -43,7 +40,7 @@ int
|
||||
loader_get_pci_id_for_fd(int fd, int *vendor_id, int *chip_id);
|
||||
|
||||
char *
|
||||
loader_get_driver_for_fd(int fd, unsigned driver_types);
|
||||
loader_get_driver_for_fd(int fd);
|
||||
|
||||
char *
|
||||
loader_get_device_name_for_fd(int fd);
|
||||
|
@@ -72,20 +72,19 @@ static const struct {
|
||||
const char *driver;
|
||||
const int *chip_ids;
|
||||
int num_chips_ids;
|
||||
unsigned driver_types;
|
||||
int (*predicate)(int fd);
|
||||
} driver_map[] = {
|
||||
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids), _LOADER_DRI | _LOADER_GALLIUM },
|
||||
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids), _LOADER_DRI | _LOADER_GALLIUM },
|
||||
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids), _LOADER_DRI },
|
||||
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids), _LOADER_DRI },
|
||||
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids), _LOADER_GALLIUM },
|
||||
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids), _LOADER_GALLIUM },
|
||||
{ 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids), _LOADER_GALLIUM},
|
||||
{ 0x10de, "nouveau_vieux", NULL, -1, _LOADER_DRI, is_nouveau_vieux },
|
||||
{ 0x10de, "nouveau", NULL, -1, _LOADER_GALLIUM },
|
||||
{ 0x1af4, "virtio_gpu", virtio_gpu_chip_ids, ARRAY_SIZE(virtio_gpu_chip_ids), _LOADER_GALLIUM },
|
||||
{ 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids), _LOADER_GALLIUM },
|
||||
{ 0x8086, "i915", i915_chip_ids, ARRAY_SIZE(i915_chip_ids) },
|
||||
{ 0x8086, "i965", i965_chip_ids, ARRAY_SIZE(i965_chip_ids) },
|
||||
{ 0x1002, "radeon", r100_chip_ids, ARRAY_SIZE(r100_chip_ids) },
|
||||
{ 0x1002, "r200", r200_chip_ids, ARRAY_SIZE(r200_chip_ids) },
|
||||
{ 0x1002, "r300", r300_chip_ids, ARRAY_SIZE(r300_chip_ids) },
|
||||
{ 0x1002, "r600", r600_chip_ids, ARRAY_SIZE(r600_chip_ids) },
|
||||
{ 0x1002, "radeonsi", radeonsi_chip_ids, ARRAY_SIZE(radeonsi_chip_ids) },
|
||||
{ 0x10de, "nouveau_vieux", NULL, -1, is_nouveau_vieux },
|
||||
{ 0x10de, "nouveau", NULL, -1, },
|
||||
{ 0x1af4, "virtio_gpu", virtio_gpu_chip_ids, ARRAY_SIZE(virtio_gpu_chip_ids) },
|
||||
{ 0x15ad, "vmwgfx", vmwgfx_chip_ids, ARRAY_SIZE(vmwgfx_chip_ids) },
|
||||
{ 0x0000, NULL, NULL, 0 },
|
||||
};
|
||||
|
||||
|
Reference in New Issue
Block a user