]> git.pld-linux.org Git - packages/Mesa.git/blobdiff - Mesa-git.patch
- typo in BR
[packages/Mesa.git] / Mesa-git.patch
index bf751c8daa3110c89d526907f0152182efa3c9ff..c813d2a778c08a9bef0c21bdf7e5222d113afe42 100644 (file)
-diff --git a/docs/devinfo.html b/docs/devinfo.html
-index df0e726..2d1c125 100644
---- a/docs/devinfo.html
-+++ b/docs/devinfo.html
-@@ -145,7 +145,7 @@ Make sure the values in src/mesa/main/version.h are correct.
- </p>
- <p>
--Update the docs/news.html file and docs/download.html files.
-+Update docs/news.html.
- </p>
- <p>
-@@ -208,10 +208,11 @@ sftp USERNAME,mesa3d@web.sourceforge.net
- <p>
- Make an announcement on the mailing lists:
--<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>,
--<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
-+
-+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>d</em><em>e</em><em>v</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>,
-+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>u</em><em>s</em><em>e</em><em>r</em><em>s</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
- and
--<em>m</em><em>e</em><em>s</em><em>a</em><em>3</em><em>d</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>s</em><em>f</em><em>.</em><em>n</em><em>e</em><em>t</em>
-+<em>m</em><em>e</em><em>s</em><em>a</em><em>-</em><em>a</em><em>n</em><em>n</em><em>o</em><em>u</em><em>n</em><em>c</em><em>e</em><em>@</em><em>l</em><em>i</em><em>s</em><em>t</em><em>s</em><em>.</em><em>f</em><em>r</em><em>e</em><em>e</em><em>d</em><em>e</em><em>s</em><em>k</em><em>t</em><em>o</em><em>p</em><em>.</em><em>o</em><em>r</em><em>g</em>
- </p>
 diff --git a/docs/news.html b/docs/news.html
-index b3fb8b5..72d38ee 100644
+index 72d38ee..ce0cd0c 100644
 --- a/docs/news.html
 +++ b/docs/news.html
-@@ -11,10 +11,18 @@
+@@ -11,6 +11,19 @@
  <H1>News</H1>
  
  
-+<h2>October 4, 2010</h2>
++<h2>January 7, 2011</h2>
 +
 +<p>
-+<a href="relnotes-7.9.html">Mesa 7.9</a> (final) is released.  This is a new
++<a href="relnotes-7.10.html">Mesa 7.10</a> (final) is released.  This is a new
 +development release.
 +</p>
 +
++<p>
++Also, <a href="relnotes-7.9.1.html">Mesa 7.9.1</a> (final) is released.
++This is a bug fix release.
++</p>
++
 +
- <h2>September 27, 2010</h2>
+ <h2>October 4, 2010</h2>
  
  <p>
--<a href="relnotes-7.9.0.html">Mesa 7.9.0-rc1</a> is released.  This is a
-+<a href="relnotes-7.9.html">Mesa 7.9.0-rc1</a> is released.  This is a
- release candidate for the 7.9 development release.
- </p>
+diff --git a/docs/relnotes-7.10.html b/docs/relnotes-7.10.html
+index 2abbc4a..3f4f229 100644
+--- a/docs/relnotes-7.10.html
++++ b/docs/relnotes-7.10.html
+@@ -1,8 +1,10 @@
+ <HTML>
++<head>
+ <TITLE>Mesa Release Notes</TITLE>
+-
+-<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
++<link rel="stylesheet" type="text/css" href="mesa.css">
++<meta http-equiv="content-type" content="text/html; charset=utf-8" />
++</head>
+ <BODY>
  
-diff --git a/docs/relnotes-7.8.2.html b/docs/relnotes-7.8.2.html
-index e1b0f2d..1393b2e 100644
---- a/docs/relnotes-7.8.2.html
-+++ b/docs/relnotes-7.8.2.html
-@@ -26,7 +26,15 @@ for DRI hardware acceleration.
+@@ -28,7 +30,12 @@ for DRI hardware acceleration.
  
  <h2>MD5 checksums</h2>
  <pre>
 -tbd
-+c89b63d253605ed40e8ac370d25a833c  MesaLib-7.8.2.tar.gz
-+6be2d343a0089bfd395ce02aaf8adb57  MesaLib-7.8.2.tar.bz2
-+a04ad3b06ac5ff3969a003fa7bbf7d5b  MesaLib-7.8.2.zip
-+7c213f92efeb471f0331670d5079d4c0  MesaDemos-7.8.2.tar.gz
-+757d9e2e06f48b1a52848be9b0307ced  MesaDemos-7.8.2.tar.bz2
-+8d0e5cfe68b8ebf90265d350ae2c48b1  MesaDemos-7.8.2.zip
-+b74482e3f44f35ed395c4aada4fd8240  MesaGLUT-7.8.2.tar.gz
-+a471807b65e49c325808ba4551be93ed  MesaGLUT-7.8.2.tar.bz2
-+9f190268c42be582ef66e47365ee61e3  MesaGLUT-7.8.2.zip
++0a70c15c135561824bdcae92bf232e43  MesaLib-7.10.tar.gz
++33fb94eccc02cbb4d8d1365615e38e46  MesaLib-7.10.tar.bz2
++5cafdc0eda0f9bf370b95c98df3338fa  MesaLib-7.10.zip
++bc644be551ed585fc4f66c16b64a91c9  MesaGLUT-7.10.tar.gz
++5c2677a155672352d62b177e4f0f92e8  MesaGLUT-7.10.tar.bz2
++2ce5001f74496d1ba719ef74d910a5cf  MesaGLUT-7.10.zip
  </pre>
  
  
