diff options
author | Emil Velikov <[email protected]> | 2014-05-17 15:31:32 +0100 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2014-06-19 12:37:14 +0100 |
commit | 36ff20027c43cd7115f1b6f073e4094582f643b6 (patch) | |
tree | 9cab40c233cfe47dc83ca4fd158b81e074dbadd7 /src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | |
parent | 7f00611d780df85cc20474b6695754e36a6c9228 (diff) |
pipe-loader: add pipe_loader_ops::configuration()
Required for the dri state-tracker. Will be used to retrieve
driver specific configuration parameters:
- share_fd (dmabuf) capability
- throttle
Signed-off-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c')
-rw-r--r-- | src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c index 2e5b74bacdc..1bbaf190c5b 100644 --- a/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c +++ b/src/gallium/auxiliary/pipe-loader/pipe_loader_drm.c @@ -261,6 +261,29 @@ pipe_loader_drm_release(struct pipe_loader_device **dev) *dev = NULL; } +static const struct drm_conf_ret * +pipe_loader_drm_configuration(struct pipe_loader_device *dev, + enum drm_conf conf) +{ + struct pipe_loader_drm_device *ddev = pipe_loader_drm_device(dev); + const struct drm_driver_descriptor *dd; + + if (!ddev->lib) + return NULL; + + dd = (const struct drm_driver_descriptor *) + util_dl_get_proc_address(ddev->lib, "driver_descriptor"); + + /* sanity check on the name */ + if (!dd || strcmp(dd->name, ddev->base.driver_name) != 0) + return NULL; + + if (!dd->configuration) + return NULL; + + return dd->configuration(conf); +} + static struct pipe_screen * pipe_loader_drm_create_screen(struct pipe_loader_device *dev, const char *library_paths) @@ -285,5 +308,6 @@ pipe_loader_drm_create_screen(struct pipe_loader_device *dev, static struct pipe_loader_ops pipe_loader_drm_ops = { .create_screen = pipe_loader_drm_create_screen, + .configuration = pipe_loader_drm_configuration, .release = pipe_loader_drm_release }; |