Merge branch '7.8'

Conflicts:
	Makefile
	src/mesa/main/version.h

Resolved by keeping version strings from master (also in the intel driver).
diff --git a/docs/news.html b/docs/news.html
index a60d7a8..4e4b697 100644
--- a/docs/news.html
+++ b/docs/news.html
@@ -11,7 +11,7 @@
 <H1>News</H1>
 
 
-<h2>March 26, 2010</h2>
+<h2>March 28, 2010</h2>
 <p>
 <a href="relnotes-7.7.1.html">Mesa 7.7.1</a> is released.  This is a bug-fix
 release fixing issues found in the 7.7 release.
diff --git a/docs/relnotes-7.7.1.html b/docs/relnotes-7.7.1.html
index 46f4cac..00b3671 100644
--- a/docs/relnotes-7.7.1.html
+++ b/docs/relnotes-7.7.1.html
@@ -8,7 +8,7 @@
 
 <body bgcolor="#eeeeee">
 
-<H1>Mesa 7.7.1 Release Notes / March 26, 2010</H1>
+<H1>Mesa 7.7.1 Release Notes / March 28, 2010</H1>
 
 <p>
 Mesa 7.7.1 is a bug-fix release.
@@ -26,7 +26,15 @@
 
 <h2>MD5 checksums</h2>
 <pre>
-tbd
+3ab0638cfa7ce8157337a229cf0db2c4  MesaLib-7.7.1.tar.gz
+46664d99e03f1e3ac078a7fea02af115  MesaLib-7.7.1.tar.bz2
+4e73ba8abb59aff79485eb95d7cefff7  MesaLib-7.7.1.zip
+bf1b108983995f7a712cf3343df1c918  MesaDemos-7.7.1.tar.gz
+aeb39645d80d656e0adebaa09e5bcd03  MesaDemos-7.7.1.tar.bz2
+01c49b7454fd292244eaf8bdc6ed8cf0  MesaDemos-7.7.1.zip
+37ec6386693dcb6dc770d1efd63a7a93  MesaGLUT-7.7.1.tar.gz
+1e16c85282f843791a21f7bc7b6a1ca8  MesaGLUT-7.7.1.tar.bz2
+d352c9e36a8e4d1059f4abc017b131e0  MesaGLUT-7.7.1.zip
 </pre>
 
 
diff --git a/docs/relnotes-7.8.html b/docs/relnotes-7.8.html
index eaf3a8d..1fed087 100644
--- a/docs/relnotes-7.8.html
+++ b/docs/relnotes-7.8.html
@@ -8,7 +8,7 @@
 
 <body bgcolor="#eeeeee">
 
-<H1>Mesa 7.8 Release Notes / March 26, 2010</H1>
+<H1>Mesa 7.8 Release Notes / March 28, 2010</H1>
 
 <p>
 Mesa 7.8 is a new development release.
@@ -28,7 +28,15 @@
 
 <h2>MD5 checksums</h2>
 <pre>
-tbd
+5fcfde5383eccb3e9fd665f08a0ea59b  MesaLib-7.8.tar.gz
+85cb891eecb89aae4fdd3499cccd934b  MesaLib-7.8.tar.bz2
+754f39593006effc1c8ec3c27c2f1296  MesaLib-7.8.zip
+c3869c29fa6c3dbdd763f7428d271e12  MesaDemos-7.8.tar.gz
+9fe8ec184c7f78691e43c4c0a7f97d56  MesaDemos-7.8.tar.bz2
+063a96947f7b83d4ad789c6cf291b184  MesaDemos-7.8.zip
+5f4246756b7daaddb4fb3f970cad1e28  MesaGLUT-7.8.tar.gz
+ca7048a4aa7a437dcc84cc2c7d731336  MesaGLUT-7.8.tar.bz2
+b54581aeb79b585b158d6a32f94feff2  MesaGLUT-7.8.zip
 </pre>
 
 
diff --git a/progs/tests/SConscript b/progs/tests/SConscript
index b1c7c99..037a0c3 100644
--- a/progs/tests/SConscript
+++ b/progs/tests/SConscript
@@ -9,7 +9,6 @@
     'getprocaddress',
     'jkrahntest',
     'sharedtex',
-    'texcompress2',
     'texobjshare',
 ]
 