-@@ -44,10 +52,95 @@ tbd
- <ul>
- <li>Fixed Gallium glDrawPixels(GL_DEPTH_COMPONENT).
- <li>Fixed Gallium Cell driver to buildable, runable state
-+<li>Fixed bad error checking for glFramebufferRenderbuffer(attachment=GL_DEPTH_STENCIL_ATTACHMENT).
-+<li>Fixed incorrect Z coordinate handling in "meta" glDraw/CopyPixels.
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=23670">Bug
-+    #23670</a>.</li>
-+
-+<li>Assorted i965 driver fixes.
-+    Including but not limited to:
-+  <ul>
-+    <li>Fix scissoring when width or height is
-+    0.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27643">Bug
-+    #27643</a>.
-+    <li>Fix bit allocation for number of color regions for
-+    ARB_draw_buffers.</li>
-+    <li>Set the correct provoking vertex for clipped first-mode
-+    trifans.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24470">Bug
-+    #24470</a>.</li>
-+    <li>Use <code>R16G16B16A16_FLOAT</code> for 3-component half-float.</li>
-+    <li>Fix assertion for surface tile offset usage on Ironlake.</li>
-+    <li>Fix cube map layouts on Ironlake.</li>
-+    <li>When an RB gets a new region, clear the old from the state
-+    cache.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24119">Bug
-+    #24119</a>.</li>
-+    <li>Reject shaders with uninlined function calls instead of hanging.</li>
-+  </ul>
-+</li>
-+
-+<li>Assorted i915 driver fixes.  Including but not limited to:
-+  <ul>
-+    <li>Fixed texture LOD clamping in i915 driver.
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24846">Bug
-+    #24846</a>.</li>
-+    <li>Fix off-by-one for drawing rectangle.
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27408">Bug
-+    #27408</a>.</li>
-+  </ul>
-+</li>
-+
-+<li>Fixed hangs in etracer on 830 and 845
-+    chipsets.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=26557">Bug
-+    #26557</a>.</li>
-+<li>Fixed tiling of small textures on all Intel drivers.</li>
-+<li>Fixed crash in Savage driver when using <code>_mesa_CopyTexImage2D</code>.
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27652">Bug
-+    #27652</a>.</li>
-+
-+<li>Assorted GLX fixes.  Including but not limited to:
-+  <ul>
-+    <li>Fixed <code>__glXInitializeVisualConfigFromTags</code>'s handling of
-+        unrecognized fbconfig tags.</li>
-+    <li>Fixed regression with <code>GLX_USE_GL</code>.
-+    <li>Fixed config chooser logic for 'mask' matching.</li>
-+    <li>Report swap events correctly in direct rendered case (DRI2)</li>
-+    <li>Fixed build with dri2proto which doesn't define
-+        <code>X_DRI2SwapInterval</code>.</li>
-+    <li>Get <code>GLX_SCREEN</code> first in <code>__glXQueryContextInfo</code>.
-+        <a href="https://bugs.freedesktop.org/show_bug.cgi?id=14245">Bug
-+      #14245</a>.</li>
-+  </ul>
-+</li>
-+
-+<li>Assorted GLSL fixes.  Including but not limited to:
-+  <ul>
-+    <li>Change variable declared assertion into conditional in GLSL
-+        compiler.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27921">Bug
-+        #27921</a>.</li>
-+    <li>Fix instruction indexing
-+        bugs.  <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27566">Bug
-+        #27566</a>.</li>
-+    <li>Updated uniform location / offset encoding to be more like
-+        other implementations.</li>
-+    <li>Don't overwrite a driver's shader infolog with generic failure
-+        message.</li>
-+  </ul>
-+</li>
-+
-+<li>Fixed OSMesa build for 16 and 32-bit color channel depth.
-+<li>Fixed OSMesa build with hidden symbol visibility. libOSMesa no longer links to libGL.
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28305">Bug
-+    #28305</a>.
-+<li>Fixed handling of multiple render targets in fixed-function
-+    texture envrionmnent programs.</li>
-+<li>Fixed conversion errors in <code>signed_rgba8888[rev]</code> texel
-+    fetch.</li>
-+<li>Don't set srcLevel on <code>GL_TEXTURE_RECTANGLE_ARB</code> targets.</li>
-+<li>Various build fixes for OpenBSD.</li>
-+<li>Various build fixes for OS X.</li>
-+<li>Various build fixes for GCC 3.3.</li>
- </ul>
--<h2>Changes</h2>
--<p>None.</p>
- </body>
- </html>
-diff --git a/docs/relnotes-7.8.3.html b/docs/relnotes-7.8.3.html
-new file mode 100644
-index 0000000..1e9f433
---- /dev/null
-+++ b/docs/relnotes-7.8.3.html
-@@ -0,0 +1,89 @@
-+<HTML>
-+
-+<TITLE>Mesa Release Notes</TITLE>
-+
-+<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
-+
-+<BODY>
-+
-+<body bgcolor="#eeeeee">
-+
-+<H1>Mesa 7.8.3 Release Notes / (date tbd)</H1>
-+
-+<p>
-+Mesa 7.8.3 is a bug fix release which fixes bugs found since the 7.8.2 release.
-+</p>
-+<p>
-+Mesa 7.8.3 implements the OpenGL 2.1 API, but the version reported by
-+glGetString(GL_VERSION) depends on the particular driver being used.
-+Some drivers don't support all the features required in OpenGL 2.1.
-+</p>
-+<p>
-+See the <a href="install.html">Compiling/Installing page</a> for prerequisites
-+for DRI hardware acceleration.
-+</p>
-+
-+
-+<h2>MD5 checksums</h2>
-+<pre>
-+x  MesaLib-7.8.3.tar.gz
-+x  MesaLib-7.8.3.tar.bz2
-+x  MesaLib-7.8.3.zip
-+x  MesaDemos-7.8.3.tar.gz
-+x  MesaDemos-7.8.3.tar.bz2
-+x  MesaDemos-7.8.3.zip
-+x  MesaGLUT-7.8.3.tar.gz
-+x  MesaGLUT-7.8.3.tar.bz2
-+x  MesaGLUT-7.8.3.zip
-+</pre>
-+
-+
-+<h2>New features</h2>
-+<p>None.</p>
-+
-+
-+<h2>Changes</h2>
-+<ul>
-+<li>The radeon driver should use less memory when searching for a valid mip
-+image.</li>
-+</ul>
-+
-+
-+<h2>Bug fixes</h2>
-+<ul>
-+<li>Fix unsupported FB with D24S8 (bug 
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=23670">29116</a>)</li>
-+<li>Fix ReadPixels crash when reading depth/stencil from an FBO</li>
-+<li>Fixed a bug rendering to 16-bit buffers using swrast.</li>
-+<li>Fixed a state tracker/TGSI bug that caused crashes when using Windows'
-+    memory debugging features.</li>
-+<li>Fixed an issue rendering to 32-bit channels with swrast (bug
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=29487">29487</a>)</li>
-+<li>GLSL: fix indirect <TT>gl_TextureMatrix</TT> addressing (bug
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28967">28967</a>)</li>
-+<li>GLSL: fix for bug
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27216">27216</a></li>
-+<li>GLSL: fix zw fragcoord entries in some cases (bug
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=29183">29183</a>)</li>
-+<li>Fix texture env generation in some cases (bug
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28169">28169</a>)</li>
-+<li>osmesa: a fix for calling <TT>OSMesaMakeCurrent</TT> twice was applied (bug 
-+    <a href="https://bugs.freedesktop.org/show_bug.cgi?id=10966">10966</a></li>
-+<li>A bug was fixed which could cause Mesa to ignore the
-+    <TT>MESA_EXTENSION_OVERRIDE</TT> environment variable.</li>
-+<li>A bug related to specular highlights on backfaces was fixed.</li>
-+<li>A radeon-specific issue with <TT>glCopyTex(Sub)Image</TT> was
-+    corrected.</li>
-+<li>radeon/wine: flush command stream in more cases, fixing wine d3d9
-+    tests.</li>
-+<li>r600: fix sin+cos normalization.</li>
-+<li>r600: (properly) ignore <TT>GL_COORD_REPLACE</TT> when point sprites are
-+    disabled.</li>
-+<li>radeon: avoid flushing when the context is not current.</li>
-+<li>r300c: a bug affecting unaligned BOs was fixed.</li>
-+<li>r300c: a hardlock caused by ARB_half_float_vertex incorrectly advertised on some chipsets.</li>
-+</ul>
-+
-+
-+</body>
-+</html>
-diff --git a/docs/relnotes-7.9.html b/docs/relnotes-7.9.html
-index b09fb1d..fe1fd5e 100644
---- a/docs/relnotes-7.9.html
-+++ b/docs/relnotes-7.9.html
-@@ -28,12 +28,12 @@ for DRI hardware acceleration.
+diff --git a/docs/relnotes-7.9.1.html b/docs/relnotes-7.9.1.html
+index a46eb16..bef4ef1 100644
+--- a/docs/relnotes-7.9.1.html
++++ b/docs/relnotes-7.9.1.html
+@@ -1,8 +1,10 @@
+ <HTML>
  
- <h2>MD5 checksums</h2>
- <pre>
--f1f01a7baec255f13e9468fb4b05922a  MesaLib-7.9-rc1.tar.gz
--7ffbda3b7056c60b8f87e3082d853af1  MesaLib-7.9-rc1.tar.bz2
--9d4650df4e5b530178d6fde840f76664  MesaLib-7.9-rc1.zip
--a81c2e7a0c7832e67c768d6f209f2c8f  MesaGLUT-7.9-rc1.tar.gz
--b4c1c2f0b47a07be10fa2dd42e6a63d7  MesaGLUT-7.9-rc1.tar.bz2
--c9dd7419a19bcb24a1fe556ec2e78451  MesaGLUT-7.9-rc1.zip
-+ed65ab425b25895c7f473d0a5e6e64f8  MesaLib-7.9.tar.gz
-+82c740c49d572baa6da2b1a1eee90bca  MesaLib-7.9.tar.bz2
-+cd2b6ecec759b0457475e94bbb38fedb  MesaLib-7.9.zip
-+7b54af9fb9b1f6a1a65db2520f50848f  MesaGLUT-7.9.tar.gz
-+20d07419d1929f833fdb36bced290ad5  MesaGLUT-7.9.tar.bz2
-+62a7edecd7c92675cd6029b05217eb0a  MesaGLUT-7.9.zip
- </pre>
++<head>
+ <TITLE>Mesa Release Notes</TITLE>
+-
+-<head><link rel="stylesheet" type="text/css" href="mesa.css"></head>
++<link rel="stylesheet" type="text/css" href="mesa.css">
++<meta http-equiv="content-type" content="text/html; charset=utf-8" />
++</head>
  
+ <BODY>
  
 diff --git a/docs/relnotes.html b/docs/relnotes.html
-index 47e7f80..4487af9 100644
+index 4487af9..036d3f8 100644
 --- a/docs/relnotes.html
 +++ b/docs/relnotes.html
-@@ -14,6 +14,7 @@ The release notes summarize what's new or changed in each Mesa release.
+@@ -13,6 +13,8 @@ The release notes summarize what's new or changed in each Mesa release.
+ </p>
  
  <UL>
++<LI><A HREF="relnotes-7.10.html">7.10 release notes</A>
++<LI><A HREF="relnotes-7.9.1html">7.9.1 release notes</A>
  <LI><A HREF="relnotes-7.9.html">7.9 release notes</A>
-+<LI><A HREF="relnotes-7.8.3.html">7.8.3 release notes</A>
+ <LI><A HREF="relnotes-7.8.3.html">7.8.3 release notes</A>
  <LI><A HREF="relnotes-7.8.2.html">7.8.2 release notes</A>
- <LI><A HREF="relnotes-7.8.1.html">7.8.1 release notes</A>
- <LI><A HREF="relnotes-7.8.html">7.8 release notes</A>
-diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
-index c0164da..3bde397 100644
---- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c
-+++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c
-@@ -609,8 +609,10 @@ egl_g3d_wait_client(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx)
-    gctx->stctxi->flush(gctx->stctxi,
-          PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, &fence);
--   screen->fence_finish(screen, fence, 0);
--   screen->fence_reference(screen, &fence, NULL);
-+   if (fence) {
-+      screen->fence_finish(screen, fence, 0);
-+      screen->fence_reference(screen, &fence, NULL);
-+   }
-    return EGL_TRUE;
- }
-diff --git a/src/gallium/state_trackers/vega/vg_manager.c b/src/gallium/state_trackers/vega/vg_manager.c
-index e799674..232deef 100644
---- a/src/gallium/state_trackers/vega/vg_manager.c
-+++ b/src/gallium/state_trackers/vega/vg_manager.c
-@@ -352,7 +352,7 @@ vg_api_create_context(struct st_api *stapi, struct st_manager *smapi,
-       return NULL;
-    /* only 1.0 is supported */
--   if (attribs->major != 1 || attribs->minor > 0)
-+   if (attribs->major > 1 || (attribs->major == 1 && attribs->minor > 0))
-       return NULL;
-    pipe = smapi->screen->context_create(smapi->screen, NULL);
-diff --git a/src/gallium/state_trackers/xorg/Makefile b/src/gallium/state_trackers/xorg/Makefile
-index cb2c3ae..7a44d28 100644
---- a/src/gallium/state_trackers/xorg/Makefile
-+++ b/src/gallium/state_trackers/xorg/Makefile
-@@ -10,7 +10,7 @@ LIBRARY_INCLUDES = \
-       $(shell pkg-config libkms --atleast-version=1.0 \
-                               && echo "-DHAVE_LIBKMS") \
-       $(shell pkg-config libkms --silence-errors --cflags-only-I) \
--      $(shell pkg-config --cflags-only-I pixman-1 xorg-server libdrm xproto) \
-+      $(shell pkg-config --cflags-only-I pixman-1 xorg-server libdrm xproto dri2proto) \
-       -I$(TOP)/src/gallium/include \
-       -I$(TOP)/src/gallium/auxiliary \
-       -I$(TOP)/include \
-diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c
-index 26a907f..80af82d 100644
---- a/src/gallium/state_trackers/xorg/xorg_crtc.c
-+++ b/src/gallium/state_trackers/xorg/xorg_crtc.c
-@@ -234,6 +234,10 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * image)
-                  64, 64, (void*)image, 64 * 4, 0, 0);
-     ms->ctx->transfer_unmap(ms->ctx, transfer);
-     ms->ctx->transfer_destroy(ms->ctx, transfer);
-+
-+    if (crtc->cursor_shown)
-+      drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id,
-+                       crtcp->cursor_handle, 64, 64);
- }
- #if HAVE_LIBKMS
-@@ -271,6 +275,10 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image)
-     memcpy(ptr, image, 64*64*4);
-     kms_bo_unmap(crtcp->cursor_bo);
-+    if (crtc->cursor_shown)
-+      drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id,
-+                       crtcp->cursor_handle, 64, 64);
-+
-     return;
- err_bo_destroy:
-@@ -353,7 +361,7 @@ crtc_destroy(xf86CrtcPtr crtc)
-     drmModeFreeCrtc(crtcp->drm_crtc);
--    xfree(crtcp);
-+    free(crtcp);
-     crtc->driver_private = NULL;
- }
-@@ -401,7 +409,7 @@ xorg_crtc_init(ScrnInfoPtr pScrn)
-       if (crtc == NULL)
-           goto out;
--      crtcp = xcalloc(1, sizeof(struct crtc_private));
-+      crtcp = calloc(1, sizeof(struct crtc_private));
-       if (!crtcp) {
-           xf86CrtcDestroy(crtc);
-           goto out;
-diff --git a/src/gallium/state_trackers/xorg/xorg_dri2.c b/src/gallium/state_trackers/xorg/xorg_dri2.c
-index 704aed6..b723a8e 100644
---- a/src/gallium/state_trackers/xorg/xorg_dri2.c
-+++ b/src/gallium/state_trackers/xorg/xorg_dri2.c
-@@ -201,11 +201,11 @@ dri2_create_buffer(DrawablePtr pDraw, unsigned int attachment, unsigned int form
-     DRI2Buffer2Ptr buffer;
-     BufferPrivatePtr private;
--    buffer = xcalloc(1, sizeof *buffer);
-+    buffer = calloc(1, sizeof *buffer);
-     if (!buffer)
-       return NULL;
--    private = xcalloc(1, sizeof *private);
-+    private = calloc(1, sizeof *private);
-     if (!private) {
-       goto fail;
+diff --git a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
+index 3f66f96..75dba8c 100644
+--- a/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
++++ b/src/gallium/auxiliary/draw/draw_pt_vsplit_tmp.h
+@@ -258,9 +258,10 @@ vsplit_segment_fan_linear(struct vsplit_frontend *vsplit, unsigned flags,
+    boolean use_spoken = ((flags & DRAW_SPLIT_BEFORE) != 0);
+    unsigned nr = 0, i;
+-   assert(icount + !!use_spoken <= vsplit->segment_size);
++   assert(icount <= vsplit->segment_size);
+    if (use_spoken) {
++      /* replace istart by i0 */
+       vsplit->fetch_elts[nr++] = i0;
+       for (i = 1 ; i < icount; i++)
+          vsplit->fetch_elts[nr++] = istart + i;
+diff --git a/src/mesa/drivers/dri/r600/r700_assembler.c b/src/mesa/drivers/dri/r600/r700_assembler.c
+index bee9c3b..024853c 100644
+--- a/src/mesa/drivers/dri/r600/r700_assembler.c
++++ b/src/mesa/drivers/dri/r600/r700_assembler.c
+@@ -481,6 +481,8 @@ unsigned int EG_GetNumOperands(GLuint opcode, GLuint nIsOp3)
+     case EG_OP2_INST_FLT_TO_INT:
+     case EG_OP2_INST_SIN:
+     case EG_OP2_INST_COS:
++    case EG_OP2_INST_FLT_TO_INT_FLOOR:
++    case EG_OP2_INST_MOVA_INT:
+         return 1;
+         
+     default: radeon_error(
+@@ -3297,23 +3299,76 @@ GLboolean assemble_ARL(r700_AssemblerBase *pAsm)
+         return GL_FALSE;
      }
-@@ -217,9 +217,9 @@ dri2_create_buffer(DrawablePtr pDraw, unsigned int attachment, unsigned int form
-     if (dri2_do_create_buffer(pDraw, (DRI2BufferPtr)buffer, format))
-       return buffer;
--    xfree(private);
-+    free(private);
- fail:
--    xfree(buffer);
-+    free(buffer);
-     return NULL;
- }
-@@ -229,8 +229,8 @@ dri2_destroy_buffer(DrawablePtr pDraw, DRI2Buffer2Ptr buffer)
-     /* So far it is safe to downcast a DRI2Buffer2Ptr to DRI2BufferPtr */
-     dri2_do_destroy_buffer(pDraw, (DRI2BufferPtr)buffer);
--    xfree(buffer->driverPrivate);
--    xfree(buffer);
-+    free(buffer->driverPrivate);
-+    free(buffer);
- }
- #endif /* DRI2INFOREC_VERSION >= 2 */
-@@ -244,11 +244,11 @@ dri2_create_buffers(DrawablePtr pDraw, unsigned int *attachments, int count)
-     DRI2BufferPtr buffers;
-     int i;
--    buffers = xcalloc(count, sizeof *buffers);
-+    buffers = calloc(count, sizeof *buffers);
-     if (!buffers)
-       goto fail_buffers;
--    privates = xcalloc(count, sizeof *privates);
-+    privates = calloc(count, sizeof *privates);
-     if (!privates)
-       goto fail_privates;
-@@ -263,9 +263,9 @@ dri2_create_buffers(DrawablePtr pDraw, unsigned int *attachments, int count)
-     return buffers;
  
- fail:
--    xfree(privates);
-+    free(privates);
- fail_privates:
--    xfree(buffers);
-+    free(buffers);
- fail_buffers:
-     return NULL;
- }
-@@ -280,8 +280,8 @@ dri2_destroy_buffers(DrawablePtr pDraw, DRI2BufferPtr buffers, int count)
-     }
-     if (buffers) {
--      xfree(buffers[0].driverPrivate);
--      xfree(buffers);
-+      free(buffers[0].driverPrivate);
-+      free(buffers);
-     }
- }
-diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c
-index e10ff2f..1ec772d 100644
---- a/src/gallium/state_trackers/xorg/xorg_driver.c
-+++ b/src/gallium/state_trackers/xorg/xorg_driver.c
-@@ -45,6 +45,7 @@
- #include "miscstruct.h"
- #include "dixstruct.h"
- #include "xf86xv.h"
-+#include "xorgVersion.h"
- #ifndef XSERVER_LIBPCIACCESS
- #error "libpciaccess needed"
- #endif
-@@ -122,7 +123,7 @@ xorg_tracker_set_functions(ScrnInfoPtr scrn)
- Bool
- xorg_tracker_have_modesetting(ScrnInfoPtr pScrn, struct pci_device *device)
- {
--    char *BusID = xalloc(64);
-+    char *BusID = malloc(64);
-     sprintf(BusID, "pci:%04x:%02x:%02x.%d",
-           device->domain, device->bus,
-           device->dev, device->func);
-@@ -130,14 +131,14 @@ xorg_tracker_have_modesetting(ScrnInfoPtr pScrn, struct pci_device *device)
-     if (drmCheckModesettingSupported(BusID)) {
-       xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0,
-                      "Drm modesetting not supported %s\n", BusID);
--      xfree(BusID);
-+      free(BusID);
-       return FALSE;
-     }
-     xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 0,
-                  "Drm modesetting supported on %s\n", BusID);
--    xfree(BusID);
-+    free(BusID);
-     return TRUE;
- }
-@@ -174,7 +175,7 @@ drv_free_rec(ScrnInfoPtr pScrn)
-     if (!pScrn->driverPrivate)
-       return;
--    xfree(pScrn->driverPrivate);
-+    free(pScrn->driverPrivate);
-     pScrn->driverPrivate = NULL;
- }
-@@ -274,7 +275,7 @@ drv_init_drm(ScrnInfoPtr pScrn)
-     if (ms->fd < 0) {
-       char *BusID;
--      BusID = xalloc(64);
-+      BusID = malloc(64);
-       sprintf(BusID, "PCI:%d:%d:%d",
-               ((ms->PciInfo->domain << 8) | ms->PciInfo->bus),
-               ms->PciInfo->dev, ms->PciInfo->func
-@@ -283,7 +284,7 @@ drv_init_drm(ScrnInfoPtr pScrn)
-       ms->fd = drmOpen(driver_descriptor.driver_name, BusID);
-       ms->isMaster = TRUE;
--      xfree(BusID);
-+      free(BusID);
-       if (ms->fd >= 0)
-           return TRUE;
-@@ -369,6 +370,7 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags)
-     ms = modesettingPTR(pScrn);
-     ms->pEnt = pEnt;
-     ms->cust = cust;
-+    ms->fb_id = -1;
-     pScrn->displayWidth = 640;               /* default it */
-@@ -402,19 +404,6 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags)
-     if (!drv_init_drm(pScrn))
-       return FALSE;
--    use3D = cust ? !cust->no_3d : TRUE;
--    ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL,
--                                  &use3D) ?
--      X_CONFIG : X_PROBED;
--
--    ms->no3D = !use3D;
+-    pAsm->D.dst.opcode = SQ_OP2_INST_MOVA_FLOOR;
+-    setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
+-    pAsm->D.dst.rtype = DST_REG_TEMPORARY;
+-    pAsm->D.dst.reg = 0;
+-    pAsm->D.dst.writex = 0;
+-    pAsm->D.dst.writey = 0;
+-    pAsm->D.dst.writez = 0;
+-    pAsm->D.dst.writew = 0;
 -
--    if (!drv_init_resource_management(pScrn)) {
--      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init "
--                                             "Gallium3D or libKMS.");
--      return FALSE;
+-    if( GL_FALSE == assemble_src(pAsm, 0, -1) )
++    if(8 == pAsm->unAsic)
+     {
+-        return GL_FALSE;
 -    }
--
-     pScrn->monitor = pScrn->confScreen->monitor;
-     pScrn->progClock = TRUE;
-     pScrn->rgbBits = 8;
-@@ -444,11 +433,24 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags)
-     /* Process the options */
-     xf86CollectOptions(pScrn, NULL);
--    if (!(ms->Options = xalloc(sizeof(drv_options))))
-+    if (!(ms->Options = malloc(sizeof(drv_options))))
-       return FALSE;
-     memcpy(ms->Options, drv_options, sizeof(drv_options));
-     xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, ms->Options);
-+    use3D = cust ? !cust->no_3d : TRUE;
-+    ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL,
-+                                  &use3D) ?
-+      X_CONFIG : X_PROBED;
-+
-+    ms->no3D = !use3D;
-+
-+    if (!drv_init_resource_management(pScrn)) {
-+      xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init "
-+                                             "Gallium3D or libKMS.");
-+      return FALSE;
++        /* Evergreen */
+-    if( GL_FALSE == next_ins(pAsm) )
++        /* Float to Signed Integer Using FLOOR */
++        pAsm->D.dst.opcode = EG_OP2_INST_FLT_TO_INT_FLOOR;
++        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
++        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
++        pAsm->D.dst.reg = 0;
++        pAsm->D.dst.writex = 0;
++        pAsm->D.dst.writey = 0;
++        pAsm->D.dst.writez = 0;
++        pAsm->D.dst.writew = 0;
++
++        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
++        {
++            return GL_FALSE;
++        }
++
++        if( GL_FALSE == next_ins(pAsm) )
++        {
++            return GL_FALSE;
++        }
++
++        /* Copy Signed Integer To Integer in AR and GPR */
++        pAsm->D.dst.opcode = EG_OP2_INST_MOVA_INT;
++        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
++        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
++        pAsm->D.dst.reg = 0;
++        pAsm->D.dst.writex = 0;
++        pAsm->D.dst.writey = 0;
++        pAsm->D.dst.writez = 0;
++        pAsm->D.dst.writew = 0;
++
++        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
++        {
++            return GL_FALSE;
++        }
++
++        if( GL_FALSE == next_ins(pAsm) )
++        {
++            return GL_FALSE;
++        }
 +    }
