]>
Commit | Line | Data |
---|---|---|
9caf779f AM |
1 | diff --git a/docs/devinfo.html b/docs/devinfo.html |
2 | index df0e726..2d1c125 100644 | |
3 | --- a/docs/devinfo.html | |
4 | +++ b/docs/devinfo.html | |
5 | @@ -145,7 +145,7 @@ Make sure the values in src/mesa/main/version.h are correct. | |
6 | </p> | |
7 | ||
8 | <p> | |
9 | -Update the docs/news.html file and docs/download.html files. | |
10 | +Update docs/news.html. | |
11 | </p> | |
12 | ||
13 | <p> | |
14 | @@ -208,10 +208,11 @@ sftp USERNAME,mesa3d@web.sourceforge.net | |
15 | ||
16 | <p> | |
17 | Make an announcement on the mailing lists: | |
18 | -<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>, | |
19 | -<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> | |
20 | + | |
21 | +<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>, | |
22 | +<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> | |
23 | and | |
24 | -<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> | |
25 | +<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> | |
26 | </p> | |
27 | ||
28 | ||
29 | diff --git a/docs/news.html b/docs/news.html | |
30 | index b3fb8b5..72d38ee 100644 | |
31 | --- a/docs/news.html | |
32 | +++ b/docs/news.html | |
33 | @@ -11,10 +11,18 @@ | |
34 | <H1>News</H1> | |
35 | ||
36 | ||
37 | +<h2>October 4, 2010</h2> | |
38 | + | |
39 | +<p> | |
40 | +<a href="relnotes-7.9.html">Mesa 7.9</a> (final) is released. This is a new | |
41 | +development release. | |
42 | +</p> | |
43 | + | |
44 | + | |
45 | <h2>September 27, 2010</h2> | |
46 | ||
47 | <p> | |
48 | -<a href="relnotes-7.9.0.html">Mesa 7.9.0-rc1</a> is released. This is a | |
49 | +<a href="relnotes-7.9.html">Mesa 7.9.0-rc1</a> is released. This is a | |
50 | release candidate for the 7.9 development release. | |
51 | </p> | |
52 | ||
53 | diff --git a/docs/relnotes-7.8.2.html b/docs/relnotes-7.8.2.html | |
54 | index e1b0f2d..1393b2e 100644 | |
55 | --- a/docs/relnotes-7.8.2.html | |
56 | +++ b/docs/relnotes-7.8.2.html | |
57 | @@ -26,7 +26,15 @@ for DRI hardware acceleration. | |
58 | ||
59 | <h2>MD5 checksums</h2> | |
60 | <pre> | |
61 | -tbd | |
62 | +c89b63d253605ed40e8ac370d25a833c MesaLib-7.8.2.tar.gz | |
63 | +6be2d343a0089bfd395ce02aaf8adb57 MesaLib-7.8.2.tar.bz2 | |
64 | +a04ad3b06ac5ff3969a003fa7bbf7d5b MesaLib-7.8.2.zip | |
65 | +7c213f92efeb471f0331670d5079d4c0 MesaDemos-7.8.2.tar.gz | |
66 | +757d9e2e06f48b1a52848be9b0307ced MesaDemos-7.8.2.tar.bz2 | |
67 | +8d0e5cfe68b8ebf90265d350ae2c48b1 MesaDemos-7.8.2.zip | |
68 | +b74482e3f44f35ed395c4aada4fd8240 MesaGLUT-7.8.2.tar.gz | |
69 | +a471807b65e49c325808ba4551be93ed MesaGLUT-7.8.2.tar.bz2 | |
70 | +9f190268c42be582ef66e47365ee61e3 MesaGLUT-7.8.2.zip | |
71 | </pre> | |
72 | ||
73 | ||
74 | @@ -44,10 +52,95 @@ tbd | |
75 | <ul> | |
76 | <li>Fixed Gallium glDrawPixels(GL_DEPTH_COMPONENT). | |
77 | <li>Fixed Gallium Cell driver to buildable, runable state | |
78 | +<li>Fixed bad error checking for glFramebufferRenderbuffer(attachment=GL_DEPTH_STENCIL_ATTACHMENT). | |
79 | +<li>Fixed incorrect Z coordinate handling in "meta" glDraw/CopyPixels. | |
80 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=23670">Bug | |
81 | + #23670</a>.</li> | |
82 | + | |
83 | +<li>Assorted i965 driver fixes. | |
84 | + Including but not limited to: | |
85 | + <ul> | |
86 | + <li>Fix scissoring when width or height is | |
87 | + 0. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27643">Bug | |
88 | + #27643</a>. | |
89 | + <li>Fix bit allocation for number of color regions for | |
90 | + ARB_draw_buffers.</li> | |
91 | + <li>Set the correct provoking vertex for clipped first-mode | |
92 | + trifans. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24470">Bug | |
93 | + #24470</a>.</li> | |
94 | + <li>Use <code>R16G16B16A16_FLOAT</code> for 3-component half-float.</li> | |
95 | + <li>Fix assertion for surface tile offset usage on Ironlake.</li> | |
96 | + <li>Fix cube map layouts on Ironlake.</li> | |
97 | + <li>When an RB gets a new region, clear the old from the state | |
98 | + cache. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24119">Bug | |
99 | + #24119</a>.</li> | |
100 | + <li>Reject shaders with uninlined function calls instead of hanging.</li> | |
101 | + </ul> | |
102 | +</li> | |
103 | + | |
104 | +<li>Assorted i915 driver fixes. Including but not limited to: | |
105 | + <ul> | |
106 | + <li>Fixed texture LOD clamping in i915 driver. | |
107 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=24846">Bug | |
108 | + #24846</a>.</li> | |
109 | + <li>Fix off-by-one for drawing rectangle. | |
110 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27408">Bug | |
111 | + #27408</a>.</li> | |
112 | + </ul> | |
113 | +</li> | |
114 | + | |
115 | +<li>Fixed hangs in etracer on 830 and 845 | |
116 | + chipsets. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=26557">Bug | |
117 | + #26557</a>.</li> | |
118 | +<li>Fixed tiling of small textures on all Intel drivers.</li> | |
119 | +<li>Fixed crash in Savage driver when using <code>_mesa_CopyTexImage2D</code>. | |
120 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27652">Bug | |
121 | + #27652</a>.</li> | |
122 | + | |
123 | +<li>Assorted GLX fixes. Including but not limited to: | |
124 | + <ul> | |
125 | + <li>Fixed <code>__glXInitializeVisualConfigFromTags</code>'s handling of | |
126 | + unrecognized fbconfig tags.</li> | |
127 | + <li>Fixed regression with <code>GLX_USE_GL</code>. | |
128 | + <li>Fixed config chooser logic for 'mask' matching.</li> | |
129 | + <li>Report swap events correctly in direct rendered case (DRI2)</li> | |
130 | + <li>Fixed build with dri2proto which doesn't define | |
131 | + <code>X_DRI2SwapInterval</code>.</li> | |
132 | + <li>Get <code>GLX_SCREEN</code> first in <code>__glXQueryContextInfo</code>. | |
133 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=14245">Bug | |
134 | + #14245</a>.</li> | |
135 | + </ul> | |
136 | +</li> | |
137 | + | |
138 | +<li>Assorted GLSL fixes. Including but not limited to: | |
139 | + <ul> | |
140 | + <li>Change variable declared assertion into conditional in GLSL | |
141 | + compiler. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27921">Bug | |
142 | + #27921</a>.</li> | |
143 | + <li>Fix instruction indexing | |
144 | + bugs. <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27566">Bug | |
145 | + #27566</a>.</li> | |
146 | + <li>Updated uniform location / offset encoding to be more like | |
147 | + other implementations.</li> | |
148 | + <li>Don't overwrite a driver's shader infolog with generic failure | |
149 | + message.</li> | |
150 | + </ul> | |
151 | +</li> | |
152 | + | |
153 | +<li>Fixed OSMesa build for 16 and 32-bit color channel depth. | |
154 | +<li>Fixed OSMesa build with hidden symbol visibility. libOSMesa no longer links to libGL. | |
155 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28305">Bug | |
156 | + #28305</a>. | |
157 | +<li>Fixed handling of multiple render targets in fixed-function | |
158 | + texture envrionmnent programs.</li> | |
159 | +<li>Fixed conversion errors in <code>signed_rgba8888[rev]</code> texel | |
160 | + fetch.</li> | |
161 | +<li>Don't set srcLevel on <code>GL_TEXTURE_RECTANGLE_ARB</code> targets.</li> | |
162 | +<li>Various build fixes for OpenBSD.</li> | |
163 | +<li>Various build fixes for OS X.</li> | |
164 | +<li>Various build fixes for GCC 3.3.</li> | |
165 | </ul> | |
166 | ||
167 | ||
168 | -<h2>Changes</h2> | |
169 | -<p>None.</p> | |
170 | </body> | |
171 | </html> | |
172 | diff --git a/docs/relnotes-7.8.3.html b/docs/relnotes-7.8.3.html | |
173 | new file mode 100644 | |
174 | index 0000000..1e9f433 | |
175 | --- /dev/null | |
176 | +++ b/docs/relnotes-7.8.3.html | |
177 | @@ -0,0 +1,89 @@ | |
178 | +<HTML> | |
179 | + | |
180 | +<TITLE>Mesa Release Notes</TITLE> | |
181 | + | |
182 | +<head><link rel="stylesheet" type="text/css" href="mesa.css"></head> | |
183 | + | |
184 | +<BODY> | |
185 | + | |
186 | +<body bgcolor="#eeeeee"> | |
187 | + | |
188 | +<H1>Mesa 7.8.3 Release Notes / (date tbd)</H1> | |
189 | + | |
190 | +<p> | |
191 | +Mesa 7.8.3 is a bug fix release which fixes bugs found since the 7.8.2 release. | |
192 | +</p> | |
193 | +<p> | |
194 | +Mesa 7.8.3 implements the OpenGL 2.1 API, but the version reported by | |
195 | +glGetString(GL_VERSION) depends on the particular driver being used. | |
196 | +Some drivers don't support all the features required in OpenGL 2.1. | |
197 | +</p> | |
198 | +<p> | |
199 | +See the <a href="install.html">Compiling/Installing page</a> for prerequisites | |
200 | +for DRI hardware acceleration. | |
201 | +</p> | |
202 | + | |
203 | + | |
204 | +<h2>MD5 checksums</h2> | |
205 | +<pre> | |
206 | +x MesaLib-7.8.3.tar.gz | |
207 | +x MesaLib-7.8.3.tar.bz2 | |
208 | +x MesaLib-7.8.3.zip | |
209 | +x MesaDemos-7.8.3.tar.gz | |
210 | +x MesaDemos-7.8.3.tar.bz2 | |
211 | +x MesaDemos-7.8.3.zip | |
212 | +x MesaGLUT-7.8.3.tar.gz | |
213 | +x MesaGLUT-7.8.3.tar.bz2 | |
214 | +x MesaGLUT-7.8.3.zip | |
215 | +</pre> | |
216 | + | |
217 | + | |
218 | +<h2>New features</h2> | |
219 | +<p>None.</p> | |
220 | + | |
221 | + | |
222 | +<h2>Changes</h2> | |
223 | +<ul> | |
224 | +<li>The radeon driver should use less memory when searching for a valid mip | |
225 | +image.</li> | |
226 | +</ul> | |
227 | + | |
228 | + | |
229 | +<h2>Bug fixes</h2> | |
230 | +<ul> | |
231 | +<li>Fix unsupported FB with D24S8 (bug | |
232 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=23670">29116</a>)</li> | |
233 | +<li>Fix ReadPixels crash when reading depth/stencil from an FBO</li> | |
234 | +<li>Fixed a bug rendering to 16-bit buffers using swrast.</li> | |
235 | +<li>Fixed a state tracker/TGSI bug that caused crashes when using Windows' | |
236 | + memory debugging features.</li> | |
237 | +<li>Fixed an issue rendering to 32-bit channels with swrast (bug | |
238 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=29487">29487</a>)</li> | |
239 | +<li>GLSL: fix indirect <TT>gl_TextureMatrix</TT> addressing (bug | |
240 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28967">28967</a>)</li> | |
241 | +<li>GLSL: fix for bug | |
242 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=27216">27216</a></li> | |
243 | +<li>GLSL: fix zw fragcoord entries in some cases (bug | |
244 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=29183">29183</a>)</li> | |
245 | +<li>Fix texture env generation in some cases (bug | |
246 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=28169">28169</a>)</li> | |
247 | +<li>osmesa: a fix for calling <TT>OSMesaMakeCurrent</TT> twice was applied (bug | |
248 | + <a href="https://bugs.freedesktop.org/show_bug.cgi?id=10966">10966</a></li> | |
249 | +<li>A bug was fixed which could cause Mesa to ignore the | |
250 | + <TT>MESA_EXTENSION_OVERRIDE</TT> environment variable.</li> | |
251 | +<li>A bug related to specular highlights on backfaces was fixed.</li> | |
252 | +<li>A radeon-specific issue with <TT>glCopyTex(Sub)Image</TT> was | |
253 | + corrected.</li> | |
254 | +<li>radeon/wine: flush command stream in more cases, fixing wine d3d9 | |
255 | + tests.</li> | |
256 | +<li>r600: fix sin+cos normalization.</li> | |
257 | +<li>r600: (properly) ignore <TT>GL_COORD_REPLACE</TT> when point sprites are | |
258 | + disabled.</li> | |
259 | +<li>radeon: avoid flushing when the context is not current.</li> | |
260 | +<li>r300c: a bug affecting unaligned BOs was fixed.</li> | |
261 | +<li>r300c: a hardlock caused by ARB_half_float_vertex incorrectly advertised on some chipsets.</li> | |
262 | +</ul> | |
263 | + | |
264 | + | |
265 | +</body> | |
266 | +</html> | |
267 | diff --git a/docs/relnotes-7.9.html b/docs/relnotes-7.9.html | |
268 | index b09fb1d..fe1fd5e 100644 | |
269 | --- a/docs/relnotes-7.9.html | |
270 | +++ b/docs/relnotes-7.9.html | |
271 | @@ -28,12 +28,12 @@ for DRI hardware acceleration. | |
272 | ||
273 | <h2>MD5 checksums</h2> | |
274 | <pre> | |
275 | -f1f01a7baec255f13e9468fb4b05922a MesaLib-7.9-rc1.tar.gz | |
276 | -7ffbda3b7056c60b8f87e3082d853af1 MesaLib-7.9-rc1.tar.bz2 | |
277 | -9d4650df4e5b530178d6fde840f76664 MesaLib-7.9-rc1.zip | |
278 | -a81c2e7a0c7832e67c768d6f209f2c8f MesaGLUT-7.9-rc1.tar.gz | |
279 | -b4c1c2f0b47a07be10fa2dd42e6a63d7 MesaGLUT-7.9-rc1.tar.bz2 | |
280 | -c9dd7419a19bcb24a1fe556ec2e78451 MesaGLUT-7.9-rc1.zip | |
281 | +ed65ab425b25895c7f473d0a5e6e64f8 MesaLib-7.9.tar.gz | |
282 | +82c740c49d572baa6da2b1a1eee90bca MesaLib-7.9.tar.bz2 | |
283 | +cd2b6ecec759b0457475e94bbb38fedb MesaLib-7.9.zip | |
284 | +7b54af9fb9b1f6a1a65db2520f50848f MesaGLUT-7.9.tar.gz | |
285 | +20d07419d1929f833fdb36bced290ad5 MesaGLUT-7.9.tar.bz2 | |
286 | +62a7edecd7c92675cd6029b05217eb0a MesaGLUT-7.9.zip | |
287 | </pre> | |
288 | ||
289 | ||
290 | diff --git a/docs/relnotes.html b/docs/relnotes.html | |
291 | index 47e7f80..4487af9 100644 | |
292 | --- a/docs/relnotes.html | |
293 | +++ b/docs/relnotes.html | |
294 | @@ -14,6 +14,7 @@ The release notes summarize what's new or changed in each Mesa release. | |
295 | ||
296 | <UL> | |
297 | <LI><A HREF="relnotes-7.9.html">7.9 release notes</A> | |
298 | +<LI><A HREF="relnotes-7.8.3.html">7.8.3 release notes</A> | |
299 | <LI><A HREF="relnotes-7.8.2.html">7.8.2 release notes</A> | |
300 | <LI><A HREF="relnotes-7.8.1.html">7.8.1 release notes</A> | |
301 | <LI><A HREF="relnotes-7.8.html">7.8 release notes</A> | |
302 | diff --git a/src/gallium/state_trackers/egl/common/egl_g3d_api.c b/src/gallium/state_trackers/egl/common/egl_g3d_api.c | |
303 | index c0164da..3bde397 100644 | |
304 | --- a/src/gallium/state_trackers/egl/common/egl_g3d_api.c | |
305 | +++ b/src/gallium/state_trackers/egl/common/egl_g3d_api.c | |
306 | @@ -609,8 +609,10 @@ egl_g3d_wait_client(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx) | |
307 | ||
308 | gctx->stctxi->flush(gctx->stctxi, | |
309 | PIPE_FLUSH_RENDER_CACHE | PIPE_FLUSH_FRAME, &fence); | |
310 | - screen->fence_finish(screen, fence, 0); | |
311 | - screen->fence_reference(screen, &fence, NULL); | |
312 | + if (fence) { | |
313 | + screen->fence_finish(screen, fence, 0); | |
314 | + screen->fence_reference(screen, &fence, NULL); | |
315 | + } | |
316 | ||
317 | return EGL_TRUE; | |
318 | } | |
319 | diff --git a/src/gallium/state_trackers/vega/vg_manager.c b/src/gallium/state_trackers/vega/vg_manager.c | |
320 | index e799674..232deef 100644 | |
321 | --- a/src/gallium/state_trackers/vega/vg_manager.c | |
322 | +++ b/src/gallium/state_trackers/vega/vg_manager.c | |
323 | @@ -352,7 +352,7 @@ vg_api_create_context(struct st_api *stapi, struct st_manager *smapi, | |
324 | return NULL; | |
325 | ||
326 | /* only 1.0 is supported */ | |
327 | - if (attribs->major != 1 || attribs->minor > 0) | |
328 | + if (attribs->major > 1 || (attribs->major == 1 && attribs->minor > 0)) | |
329 | return NULL; | |
330 | ||
331 | pipe = smapi->screen->context_create(smapi->screen, NULL); | |
332 | diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c b/src/gallium/state_trackers/xorg/xorg_crtc.c | |
333 | index 26a907f..c65da71 100644 | |
334 | --- a/src/gallium/state_trackers/xorg/xorg_crtc.c | |
335 | +++ b/src/gallium/state_trackers/xorg/xorg_crtc.c | |
336 | @@ -234,6 +234,10 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * image) | |
337 | 64, 64, (void*)image, 64 * 4, 0, 0); | |
338 | ms->ctx->transfer_unmap(ms->ctx, transfer); | |
339 | ms->ctx->transfer_destroy(ms->ctx, transfer); | |
340 | + | |
341 | + if (crtc->cursor_shown) | |
342 | + drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id, | |
343 | + crtcp->cursor_handle, 64, 64); | |
344 | } | |
345 | ||
346 | #if HAVE_LIBKMS | |
347 | @@ -271,6 +275,10 @@ crtc_load_cursor_argb_kms(xf86CrtcPtr crtc, CARD32 * image) | |
348 | memcpy(ptr, image, 64*64*4); | |
349 | kms_bo_unmap(crtcp->cursor_bo); | |
350 | ||
351 | + if (crtc->cursor_shown) | |
352 | + drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id, | |
353 | + crtcp->cursor_handle, 64, 64); | |
354 | + | |
355 | return; | |
356 | ||
357 | err_bo_destroy: | |
358 | diff --git a/src/gallium/state_trackers/xorg/xorg_driver.c b/src/gallium/state_trackers/xorg/xorg_driver.c | |
359 | index e10ff2f..3a5db98 100644 | |
360 | --- a/src/gallium/state_trackers/xorg/xorg_driver.c | |
361 | +++ b/src/gallium/state_trackers/xorg/xorg_driver.c | |
362 | @@ -369,6 +369,7 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags) | |
363 | ms = modesettingPTR(pScrn); | |
364 | ms->pEnt = pEnt; | |
365 | ms->cust = cust; | |
366 | + ms->fb_id = -1; | |
367 | ||
368 | pScrn->displayWidth = 640; /* default it */ | |
369 | ||
370 | @@ -402,19 +403,6 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags) | |
371 | if (!drv_init_drm(pScrn)) | |
372 | return FALSE; | |
373 | ||
374 | - use3D = cust ? !cust->no_3d : TRUE; | |
375 | - ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL, | |
376 | - &use3D) ? | |
377 | - X_CONFIG : X_PROBED; | |
378 | - | |
379 | - ms->no3D = !use3D; | |
380 | - | |
381 | - if (!drv_init_resource_management(pScrn)) { | |
382 | - xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init " | |
383 | - "Gallium3D or libKMS."); | |
384 | - return FALSE; | |
385 | - } | |
386 | - | |
387 | pScrn->monitor = pScrn->confScreen->monitor; | |
388 | pScrn->progClock = TRUE; | |
389 | pScrn->rgbBits = 8; | |
390 | @@ -449,6 +437,19 @@ drv_pre_init(ScrnInfoPtr pScrn, int flags) | |
391 | memcpy(ms->Options, drv_options, sizeof(drv_options)); | |
392 | xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, ms->Options); | |
393 | ||
394 | + use3D = cust ? !cust->no_3d : TRUE; | |
395 | + ms->from_3D = xf86GetOptValBool(ms->Options, OPTION_3D_ACCEL, | |
396 | + &use3D) ? | |
397 | + X_CONFIG : X_PROBED; | |
398 | + | |
399 | + ms->no3D = !use3D; | |
400 | + | |
401 | + if (!drv_init_resource_management(pScrn)) { | |
402 | + xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Could not init " | |
403 | + "Gallium3D or libKMS."); | |
404 | + return FALSE; | |
405 | + } | |
406 | + | |
407 | /* Allocate an xf86CrtcConfig */ | |
408 | xf86CrtcConfigInit(pScrn, &crtc_config_funcs); | |
409 | xf86_config = XF86_CRTC_CONFIG_PTR(pScrn); | |
410 | @@ -791,7 +792,9 @@ drv_screen_init(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) | |
411 | if (!ms->SWCursor) | |
412 | xf86_cursors_init(pScreen, 64, 64, | |
413 | HARDWARE_CURSOR_SOURCE_MASK_INTERLEAVE_64 | | |
414 | - HARDWARE_CURSOR_ARGB); | |
415 | + HARDWARE_CURSOR_ARGB | | |
416 | + ((cust && cust->unhidden_hw_cursor_update) ? | |
417 | + HARDWARE_CURSOR_UPDATE_UNHIDDEN : 0)); | |
418 | ||
419 | /* Must force it before EnterVT, so we are in control of VT and | |
420 | * later memory should be bound when allocating, e.g rotate_mem */ | |
421 | @@ -862,8 +865,10 @@ drv_leave_vt(int scrnIndex, int flags) | |
422 | } | |
423 | } | |
424 | ||
425 | - drmModeRmFB(ms->fd, ms->fb_id); | |
426 | - ms->fb_id = -1; | |
427 | + if (ms->fb_id != -1) { | |
428 | + drmModeRmFB(ms->fd, ms->fb_id); | |
429 | + ms->fb_id = -1; | |
430 | + } | |
431 | ||
432 | /* idle hardware */ | |
433 | if (!ms->kms) | |
434 | @@ -944,7 +949,6 @@ drv_close_screen(int scrnIndex, ScreenPtr pScreen) | |
435 | } | |
436 | #endif | |
437 | ||
438 | - drmModeRmFB(ms->fd, ms->fb_id); | |
439 | ms->destroy_front_buffer(pScrn); | |
440 | ||
441 | if (ms->exa) | |
442 | diff --git a/src/gallium/state_trackers/xorg/xorg_tracker.h b/src/gallium/state_trackers/xorg/xorg_tracker.h | |
443 | index be1a9fd..a3fb5e5 100644 | |
444 | --- a/src/gallium/state_trackers/xorg/xorg_tracker.h | |
445 | +++ b/src/gallium/state_trackers/xorg/xorg_tracker.h | |
446 | @@ -76,6 +76,7 @@ typedef struct _CustomizerRec | |
447 | Bool dirty_throttling; | |
448 | Bool swap_throttling; | |
449 | Bool no_3d; | |
450 | + Bool unhidden_hw_cursor_update; | |
451 | Bool (*winsys_pre_init) (struct _CustomizerRec *cust, int fd); | |
452 | Bool (*winsys_screen_init)(struct _CustomizerRec *cust); | |
453 | Bool (*winsys_screen_close)(struct _CustomizerRec *cust); | |
454 | diff --git a/src/gallium/targets/egl/Makefile b/src/gallium/targets/egl/Makefile | |
455 | index 47c24ce..38e60db 100644 | |
456 | --- a/src/gallium/targets/egl/Makefile | |
457 | +++ b/src/gallium/targets/egl/Makefile | |
458 | @@ -24,7 +24,9 @@ common_CPPFLAGS := \ | |
459 | -I$(TOP)/src/gallium/auxiliary \ | |
460 | -I$(TOP)/src/gallium/drivers \ | |
461 | -I$(TOP)/src/gallium/include \ | |
462 | - -I$(TOP)/src/gallium/winsys | |
463 | + -I$(TOP)/src/gallium/winsys \ | |
464 | + $(LIBDRM_CFLAGS) | |
465 | + | |
466 | common_SYS := | |
467 | common_LIBS := \ | |
468 | $(TOP)/src/gallium/drivers/identity/libidentity.a \ | |
469 | @@ -41,11 +43,11 @@ egl_SYS := -lm $(DLOPEN_LIBS) -L$(TOP)/$(LIB_DIR) -lEGL | |
470 | egl_LIBS := $(TOP)/src/gallium/state_trackers/egl/libegl.a | |
471 | ||
472 | ifneq ($(findstring x11, $(EGL_PLATFORMS)),) | |
473 | -egl_SYS += -lX11 -lXext -lXfixes | |
474 | +egl_SYS += -lX11 -lXext -lXfixes $(LIBDRM_LIB) | |
475 | egl_LIBS += $(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a | |
476 | endif | |
477 | -ifneq ($(findstring kms, $(EGL_PLATFORMS)),) | |
478 | -egl_SYS += -ldrm | |
479 | +ifneq ($(findstring drm, $(EGL_PLATFORMS)),) | |
480 | +egl_SYS += $(LIBDRM_LIB) | |
481 | endif | |
482 | ifneq ($(findstring fbdev, $(EGL_PLATFORMS)),) | |
483 | egl_LIBS += $(TOP)/src/gallium/winsys/sw/fbdev/libfbdev.a | |
484 | diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c | |
485 | index 237b308..9c075b5 100644 | |
486 | --- a/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c | |
487 | +++ b/src/gallium/targets/xorg-vmwgfx/vmw_ctrl.c | |
488 | @@ -32,6 +32,7 @@ | |
489 | * allows X clients to communicate with the driver. | |
490 | */ | |
491 | ||
492 | +#include <xorg-server.h> | |
493 | #include "dixstruct.h" | |
494 | #include "extnsionst.h" | |
495 | #include <X11/X.h> | |
496 | diff --git a/src/gallium/targets/xorg-vmwgfx/vmw_screen.c b/src/gallium/targets/xorg-vmwgfx/vmw_screen.c | |
497 | index 8173908..7662203 100644 | |
498 | --- a/src/gallium/targets/xorg-vmwgfx/vmw_screen.c | |
499 | +++ b/src/gallium/targets/xorg-vmwgfx/vmw_screen.c | |
500 | @@ -245,6 +245,7 @@ vmw_screen_pre_init(ScrnInfoPtr pScrn, int flags) | |
501 | cust->winsys_enter_vt = vmw_screen_enter_vt; | |
502 | cust->winsys_leave_vt = vmw_screen_leave_vt; | |
503 | cust->no_3d = TRUE; | |
504 | + cust->unhidden_hw_cursor_update = TRUE; | |
505 | vmw->pScrn = pScrn; | |
506 | ||
507 | pScrn->driverPrivate = cust; | |
508 | diff --git a/src/mesa/drivers/dri/r200/r200_swtcl.c b/src/mesa/drivers/dri/r200/r200_swtcl.c | |
509 | index dbf4ad4..effe6fb 100644 | |
510 | --- a/src/mesa/drivers/dri/r200/r200_swtcl.c | |
511 | +++ b/src/mesa/drivers/dri/r200/r200_swtcl.c | |
512 | @@ -613,6 +613,9 @@ static void r200RasterPrimitive( GLcontext *ctx, GLuint hwprim ) | |
513 | r200ContextPtr rmesa = R200_CONTEXT(ctx); | |
514 | ||
515 | radeon_prepare_render(&rmesa->radeon); | |
516 | + if (rmesa->radeon.NewGLState) | |
517 | + r200ValidateState( ctx ); | |
518 | + | |
519 | ||
520 | if (rmesa->radeon.swtcl.hw_primitive != hwprim) { | |
521 | /* need to disable perspective-correct texturing for point sprites */ | |
522 | diff --git a/src/mesa/drivers/dri/r200/r200_tcl.c b/src/mesa/drivers/dri/r200/r200_tcl.c | |
523 | index 4ae0f30..ba54177 100644 | |
524 | --- a/src/mesa/drivers/dri/r200/r200_tcl.c | |
525 | +++ b/src/mesa/drivers/dri/r200/r200_tcl.c | |
526 | @@ -265,6 +265,8 @@ void r200TclPrimitive( GLcontext *ctx, | |
527 | GLuint newprim = hw_prim | R200_VF_TCL_OUTPUT_VTX_ENABLE; | |
528 | ||
529 | radeon_prepare_render(&rmesa->radeon); | |
530 | + if (rmesa->radeon.NewGLState) | |
531 | + r200ValidateState( ctx ); | |
532 | ||
533 | if (newprim != rmesa->tcl.hw_primitive || | |
534 | !discrete_prim[hw_prim&0xf]) { | |
535 | diff --git a/src/mesa/drivers/dri/radeon/radeon_common_context.c b/src/mesa/drivers/dri/radeon/radeon_common_context.c | |
536 | index 85e4988..8804b9c 100644 | |
537 | --- a/src/mesa/drivers/dri/radeon/radeon_common_context.c | |
538 | +++ b/src/mesa/drivers/dri/radeon/radeon_common_context.c | |
539 | @@ -521,6 +521,7 @@ void radeon_prepare_render(radeonContextPtr radeon) | |
540 | __DRIcontext *driContext = radeon->dri.context; | |
541 | __DRIdrawable *drawable; | |
542 | __DRIscreen *screen; | |
543 | + struct radeon_framebuffer *draw; | |
544 | ||
545 | screen = driContext->driScreenPriv; | |
546 | if (!screen->dri2.loader) | |
547 | @@ -531,9 +532,10 @@ void radeon_prepare_render(radeonContextPtr radeon) | |
548 | if (drawable->lastStamp != drawable->dri2.stamp) | |
549 | radeon_update_renderbuffers(driContext, drawable, GL_FALSE); | |
550 | ||
551 | - /* Intel driver does the equivalent of this, no clue if it is needed: | |
552 | - * radeon_draw_buffer(radeon->glCtx, &(drawable->driverPrivate)->base); | |
553 | - */ | |
554 | + /* Intel driver does the equivalent of this, no clue if it is needed:*/ | |
555 | + draw = drawable->driverPrivate; | |
556 | + radeon_draw_buffer(radeon->glCtx, &draw->base); | |
557 | + | |
558 | driContext->dri2.draw_stamp = drawable->dri2.stamp; | |
559 | } | |
560 | ||
561 | diff --git a/src/mesa/state_tracker/st_manager.c b/src/mesa/state_tracker/st_manager.c | |
562 | index 66e32b4..cd418a0 100644 | |
563 | --- a/src/mesa/state_tracker/st_manager.c | |
564 | +++ b/src/mesa/state_tracker/st_manager.c | |
565 | @@ -486,9 +486,18 @@ st_context_notify_invalid_framebuffer(struct st_context_iface *stctxi, | |
566 | stfb = st_ws_framebuffer(st->ctx->WinSysDrawBuffer); | |
567 | if (!stfb || stfb->iface != stfbi) | |
568 | stfb = st_ws_framebuffer(st->ctx->WinSysReadBuffer); | |
569 | - assert(stfb && stfb->iface == stfbi); | |
570 | ||
571 | - p_atomic_set(&stfb->revalidate, TRUE); | |
572 | + if (stfb && stfb->iface == stfbi) { | |
573 | + p_atomic_set(&stfb->revalidate, TRUE); | |
574 | + } | |
575 | + else { | |
576 | + /* This function is probably getting called when we've detected a | |
577 | + * change in a window's size but the currently bound context is | |
578 | + * not bound to that window. | |
579 | + * If the st_framebuffer_iface structure had a pointer to the | |
580 | + * corresponding st_framebuffer we'd be able to handle this. | |
581 | + */ | |
582 | + } | |
583 | } | |
584 | ||
585 | static void | |
586 | diff --git a/src/mesa/swrast/s_texfilter.c b/src/mesa/swrast/s_texfilter.c | |
587 | index 3fc554c..198f0e2 100644 | |
588 | --- a/src/mesa/swrast/s_texfilter.c | |
589 | +++ b/src/mesa/swrast/s_texfilter.c | |
590 | @@ -2972,11 +2972,16 @@ choose_depth_texture_level(const struct gl_texture_object *tObj, GLfloat lambda) | |
591 | { | |
592 | GLint level; | |
593 | ||
594 | - lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); | |
595 | - | |
596 | - level = (GLint) lambda; | |
597 | - | |
598 | - level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); | |
599 | + if (tObj->MinFilter == GL_NEAREST || tObj->MinFilter == GL_LINEAR) { | |
600 | + /* no mipmapping - use base level */ | |
601 | + level = tObj->BaseLevel; | |
602 | + } | |
603 | + else { | |
604 | + /* choose mipmap level */ | |
605 | + lambda = CLAMP(lambda, tObj->MinLod, tObj->MaxLod); | |
606 | + level = (GLint) lambda; | |
607 | + level = CLAMP(level, tObj->BaseLevel, tObj->_MaxLevel); | |
608 | + } | |
609 | ||
610 | return level; | |
611 | } |