diff --git a/src/gallium/drivers/i965/SConscript b/src/gallium/drivers/i965/SConscript
index 9c2faaf..d900ea2 100644
--- a/src/gallium/drivers/i965/SConscript
+++ b/src/gallium/drivers/i965/SConscript
@@ -58,6 +58,7 @@
 		'brw_vs_emit.c',
 		'brw_vs_state.c',
 		'brw_vs_surface_state.c',
+		'brw_winsys_debug.c',
 		'brw_wm.c',
 #		'brw_wm_constant_buffer.c',
 		'brw_wm_debug.c',
diff --git a/src/glx/dri2_glx.c b/src/glx/dri2_glx.c
index 5b0f335..14788b8 100644
--- a/src/glx/dri2_glx.c
+++ b/src/glx/dri2_glx.c
@@ -202,6 +202,8 @@
    return &pdraw->base;
 }
 
+#ifdef X_DRI2GetMSC
+
 static int
 dri2DrawableGetMSC(__GLXscreenConfigs *psc, __GLXDRIdrawable *pdraw,
 		   int64_t *ust, int64_t *msc, int64_t *sbc)
@@ -209,6 +211,11 @@
    return DRI2GetMSC(psc->dpy, pdraw->xDrawable, ust, msc, sbc);
 }
 
+#endif
+
+
+#ifdef X_DRI2WaitMSC
+
 static int
 dri2WaitForMSC(__GLXDRIdrawable *pdraw, int64_t target_msc, int64_t divisor,
 	       int64_t remainder, int64_t *ust, int64_t *msc, int64_t *sbc)
@@ -225,6 +232,8 @@
 		      sbc);
 }
 
+#endif /* X_DRI2WaitMSC */
+
 static void
 dri2CopySubBuffer(__GLXDRIdrawable *pdraw, int x, int y, int width, int height)
 {
@@ -448,6 +457,8 @@
    return pdraw->buffers;
 }
 
+#ifdef X_DRI2SwapInterval
+
 static void
 dri2SetSwapInterval(__GLXDRIdrawable *pdraw, int interval)
 {
@@ -465,6 +476,8 @@
   return priv->swap_interval;
 }
 
+#endif /* X_DRI2SwapInterval */
+
 static const __DRIdri2LoaderExtension dri2LoaderExtension = {
    {__DRI_DRI2_LOADER, __DRI_DRI2_LOADER_VERSION},
    dri2GetBuffers,
diff --git a/src/mesa/main/hash.c b/src/mesa/main/hash.c
index 9757754..b624e6e 100644
--- a/src/mesa/main/hash.c
+++ b/src/mesa/main/hash.c
@@ -120,6 +120,31 @@
 
 
 /**
+ * Lookup an entry in the hash table, without locking.
+ * \sa _mesa_HashLookup
+ */
+static INLINE void *
+_mesa_HashLookup_unlocked(struct _mesa_HashTable *table, GLuint key)
+{
+   GLuint pos;
+   const struct HashEntry *entry;
+
+   assert(table);
+   assert(key);
+
+   pos = HASH_FUNC(key);
+   entry = table->Table[pos];
+   while (entry) {
+      if (entry->Key == key) {
+         return entry->Data;
+      }
+      entry = entry->Next;
+   }
+   return NULL;
+}
+
+
+/**
  * Lookup an entry in the hash table.
  * 
  * \param table the hash table.
@@ -130,28 +155,15 @@
 void *
 _mesa_HashLookup(struct _mesa_HashTable *table, GLuint key)
 {
-   GLuint pos;
-   const struct HashEntry *entry;
-
+   void *res;
    assert(table);
-   assert(key);
-
-   pos = HASH_FUNC(key);
    _glthread_LOCK_MUTEX(table->Mutex);
-   entry = table->Table[pos];
-   while (entry) {
-      if (entry->Key == key) {
-         _glthread_UNLOCK_MUTEX(table->Mutex);
-         return entry->Data;
-      }
-      entry = entry->Next;
-   }
+   res = _mesa_HashLookup_unlocked(table, key);
    _glthread_UNLOCK_MUTEX(table->Mutex);
-   return NULL;
+   return res;
 }
 
 
-
 /**
  * Insert a key/pointer pair into the hash table.  
  * If an entry with this key already exists we'll replace the existing entry.
@@ -447,7 +459,7 @@
       GLuint freeStart = 1;
       GLuint key;
       for (key = 1; key != maxKey; key++) {
-	 if (_mesa_HashLookup(table, key)) {
+	 if (_mesa_HashLookup_unlocked(table, key)) {
 	    /* darn, this key is already in use */
 	    freeCount = 0;
 	    freeStart = key+1;