summaryrefslogtreecommitdiff
path: root/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
diff options
context:
space:
mode:
authorThomas Hellstrom <thellstrom@vmware.com>2010-01-18 15:55:17 +0100
committerThomas Hellstrom <thellstrom@vmware.com>2010-01-18 15:56:57 +0100
commitae97520e37ee70c813a198c805c7338aefbd8156 (patch)
tree630a0bcb17d9ce0be7f94f02ecd23f9e96817eae /src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
parent5f2d60a7154f896bb418231662663465269ce9b8 (diff)
ws/vmware: Check DRM version also when bootstrapping in dri2 mode.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
Diffstat (limited to 'src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c')
-rw-r--r--src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c b/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
index 5995eee34b..7c47d434f0 100644
--- a/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
+++ b/src/gallium/winsys/drm/vmware/core/vmw_screen_dri.c
@@ -85,6 +85,23 @@ vmw_drm_create_screen(struct drm_api *drm_api,
struct pipe_screen *screen;
struct dri1_create_screen_arg *dri1;
+ if (!arg || arg->mode == DRM_CREATE_NORMAL) {
+ struct dri1_api_version drm_ver;
+ drmVersionPtr ver;
+
+ ver = drmGetVersion(fd);
+ if (ver == NULL)
+ return NULL;
+
+ drm_ver.major = ver->version_major;
+ drm_ver.minor = ver->version_minor;
+
+ drmFreeVersion(ver);
+ if (!vmw_dri1_check_version(&drm_ver, &drm_required,
+ &drm_compat, "vmwgfx drm driver"))
+ return NULL;
+ }
+
if (arg != NULL) {
switch (arg->mode) {
case DRM_CREATE_NORMAL: