summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hellström <thomas@shipmail.org>2006-12-06 13:01:55 +0000
committerThomas Hellström <thomas@shipmail.org>2006-12-06 13:01:55 +0000
commit9770954095789d2d4e21d0e1e85d2947f544b1f2 (patch)
tree497935747a14e3ff85fae400fc2ad72cf6f43d72
parent585373e2499616afe61136af66090331640ad085 (diff)
Cause a "FatalError" if EXA is used with an un-patched Xserver,
and an illegal save locked memory action is requested.
-rw-r--r--ChangeLog7
-rw-r--r--unichrome/via_memory.c10
2 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 96dfe59..1726807 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
2006-12-06 Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
+ * unichrome/via_memory.c: (viaExaFBSave), (viaOffScreenLinear):
+
+ Cause a "FatalError" if EXA is used with an un-patched Xserver,
+ and an illegal save locked memory action is requested.
+
+2006-12-06 Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
+
* unichrome/via_driver.c: (VIAInitialize3DEngine):
Proper register names in VIAInitialize3DEngine.
diff --git a/unichrome/via_memory.c b/unichrome/via_memory.c
index 7e626ba..63206d3 100644
--- a/unichrome/via_memory.c
+++ b/unichrome/via_memory.c
@@ -52,6 +52,15 @@
* 2 - DRM
*/
+static void
+viaExaFBSave(ScreenPtr pScreen, ExaOffscreenArea *exa)
+{
+ FatalError("Xserver is not properly patched and incompatible with OpenChrome exa.\n"
+ "\tPlease look at Xorg bugzilla bug #7639, and\n"
+ "\thttp://wiki.openchrome.org/tikiwiki/tiki-index.php?page=EXAAcceleration .\n");
+}
+
+
void VIAFreeLinear(VIAMemPtr mem)
{
DEBUG(ErrorF("Freed %lu (pool %d)\n", mem->base, mem->pool));
@@ -100,6 +109,7 @@ viaOffScreenLinear(VIAMemPtr mem, ScrnInfoPtr pScrn,
32, TRUE, NULL,NULL);
if (mem->exa == NULL)
return BadAlloc;
+ mem->exa->save = viaExaFBSave;
mem->base = mem->exa->offset;
mem->pool = 1;
mem->pScrn = pScrn;