forked from pool/xorg-x11-server
52 lines
2.0 KiB
Diff
52 lines
2.0 KiB
Diff
|
From 277985e545626c9a9bd82aafddac4f935d95a4e2 Mon Sep 17 00:00:00 2001
|
||
|
From: Ian Romanick <ian.d.romanick@intel.com>
|
||
|
Date: Mon, 5 Dec 2011 10:55:20 -0800
|
||
|
Subject: [PATCH 01/11] glx: Fix mishandling of shared contexts
|
||
|
|
||
|
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
|
||
|
Reviewed-by: Eric Anholt <eric@anholt.net>
|
||
|
Reviewed-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
|
||
|
---
|
||
|
glx/glxcmds.c | 22 +++++++++++-----------
|
||
|
1 files changed, 11 insertions(+), 11 deletions(-)
|
||
|
|
||
|
diff --git a/glx/glxcmds.c b/glx/glxcmds.c
|
||
|
index 24fed8f..6fa10fe 100644
|
||
|
--- a/glx/glxcmds.c
|
||
|
+++ b/glx/glxcmds.c
|
||
|
@@ -251,20 +251,20 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId,
|
||
|
&shareglxc, &err))
|
||
|
return err;
|
||
|
|
||
|
- if (shareglxc->isDirect) {
|
||
|
- /*
|
||
|
- ** NOTE: no support for sharing display lists between direct
|
||
|
- ** contexts, even if they are in the same address space.
|
||
|
- */
|
||
|
-#if 0
|
||
|
- /* Disabling this code seems to allow shared display lists
|
||
|
- * and texture objects to work. We'll leave it disabled for now.
|
||
|
- */
|
||
|
+ /* Page 26 (page 32 of the PDF) of the GLX 1.4 spec says:
|
||
|
+ *
|
||
|
+ * "The server context state for all sharing contexts must exist
|
||
|
+ * in a single address space or a BadMatch error is generated."
|
||
|
+ *
|
||
|
+ * If the share context is indirect, force the new context to also be
|
||
|
+ * indirect. If the shard context is direct but the new context
|
||
|
+ * cannot be direct, generate BadMatch.
|
||
|
+ */
|
||
|
+ if (shareglxc->isDirect && !isDirect) {
|
||
|
client->errorValue = shareList;
|
||
|
return BadMatch;
|
||
|
-#endif
|
||
|
}
|
||
|
- else {
|
||
|
+ else if (!shareglxc->isDirect) {
|
||
|
/*
|
||
|
** Create an indirect context regardless of what the client asked
|
||
|
** for; this way we can share display list space with shareList.
|
||
|
--
|
||
|
1.7.3.4
|
||
|
|