-+
-     /* Allocate an xf86CrtcConfig */
-     xf86CrtcConfigInit(pScrn, &crtc_config_funcs);
-     xf86_config = XF86_CRTC_CONFIG_PTR(pScrn);
-@@ -791,7 +793,9 @@ drv_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
-     if (!ms->SWCursor)
-       xf86_cursors_init(pScreen, 64, 64,
-                         HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 |
--                        HARDWARE_CURSOR_ARGB);
-+                        HARDWARE_CURSOR_ARGB |
-+                        ((cust && cust->unhidden_hw_cursor_update) ?
-+                         HARDWARE_CURSOR_UPDATE_UNHIDDEN : 0));
-     /* Must force it before EnterVT, so we are in control of VT and
-      * later memory should be bound when allocating, e.g rotate_mem */
-@@ -862,8 +866,10 @@ drv_leave_vt(int scrnIndex, int flags)
-       }
++    else
+     {
+-        return GL_FALSE;
++        /* r6xx/r7xx */
++
++        /* Truncate floating-point to the nearest integer
++           in the range [-256, +255], and copy to AR and
++           to a GPR.
++        */
++        pAsm->D.dst.opcode = SQ_OP2_INST_MOVA_FLOOR;
++        setaddrmode_PVSDST(&(pAsm->D.dst), ADDR_ABSOLUTE);
++        pAsm->D.dst.rtype = DST_REG_TEMPORARY;
++        pAsm->D.dst.reg = 0;
++        pAsm->D.dst.writex = 0;
++        pAsm->D.dst.writey = 0;
++        pAsm->D.dst.writez = 0;
++        pAsm->D.dst.writew = 0;
++
++        if( GL_FALSE == assemble_src(pAsm, 0, -1) )
++        {
++            return GL_FALSE;
++        }
++
++        if( GL_FALSE == next_ins(pAsm) )
++        {
++            return GL_FALSE;
++        }
      }
  
