aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/dri3
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2014-08-30 13:45:43 +0200
committermarha <marha@users.sourceforge.net>2014-08-30 13:45:43 +0200
commit3293021e6f582c7348667e7638941620134525e1 (patch)
tree5d8d3da8242ff7828fb6964bed19b13d74d48704 /xorg-server/dri3
parent0a9ab140bb01b96888e313466a73e26e5156f22d (diff)
parente21655632e3fd40b7f6a5cc3c7f3c379d54557c4 (diff)
downloadvcxsrv-3293021e6f582c7348667e7638941620134525e1.tar.gz
vcxsrv-3293021e6f582c7348667e7638941620134525e1.tar.bz2
vcxsrv-3293021e6f582c7348667e7638941620134525e1.zip
Merge remote-tracking branch 'origin/released'
Conflicts: xorg-server/hw/kdrive/ephyr/ephyrinit.c
Diffstat (limited to 'xorg-server/dri3')
-rw-r--r--xorg-server/dri3/dri3.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/xorg-server/dri3/dri3.c b/xorg-server/dri3/dri3.c
index 76e07b40e..385862a3b 100644
--- a/xorg-server/dri3/dri3.c
+++ b/xorg-server/dri3/dri3.c
@@ -30,6 +30,8 @@ int dri3_request;
DevPrivateKeyRec dri3_screen_private_key;
DevPrivateKeyRec dri3_window_private_key;
+static int dri3_screen_generation;
+
static Bool
dri3_close_screen(ScreenPtr screen)
{
@@ -44,6 +46,8 @@ dri3_close_screen(ScreenPtr screen)
Bool
dri3_screen_init(ScreenPtr screen, dri3_screen_info_ptr info)
{
+ dri3_screen_generation = serverGeneration;
+
if (!dixRegisterPrivateKey(&dri3_screen_private_key, PRIVATE_SCREEN, 0))
return FALSE;
@@ -68,6 +72,12 @@ dri3_extension_init(void)
ExtensionEntry *extension;
int i;
+ /* If no screens support DRI3, there's no point offering the
+ * extension at all
+ */
+ if (dri3_screen_generation != serverGeneration)
+ return;
+
#ifdef PANORAMIX
if (!noPanoramiXExtension)
return;