--    drmModeRmFB(ms->fd, ms->fb_id);
--    ms->fb_id = -1;
-+    if (ms->fb_id != -1) {
-+      drmModeRmFB(ms->fd, ms->fb_id);
-+      ms->fb_id = -1;
-+    }
-     /* idle hardware */
-     if (!ms->kms)
-@@ -944,7 +950,6 @@ drv_close_screen(int scrnIndex, ScreenPtr pScreen)
-     }
- #endif
--    drmModeRmFB(ms->fd, ms->fb_id);
-     ms->destroy_front_buffer(pScrn);
-     if (ms->exa)
-@@ -1178,6 +1183,8 @@ drv_bind_front_buffer_kms(ScrnInfoPtr pScrn)
-                               stride,
-                               ptr);
-+#if (XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1, 9, 99, 1, 0))
-+
-     /* This a hack to work around EnableDisableFBAccess setting the pointer
-      * the real fix would be to replace pScrn->EnableDisableFBAccess hook
-      * and set the rootPixmap->devPrivate.ptr to something valid before that.
-@@ -1187,6 +1194,8 @@ drv_bind_front_buffer_kms(ScrnInfoPtr pScrn)
-      */
-     pScrn->pixmapPrivate.ptr = ptr;
-+#endif
-+
-     return TRUE;
- err_destroy:
-diff --git a/src/gallium/state_trackers/xorg/xorg_exa.c b/src/gallium/state_trackers/xorg/xorg_exa.c
-index 6b2c80f..0e5693d 100644
---- a/src/gallium/state_trackers/xorg/xorg_exa.c
-+++ b/src/gallium/state_trackers/xorg/xorg_exa.c
-@@ -720,7 +720,7 @@ ExaCreatePixmap(ScreenPtr pScreen, int size, int align)
- {
-     struct exa_pixmap_priv *priv;
--    priv = xcalloc(1, sizeof(struct exa_pixmap_priv));
-+    priv = calloc(1, sizeof(struct exa_pixmap_priv));
-     if (!priv)
-       return NULL;
-@@ -737,7 +737,7 @@ ExaDestroyPixmap(ScreenPtr pScreen, void *dPriv)
-     pipe_resource_reference(&priv->tex, NULL);
--    xfree(priv);
-+    free(priv);
- }
- static Bool
-@@ -975,7 +975,7 @@ xorg_exa_close(ScrnInfoPtr pScrn)
-    ms->ctx = NULL;
-    exaDriverFini(pScrn->pScreen);
--   xfree(exa);
-+   free(exa);
-    ms->exa = NULL;
- }
-@@ -987,7 +987,7 @@ xorg_exa_init(ScrnInfoPtr pScrn, Bool accel)
-    ExaDriverPtr pExa;
-    CustomizerPtr cust = ms->cust;
--   exa = xcalloc(1, sizeof(struct exa_context));
-+   exa = calloc(1, sizeof(struct exa_context));
-    if (!exa)
-       return NULL;
-diff --git a/src/gallium/state_trackers/xorg/xorg_output.c b/src/gallium/state_trackers/xorg/xorg_output.c
-index 61206ed..5555b51 100644
---- a/src/gallium/state_trackers/xorg/xorg_output.c
-+++ b/src/gallium/state_trackers/xorg/xorg_output.c
-@@ -128,7 +128,7 @@ output_get_modes(xf86OutputPtr output)
-     for (i = 0; i < drm_connector->count_modes; i++) {
-       drm_mode = &drm_connector->modes[i];
-       if (drm_mode) {
--          mode = xcalloc(1, sizeof(DisplayModeRec));
-+          mode = calloc(1, sizeof(DisplayModeRec));
-           if (!mode)
-               continue;
-           mode->Clock = drm_mode->clock;
-@@ -195,7 +195,7 @@ output_destroy(xf86OutputPtr output)
- {
-     struct output_private *priv = output->driver_private;
-     drmModeFreeConnector(priv->drm_connector);
--    xfree(priv);
-+    free(priv);
-     output->driver_private = NULL;
- }
-@@ -262,14 +262,14 @@ xorg_output_init(ScrnInfoPtr pScrn)
-                drm_connector->connector_type_id);
--      priv = xcalloc(sizeof(*priv), 1);
-+      priv = calloc(sizeof(*priv), 1);
-       if (!priv) {
-           continue;
-       }
-       output = xf86OutputCreate(pScrn, &output_funcs, name);
-       if (!output) {
--          xfree(priv);
-+          free(priv);
-           continue;
-       }
-diff --git a/src/gallium/state_trackers/xorg/xorg_tracker.h b/src/gallium/state_trackers/xorg/xorg_tracker.h
-index be1a9fd..a3fb5e5 100644
---- a/src/gallium/state_trackers/xorg/xorg_tracker.h
-+++ b/src/gallium/state_trackers/xorg/xorg_tracker.h
-@@ -76,6 +76,7 @@ typedef struct _CustomizerRec
-     Bool dirty_throttling;
-     Bool swap_throttling;
-     Bool no_3d;
-+    Bool unhidden_hw_cursor_update;
-     Bool (*winsys_pre_init) (struct _CustomizerRec *cust, int fd);
-     Bool (*winsys_screen_init)(struct _CustomizerRec *cust);
-     Bool (*winsys_screen_close)(struct _CustomizerRec *cust);
-diff --git a/src/gallium/state_trackers/xorg/xorg_xv.c b/src/gallium/state_trackers/xorg/xorg_xv.c
-index f98bd93..f64959f 100644
---- a/src/gallium/state_trackers/xorg/xorg_xv.c
-+++ b/src/gallium/state_trackers/xorg/xorg_xv.c
-@@ -536,8 +536,10 @@ display_video(ScrnInfoPtr pScrn, struct xorg_xv_port_priv *pPriv, int id,
-    dst_surf = xorg_gpu_surface(pPriv->r->pipe->screen, dst);
-    hdtv = ((src_w >= RES_720P_X) && (src_h >= RES_720P_Y));
-+#ifdef COMPOSITE
-    REGION_TRANSLATE(pScrn->pScreen, dstRegion, -pPixmap->screen_x,
-                     -pPixmap->screen_y);
-+#endif
-    dxo = dstRegion->extents.x1;
-    dyo = dstRegion->extents.y1;
-@@ -562,11 +564,16 @@ display_video(ScrnInfoPtr pScrn, struct xorg_xv_port_priv *pPriv, int id,
-       int box_y2 = pbox->y2;
-       float diff_x = (float)src_w / (float)dst_w;
-       float diff_y = (float)src_h / (float)dst_h;
--      float offset_x = box_x1 - dstX + pPixmap->screen_x;
--      float offset_y = box_y1 - dstY + pPixmap->screen_y;
-+      float offset_x = box_x1 - dstX;
-+      float offset_y = box_y1 - dstY;
-       float offset_w;
-       float offset_h;
-+#ifdef COMPOSITE
-+      offset_x += pPixmap->screen_x;
-+      offset_y += pPixmap->screen_y;
-+#endif
-+
-       x = box_x1;
-       y = box_y1;
-       w = box_x2 - box_x1;
-diff --git a/src/gallium/targets/Makefile.xorg b/src/gallium/targets/Makefile.xorg
-index 762c905..87eedd7 100644
---- a/src/gallium/targets/Makefile.xorg
-+++ b/src/gallium/targets/Makefile.xorg
-@@ -29,7 +29,7 @@ INCLUDES = \
- LIBNAME_STAGING = $(TOP)/$(LIB_DIR)/gallium/$(TARGET)
- ifeq ($(MESA_LLVM),1)
--LD = g++
-+LD = $(CXX)
- LDFLAGS += $(LLVM_LDFLAGS)
- USE_CXX=1
- DRIVER_PIPES += $(TOP)/src/gallium/drivers/llvmpipe/libllvmpipe.a
-@@ -42,7 +42,7 @@ endif
- default: depend $(TOP)/$(LIB_DIR)/gallium $(LIBNAME) $(LIBNAME_STAGING)
- $(LIBNAME): $(OBJECTS) Makefile ../Makefile.xorg $(LIBS) $(DRIVER_PIPES)
--      $(MKLIB) -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS)
-+      $(MKLIB) -linker $(CC) -noprefix -o $@ $(LDFLAGS) $(OBJECTS) $(DRIVER_PIPES) $(GALLIUM_AUXILIARIES) $(DRIVER_LINKS)
- depend: $(C_SOURCES) $(CPP_SOURCES) $(ASM_SOURCES) $(SYMLINKS) $(GENERATED_SOURCES)
-       rm -f depend
-diff --git a/src/gallium/targets/egl/Makefile b/src/gallium/targets/egl/Makefile
-index 47c24ce..38e60db 100644
---- a/src/gallium/targets/egl/Makefile
-+++ b/src/gallium/targets/egl/Makefile
-@@ -24,7 +24,9 @@ common_CPPFLAGS := \
-       -I$(TOP)/src/gallium/auxiliary \
-       -I$(TOP)/src/gallium/drivers \
-       -I$(TOP)/src/gallium/include \
--      -I$(TOP)/src/gallium/winsys
-+      -I$(TOP)/src/gallium/winsys \
-+      $(LIBDRM_CFLAGS)
-+
- common_SYS :=
- common_LIBS := \
-       $(TOP)/src/gallium/drivers/identity/libidentity.a \
-@@ -41,11 +43,11 @@ egl_SYS := -lm $(DLOPEN_LIBS) -L$(TOP)/$(LIB_DIR) -lEGL
- egl_LIBS := $(TOP)/src/gallium/state_trackers/egl/libegl.a
- ifneq ($(findstring x11, $(EGL_PLATFORMS)),)
--egl_SYS += -lX11 -lXext -lXfixes
-+egl_SYS += -lX11 -lXext -lXfixes $(LIBDRM_LIB)
- egl_LIBS += $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a
- endif
--ifneq ($(findstring kms, $(EGL_PLATFORMS)),)
--egl_SYS += -ldrm
-+ifneq ($(findstring drm, $(EGL_PLATFORMS)),)
-+egl_SYS += $(LIBDRM_LIB)
- endif
- ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),)
- egl_LIBS += $(TOP)/src/gallium/winsys/sw/fbdev/libfbdev.a
-diff --git a/src/gallium/targets/egl/pipe_i965.c b/src/gallium/targets/egl/pipe_i965.c
-index 43bf646..36b03b3 100644
---- a/src/gallium/targets/egl/pipe_i965.c
-+++ b/src/gallium/targets/egl/pipe_i965.c
-@@ -1,6 +1,7 @@
- #include "target-helpers/inline_wrapper_sw_helper.h"
- #include "target-helpers/inline_debug_helper.h"
-+#include "target-helpers/inline_wrapper_sw_helper.h"
- #include "state_tracker/drm_driver.h"
- #include "i965/drm/i965_drm_public.h"
- #include "i965/brw_public.h"
-diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c
-index 237b308..9b422e6 100644
---- a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c
-+++ b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c
-@@ -32,6 +32,7 @@
-  *      allows X clients to communicate with the driver.
-  */
-+#include <xorg-server.h>
- #include "dixstruct.h"
- #include "extnsionst.h"
- #include <X11/X.h>
-@@ -211,7 +212,7 @@ VMwareCtrlDoSetTopology(ScrnInfoPtr pScrn,
-    struct vmw_customizer *vmw = vmw_customizer(xorg_customizer(pScrn));
-    int i;
--   rects = xcalloc(number, sizeof(*rects));
-+   rects = calloc(number, sizeof(*rects));
-    if (!rects)
-       return FALSE;
-@@ -224,7 +225,7 @@ VMwareCtrlDoSetTopology(ScrnInfoPtr pScrn,
-    vmw_ioctl_update_layout(vmw, number, rects);
--   xfree(rects);
-+   free(rects);
-    return TRUE;
- }
-diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
-index 7c799b5..7625d2f 100644
---- a/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
-+++ b/src/gallium/targets/xorg-vmwgfx/vmw_ioctl.c
-@@ -165,7 +165,7 @@ vmw_ioctl_buffer_create(struct vmw_customizer *vmw, uint32_t size, unsigned *han
-     struct drm_vmw_dmabuf_rep *rep = &arg.rep;
-     int ret;
--    buf = xcalloc(1, sizeof(*buf));
-+    buf = calloc(1, sizeof(*buf));
-     if (!buf)
-       goto err;
-@@ -192,7 +192,7 @@ vmw_ioctl_buffer_create(struct vmw_customizer *vmw, uint32_t size, unsigned *han
-     return buf;
- err_free:
--    xfree(buf);
-+    free(buf);
- err:
-     return NULL;
- }
-@@ -211,7 +211,7 @@ vmw_ioctl_buffer_destroy(struct vmw_customizer *vmw, struct vmw_dma_buffer *buf)
-     arg.handle = buf->handle; 
-     drmCommandWrite(vmw->fd, DRM_VMW_UNREF_DMABUF, &arg, sizeof(arg)); 
--    xfree(buf); 
-+    free(buf);
- } 
- void *
-diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_screen.c b/src/gallium/targets/xorg-vmwgfx/vmw_screen.c
-index 8173908..7662203 100644
---- a/src/gallium/targets/xorg-vmwgfx/vmw_screen.c
-+++ b/src/gallium/targets/xorg-vmwgfx/vmw_screen.c
-@@ -245,6 +245,7 @@ vmw_screen_pre_init(ScrnInfoPtr pScrn, int flags)
-     cust->winsys_enter_vt = vmw_screen_enter_vt;
-     cust->winsys_leave_vt = vmw_screen_leave_vt;
-     cust->no_3d = TRUE;
-+    cust->unhidden_hw_cursor_update = TRUE;
-     vmw->pScrn = pScrn;
-     pScrn->driverPrivate = cust;
-diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_video.c b/src/gallium/targets/xorg-vmwgfx/vmw_video.c
-index eced60d..94465e5 100644
---- a/src/gallium/targets/xorg-vmwgfx/vmw_video.c
-+++ b/src/gallium/targets/xorg-vmwgfx/vmw_video.c
-@@ -300,7 +300,7 @@ vmw_video_init(struct vmw_customizer *vmw)
-         numAdaptors = 1;
-         overlayAdaptors = &newAdaptor;
-     } else {
--         newAdaptors = xalloc((numAdaptors + 1) *
-+         newAdaptors = malloc((numAdaptors + 1) *
-                               sizeof(XF86VideoAdaptorPtr*));
-          if (!newAdaptors) {
-             xf86XVFreeVideoAdaptorRec(newAdaptor);
-@@ -320,7 +320,7 @@ vmw_video_init(struct vmw_customizer *vmw)
-     }
-     if (newAdaptors) {
--        xfree(newAdaptors);
-+        free(newAdaptors);
-     }
-     debug_printf("Initialized VMware Xv extension successfully\n");
-@@ -438,7 +438,7 @@ vmw_video_init_adaptor(ScrnInfoPtr pScrn, struct vmw_customizer *vmw)
-         return NULL;
-     }
--    video = xcalloc(1, sizeof(*video));
-+    video = calloc(1, sizeof(*video));
-     if (!video) {
-         debug_printf("Not enough memory.\n");
-         xf86XVFreeVideoAdaptorRec(adaptor);
-@@ -742,7 +742,7 @@ vmw_video_buffer_alloc(struct vmw_customizer *vmw, int size,
-     }
-     out->size = size;
--    out->extra_data = xcalloc(1, size);
-+    out->extra_data = calloc(1, size);
-     debug_printf("\t\t%s: allocated buffer %p of size %i\n", __func__, out, size);
-@@ -773,7 +773,7 @@ vmw_video_buffer_free(struct vmw_customizer *vmw,
-     if (out->size == 0)
-       return Success;
--    xfree(out->extra_data);
-+    free(out->extra_data);
-     vmw_ioctl_buffer_unmap(vmw, out->buf);
-     vmw_ioctl_buffer_destroy(vmw, out->buf);
-diff --git a/src/mesa/Makefile b/src/mesa/Makefile
-index c41c38c..7a6936e 100644
---- a/src/mesa/Makefile
-+++ b/src/mesa/Makefile
-@@ -34,7 +34,7 @@ ES1_CPPFLAGS := -DFEATURE_ES1=1 $(DEFINES)
- ES2_CPPFLAGS := -DFEATURE_ES2=1 $(DEFINES)
- # append include dirs
--MESA_CPPFLAGS += $(INCLUDE_DIRS)
-+MESA_CPPFLAGS += $(INCLUDE_DIRS) $(TALLOC_CFLAGS)
- ES1_CPPFLAGS += -I$(TOP)/src/mapi/es1api $(INCLUDE_DIRS)
- ES2_CPPFLAGS += -I$(TOP)/src/mapi/es2api $(INCLUDE_DIRS)
-diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.c b/src/mesa/drivers/dri/r200/r200_swtcl.c
-index dbf4ad4..160e7e7 100644
---- a/src/mesa/drivers/dri/r200/r200_swtcl.c
-+++ b/src/mesa/drivers/dri/r200/r200_swtcl.c
-@@ -319,10 +319,9 @@ static INLINE GLuint reduced_hw_prim( GLcontext *ctx, GLuint prim)
- {
-    switch (prim) {
-    case GL_POINTS:
--      return (ctx->Point.PointSprite ||
--       ((ctx->_TriangleCaps & (DD_POINT_SIZE | DD_POINT_ATTEN)) &&
--       !(ctx->_TriangleCaps & (DD_POINT_SMOOTH)))) ?
--       R200_VF_PRIM_POINT_SPRITES : R200_VF_PRIM_POINTS;
-+      return (((R200_CONTEXT(ctx))->radeon.radeonScreen->drmSupportsPointSprites &&
-+              !(ctx->_TriangleCaps & DD_POINT_SMOOTH)) ?
-+       R200_VF_PRIM_POINT_SPRITES : R200_VF_PRIM_POINTS);
-    case GL_LINES:
-    /* fallthrough */
-    case GL_LINE_LOOP:
-@@ -613,6 +612,9 @@ static void r200RasterPrimitive( GLcontext *ctx, GLuint hwprim )
-    r200ContextPtr rmesa = R200_CONTEXT(ctx);
-    radeon_prepare_render(&rmesa->radeon);
-+   if (rmesa->radeon.NewGLState)
-+      r200ValidateState( ctx );
-+
-    if (rmesa->radeon.swtcl.hw_primitive != hwprim) {
-       /* need to disable perspective-correct texturing for point sprites */
-diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c
-index 4ae0f30..2743997 100644
---- a/src/mesa/drivers/dri/r200/r200_tcl.c
-+++ b/src/mesa/drivers/dri/r200/r200_tcl.c
-@@ -68,9 +68,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- #define HAVE_ELTS        1
--#define HW_POINTS           ((ctx->Point.PointSprite || \
--                              ((ctx->_TriangleCaps & (DD_POINT_SIZE | DD_POINT_ATTEN)) && \
--                              !(ctx->_TriangleCaps & (DD_POINT_SMOOTH)))) ? \
-+#define HW_POINTS           (((R200_CONTEXT(ctx))->radeon.radeonScreen->drmSupportsPointSprites && \
-+                            !(ctx->_TriangleCaps & DD_POINT_SMOOTH)) ? \
-                               R200_VF_PRIM_POINT_SPRITES : R200_VF_PRIM_POINTS)
- #define HW_LINES            R200_VF_PRIM_LINES
- #define HW_LINE_LOOP        0
-@@ -265,6 +264,8 @@ void r200TclPrimitive( GLcontext *ctx,
-    GLuint newprim = hw_prim | R200_VF_TCL_OUTPUT_VTX_ENABLE;
-    radeon_prepare_render(&rmesa->radeon);
-+   if (rmesa->radeon.NewGLState)
-+      r200ValidateState( ctx );
-    if (newprim != rmesa->tcl.hw_primitive ||
-        !discrete_prim[hw_prim&0xf]) {
-diff --git a/src/mesa/drivers/dri/r300/r300_draw.c b/src/mesa/drivers/dri/r300/r300_draw.c
-index 5ae9f49..767778b 100644
---- a/src/mesa/drivers/dri/r300/r300_draw.c
-+++ b/src/mesa/drivers/dri/r300/r300_draw.c
-@@ -717,6 +717,10 @@ static void r300DrawPrims(GLcontext *ctx,
-                        GLuint max_index)
- {
-       GLboolean retval;
-+      struct r300_context *r300 = R300_CONTEXT(ctx);
-+      radeonContextPtr radeon = &r300->radeon;
-+
-+      radeon_prepare_render(radeon);
-       /* This check should get folded into just the places that
-        * min/max index are really needed.
-diff --git a/src/mesa/drivers/dri/r300/r300_render.c b/src/mesa/drivers/dri/r300/r300_render.c
-index cf89ab7..bb8f914 100644
---- a/src/mesa/drivers/dri/r300/r300_render.c
-+++ b/src/mesa/drivers/dri/r300/r300_render.c
-@@ -327,8 +327,6 @@ void r300RunRenderPrimitive(GLcontext * ctx, int start, int end, int prim)
-       BATCH_LOCALS(&rmesa->radeon);
-       int type, num_verts;
--      radeon_prepare_render(&rmesa->radeon);
--
-       type = r300PrimitiveType(rmesa, prim);
-       num_verts = r300NumVerts(rmesa, end - start, prim);
-diff --git a/src/mesa/drivers/dri/r600/evergreen_render.c b/src/mesa/drivers/dri/r600/evergreen_render.c
-index 27089bf..1fa53d7 100644
---- a/src/mesa/drivers/dri/r600/evergreen_render.c
-+++ b/src/mesa/drivers/dri/r600/evergreen_render.c
-@@ -909,6 +909,10 @@ static void evergreenDrawPrims(GLcontext *ctx,
- {
-       GLboolean retval = GL_FALSE;
-+      context_t *context = EVERGREEN_CONTEXT(ctx);
-+      radeonContextPtr radeon = &context->radeon;
-+      radeon_prepare_render(radeon);
-+
-       /* This check should get folded into just the places that
-        * min/max index are really needed.
-        */
-diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c
-index 85e4988..d4c7864 100644
---- a/src/mesa/drivers/dri/radeon/radeon_common_context.c
-+++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c
-@@ -251,9 +251,9 @@ GLboolean radeonInitContext(radeonContextPtr radeon,
-                       radeon->texture_rect_row_align = 512;
-                       radeon->texture_compressed_row_align = 512;
-               } else {
--                      radeon->texture_row_align = 256;
--                      radeon->texture_rect_row_align = 256;
--                      radeon->texture_compressed_row_align = 256;
-+                      radeon->texture_row_align = radeon->radeonScreen->group_bytes;
-+                      radeon->texture_rect_row_align = radeon->radeonScreen->group_bytes;
-+                      radeon->texture_compressed_row_align = radeon->radeonScreen->group_bytes;
-               }
-       } else if (IS_R200_CLASS(radeon->radeonScreen) ||
-                  IS_R100_CLASS(radeon->radeonScreen)) {
-@@ -521,6 +521,7 @@ void radeon_prepare_render(radeonContextPtr radeon)
-     __DRIcontext *driContext = radeon->dri.context;
-     __DRIdrawable *drawable;
-     __DRIscreen *screen;
-+    struct radeon_framebuffer *draw;
-     screen = driContext->driScreenPriv;
-     if (!screen->dri2.loader)
-@@ -531,9 +532,10 @@ void radeon_prepare_render(radeonContextPtr radeon)
-       if (drawable->lastStamp != drawable->dri2.stamp)
-           radeon_update_renderbuffers(driContext, drawable, GL_FALSE);
--      /* Intel driver does the equivalent of this, no clue if it is needed:
--       * radeon_draw_buffer(radeon->glCtx, &(drawable->driverPrivate)->base);
--       */
-+      /* Intel driver does the equivalent of this, no clue if it is needed:*/
-+      draw = drawable->driverPrivate;
-+      radeon_draw_buffer(radeon->glCtx, &draw->base);
-+
-       driContext->dri2.draw_stamp = drawable->dri2.stamp;
-     }
-@@ -738,10 +740,9 @@ radeon_update_renderbuffers(__DRIcontext *context, __DRIdrawable *drawable,
-                                               buffers[i].flags);
-                       if (bo == NULL) {
--
-                               fprintf(stderr, "failed to attach %s %d\n",
-                                       regname, buffers[i].name);
--
-+                              continue;
-                       }
-                       ret = radeon_bo_get_tiling(bo, &tiling_flags, &pitch);
-diff --git a/src/mesa/drivers/dri/radeon/radeon_screen.c b/src/mesa/drivers/dri/radeon/radeon_screen.c
-index 2ea77e5..0ca052d 100644
---- a/src/mesa/drivers/dri/radeon/radeon_screen.c
-+++ b/src/mesa/drivers/dri/radeon/radeon_screen.c
-@@ -1138,6 +1138,8 @@ radeonCreateScreen( __DRIscreen *sPriv )
-    else
-          screen->chip_flags |= RADEON_CLASS_R600;
-+   /* set group bytes for r6xx+ */
-+   screen->group_bytes = 256;
-    screen->cpp = dri_priv->bpp / 8;
-    screen->AGPMode = dri_priv->AGPMode;
-@@ -1382,7 +1384,8 @@ radeonCreateScreen2(__DRIscreen *sPriv)
-    else
-          screen->chip_flags |= RADEON_CLASS_R600;
--   /* r6xx+ tiling */
-+   /* r6xx+ tiling, default to 256 group bytes */
-+   screen->group_bytes = 256;
-    if (IS_R600_CLASS(screen) && (sPriv->drm_version.minor >= 6)) {
-          ret = radeonGetParam(sPriv, RADEON_INFO_TILE_CONFIG, &temp);
-          if (ret)
-diff --git a/src/mesa/drivers/dri/radeon/radeon_swtcl.c b/src/mesa/drivers/dri/radeon/radeon_swtcl.c
-index 29defe7..0a81843 100644
---- a/src/mesa/drivers/dri/radeon/radeon_swtcl.c
-+++ b/src/mesa/drivers/dri/radeon/radeon_swtcl.c
-@@ -412,6 +412,8 @@ static GLboolean radeon_run_render( GLcontext *ctx,
-       return GL_TRUE;         
-    radeon_prepare_render(&rmesa->radeon);
-+   if (rmesa->radeon.NewGLState)
-+      radeonValidateState( ctx );
-    tnl->Driver.Render.Start( ctx );
-diff --git a/src/mesa/drivers/dri/radeon/radeon_tcl.c b/src/mesa/drivers/dri/radeon/radeon_tcl.c
-index 5e1718f..ded3ebe 100644
---- a/src/mesa/drivers/dri/radeon/radeon_tcl.c
-+++ b/src/mesa/drivers/dri/radeon/radeon_tcl.c
-@@ -253,6 +253,8 @@ void radeonTclPrimitive( GLcontext *ctx,
-    GLuint newprim = hw_prim | RADEON_CP_VC_CNTL_TCL_ENABLE;
-    radeon_prepare_render(&rmesa->radeon);
-+   if (rmesa->radeon.NewGLState)
-+      radeonValidateState( ctx );
-    if (newprim != rmesa->tcl.hw_primitive ||
-        !discrete_prim[hw_prim&0xf]) {
-diff --git a/src/mesa/main/mipmap.c b/src/mesa/main/mipmap.c
-index 3d1a4c4..d07892f 100644
---- a/src/mesa/main/mipmap.c
-+++ b/src/mesa/main/mipmap.c
-@@ -606,7 +606,7 @@ do_row_3D(GLenum datatype, GLuint comps, GLint srcWidth,
-          FILTER_3D(0);
-       }
-    }
--   if ((datatype == GL_BYTE) && (comps == 4)) {
-+   else if ((datatype == GL_BYTE) && (comps == 4)) {
-       DECLARE_ROW_POINTERS(GLbyte, 4);
-       for (i = j = 0, k = k0; i < (GLuint) dstWidth;
-diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c
-index 66e32b4..cd418a0 100644
---- a/src/mesa/state_tracker/st_manager.c
-+++ b/src/mesa/state_tracker/st_manager.c
-@@ -486,9 +486,18 @@ st_context_notify_invalid_framebuffer(struct st_context_iface *stctxi,
-    stfb = st_ws_framebuffer(st->ctx->WinSysDrawBuffer);
-    if (!stfb || stfb->iface != stfbi)
-       stfb = st_ws_framebuffer(st->ctx->WinSysReadBuffer);
--   assert(stfb && stfb->iface == stfbi);
--   p_atomic_set(&stfb->revalidate, TRUE);
-+   if (stfb && stfb->iface == stfbi) {
-+      p_atomic_set(&stfb->revalidate, TRUE);
-+   }
-+   else {
-+      /* This function is probably getting called when we've detected a
-+       * change in a window's size but the currently bound context is
-+       * not bound to that window.
-+       * If the st_framebuffer_iface structure had a pointer to the
-+       * corresponding st_framebuffer we'd be able to handle this.
-+       */
-+   }
- }
- static void
-diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c
-index 3fc554c..198f0e2 100644
---- a/src/mesa/swrast/s_texfilter.c
-+++ b/src/mesa/swrast/s_texfilter.c
-@@ -2972,11 +2972,16 @@ choose_depth_texture_level(const struct gl_texture_object *tObj, GLfloat lambda)
- {
-    GLint level;
--   lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod);
--
--   level = (GLint) lambda;
--
--   level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel);
-+   if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) {
-+      /* no mipmapping - use base level */
-+      level = tObj->BaseLevel;
-+   }
-+   else {
-+      /* choose mipmap level */
-+      lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod);
-+      level = (GLint) lambda;
-+      level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel);
-+   }
-    return level;
- }
+     return GL_TRUE;
This page took 0.129458 seconds and 4 git commands to generate.