mesa: Changes to 'debian-unstable'
VERSION | 2
configure.ac | 6
debian/changelog | 10
debian/patches/01_targets-xa-limit-the-amount-of-exported-symbols.diff | 85 ----
debian/patches/series | 1
docs/index.html | 7
docs/relnotes.html | 2
docs/relnotes/10.2.1.html | 61 +++
docs/relnotes/10.2.2.html | 178 ++++++++++
src/egl/drivers/dri2/Android.mk | 4
src/egl/drivers/dri2/platform_android.c | 2
src/egl/main/Android.mk | 5
src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gk110.cpp | 8
src/gallium/drivers/nouveau/nv30/nv30_context.c | 3
src/gallium/drivers/nouveau/nv30/nv30_screen.c | 6
src/gallium/drivers/nouveau/nv30/nv30_state.c | 17
src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c | 1
src/gallium/drivers/nouveau/nv50/nv50_surface.c | 1
src/gallium/drivers/radeon/radeon_video.c | 5
src/gallium/state_trackers/clover/llvm/invocation.cpp | 20 -
src/gallium/targets/xa/Makefile.am | 3
src/gallium/targets/xa/xa.sym | 38 ++
src/glx/dri2.c | 12
src/mesa/Android.libmesa_dricore.mk | 8
src/mesa/Android.libmesa_glsl_utils.mk | 1
src/mesa/Android.mesa_gen_matypes.mk | 1
src/mesa/drivers/common/meta.c | 4
src/mesa/drivers/common/meta_blit.c | 2
src/mesa/drivers/dri/Android.mk | 1
src/mesa/drivers/dri/common/Android.mk | 17
src/mesa/drivers/dri/common/Makefile.am | 2
src/mesa/drivers/dri/common/Makefile.sources | 3
src/mesa/drivers/dri/i915/i830_texblend.c | 2
src/mesa/drivers/dri/i965/brw_context.h | 3
src/mesa/drivers/dri/i965/brw_fs.cpp | 8
src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c | 18 -
src/mesa/drivers/dri/i965/brw_vec4.cpp | 3
src/mesa/drivers/dri/i965/gen6_clip_state.c | 4
src/mesa/drivers/dri/i965/gen7_wm_surface_state.c | 4
src/mesa/drivers/dri/i965/gen8_depth_state.c | 20 -
src/mesa/drivers/dri/i965/gen8_draw_upload.c | 6
src/mesa/drivers/dri/i965/gen8_misc_state.c | 2
src/mesa/drivers/dri/i965/gen8_surface_state.c | 4
src/mesa/drivers/dri/i965/gen8_vec4_generator.cpp | 16
src/mesa/main/clear.c | 5
src/mesa/main/get.c | 6
src/mesa/program/program.c | 1
47 files changed, 469 insertions(+), 149 deletions(-)
New commits:
commit 577ff5714dd4a7cf4bf190512be3a591354ae108
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date: Wed Jul 2 18:14:24 2014 +0200
Close bug #685328
diff --git a/debian/changelog b/debian/changelog
index 6e0cd4f..54f77cf 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
mesa (10.2.2-1) UNRELEASED; urgency=medium
* New upstream release.
+ - glx: Don't crash on swap event for a Window (non-GLXWindow)
+ (Closes: #685328).
- 01_targets-xa-limit-the-amount-of-exported-symbols.diff dropped,
upstream
commit e59ab65be973ec62739dbedfef994ef9cf6e3cfb
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date: Wed Jul 2 18:04:43 2014 +0200
Drop 01_targets-xa-limit-the-amount-of-exported-symbols.diff, upstream
diff --git a/debian/changelog b/debian/changelog
index c2d0646..6e0cd4f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,6 +1,8 @@
mesa (10.2.2-1) UNRELEASED; urgency=medium
* New upstream release.
+ - 01_targets-xa-limit-the-amount-of-exported-symbols.diff dropped,
+ upstream
-- Andreas Boll <andreas.boll.dev@gmail.com> Wed, 02 Jul 2014 18:00:52 +0200
diff --git a/debian/patches/01_targets-xa-limit-the-amount-of-exported-symbols.diff b/debian/patches/01_targets-xa-limit-the-amount-of-exported-symbols.diff
deleted file mode 100644
index ea67e12..0000000
--- a/debian/patches/01_targets-xa-limit-the-amount-of-exported-symbols.diff
+++ /dev/null
@@ -1,85 +0,0 @@
-From 891e9aa59c74843f245e21d7c3eea5c0fa01cbcc Mon Sep 17 00:00:00 2001
-From: Emil Velikov <emil.l.velikov@gmail.com>
-Date: Fri, 2 May 2014 22:02:15 +0100
-Subject: [PATCH mesa] targets/xa: limit the amount of exported symbols
-
-In the presence of LLVM the final library exports every symbol from
-the llvm namespace. Resolve this by using a version script (w/o the
-version/name tag).
-
-Considering that there are only ~35 symbols, explicitly list them
-to minimize the chances of rogue symbols sneaking in.
-
-v2: Conditionally include the version-script.
-
-Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com> (v1)
-Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
-(cherry picked from commit a75baba2f14a2bcdaf640aeef86d67b41bb2a76f)
-Signed-off-by: Andreas Boll <andreas.boll.dev@gmail.com>
----
- src/gallium/targets/xa/Makefile.am | 3 +++
- src/gallium/targets/xa/xa.sym | 38 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 41 insertions(+)
- create mode 100644 src/gallium/targets/xa/xa.sym
-
-diff --git a/src/gallium/targets/xa/Makefile.am b/src/gallium/targets/xa/Makefile.am
-index 2619e57..b91c7f5 100644
---- a/src/gallium/targets/xa/Makefile.am
-+++ b/src/gallium/targets/xa/Makefile.am
-@@ -66,6 +66,9 @@ libxatracker_la_LDFLAGS = \
- $(GC_SECTIONS) \
- $(LD_NO_UNDEFINED)
-
-+libxatracker_la_LDFLAGS += \
-+ -Wl,--version-script=$(top_srcdir)/src/gallium/targets/xa/xa.sym
-+
- if HAVE_MESA_LLVM
- libxatracker_la_LIBADD += $(LLVM_LIBS)
- libxatracker_la_LDFLAGS += $(LLVM_LDFLAGS)
-diff --git a/src/gallium/targets/xa/xa.sym b/src/gallium/targets/xa/xa.sym
-new file mode 100644
-index 0000000..9c7f422
---- /dev/null
-+++ b/src/gallium/targets/xa/xa.sym
-@@ -0,0 +1,38 @@
-+{
-+ global:
-+ xa_composite_allocation;
-+ xa_composite_check_accelerated;
-+ xa_composite_done;
-+ xa_composite_prepare;
-+ xa_composite_rect;
-+ xa_context_create;
-+ xa_context_default;
-+ xa_context_destroy;
-+ xa_context_flush;
-+ xa_copy;
-+ xa_copy_done;
-+ xa_copy_prepare;
-+ xa_fence_get;
-+ xa_fence_wait;
-+ xa_fence_destroy;
-+ xa_format_check_supported;
-+ xa_solid;
-+ xa_solid_done;
-+ xa_solid_prepare;
-+ xa_surface_create;
-+ xa_surface_dma;
-+ xa_surface_format;
-+ xa_surface_from_handle;
-+ xa_surface_handle;
-+ xa_surface_map;
-+ xa_surface_redefine;
-+ xa_surface_ref;
-+ xa_surface_unmap;
-+ xa_surface_unref;
-+ xa_tracker_create;
-+ xa_tracker_destroy;
-+ xa_tracker_version;
-+ xa_yuv_planar_blit;
-+ local:
-+ *;
-+};
---
-2.0.0
-
diff --git a/debian/patches/series b/debian/patches/series
index 06e5a17..9f0749f 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -1,2 +1 @@
-01_targets-xa-limit-the-amount-of-exported-symbols.diff
07_gallium-fix-build-failure-on-powerpcspe.diff
commit f2fd904958537050399b2d8c151b4029712bfa27
Author: Andreas Boll <andreas.boll.dev@gmail.com>
Date: Wed Jul 2 18:01:37 2014 +0200
New upstream release.
diff --git a/debian/changelog b/debian/changelog
index 54ed0a6..c2d0646 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mesa (10.2.2-1) UNRELEASED; urgency=medium
+
+ * New upstream release.
+
+ -- Andreas Boll <andreas.boll.dev@gmail.com> Wed, 02 Jul 2014 18:00:52 +0200
+
mesa (10.2.1-2) unstable; urgency=medium
* Upload to unstable.
commit 623e68fb1ba75063f6bccfc17048fffb4ef3acf1
Author: Carl Worth <cworth@cworth.org>
Date: Tue Jun 24 21:30:02 2014 -0700
docs: Add release notes for 10.2.2 release
Which is ready to go.
diff --git a/docs/relnotes/10.2.2.html b/docs/relnotes/10.2.2.html
new file mode 100644
index 0000000..ebc0b35
--- /dev/null
+++ b/docs/relnotes/10.2.2.html
@@ -0,0 +1,178 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html lang="en">
+<head>
+ <meta http-equiv="content-type" content="text/html; charset=utf-8">
+ <title>Mesa Release Notes</title>
+ <link rel="stylesheet" type="text/css" href="../mesa.css">
+</head>
+<body>
+
+<div class="header">
+ <h1>The Mesa 3D Graphics Library</h1>
+</div>
+
+<iframe src="../contents.html"></iframe>
+<div class="content">
+
+<h1>Mesa 10.2.2 Release Notes / June 24, 2014</h1>
+
+<p>
+Mesa 10.2.2 is a bug fix release which fixes bugs found since the 10.2.1 release.
+</p>
+<p>
+Mesa 10.2.2 implements the OpenGL 3.3 API, but the version reported by
+glGetString(GL_VERSION) or glGetIntegerv(GL_MAJOR_VERSION) /
+glGetIntegerv(GL_MINOR_VERSION) depends on the particular driver being used.
+Some drivers don't support all the features required in OpenGL 3.3. OpenGL
+3.3 is <strong>only</strong> available if requested at context creation
+because compatibility contexts are not supported.
+</p>
+
+
+<h2>SHA256 checksums</h2>
+<pre>
+</pre>
+
+
+<h2>New features</h2>
+<p>None</p>
+
+<h2>Bug fixes</h2>
+
+<p>This list is likely incomplete.</p>
+
+<ul>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=54372">Bug 54372</a> - GLX_INTEL_swap_event crashes driver when swapping window buffers</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=66452">Bug 66452</a> - JUNIPER UVD accelerated playback of WMV3 streams does not work</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=74005">Bug 74005</a> - [i965 Bisected]Piglit/glx_glx-make-glxdrawable-current fails</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=77865">Bug 77865</a> - [BDW] Many Ogles3conform framebuffer_blit cases fail</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=78581">Bug 78581</a> - OpenCL: clBuildProgram prints error messages directly rather than storing them</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79029">Bug 79029</a> - INTEL_DEBUG=shader_time is full of lies</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79729">Bug 79729</a> - [i965] glClear on a multisample texture doesn't work</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=79907">Bug 79907</a> - Mesa 10.2.1 --enable-vdpau default=auto broken</li>
+
+<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=80115">Bug 80115</a> - MESA_META_DRAW_BUFFERS induced GL_INVALID_VALUE errors</li>
+
+</ul>
+
+
+<h2>Changes</h2>
+
+<p>Adrian Negreanu (8):</p>
+<ul>
+ <li>add megadriver_stub_FILES</li>
+ <li>android: adapt to the megadriver mechanism</li>
+ <li>android: add libloader to libGLES_mesa and libmesa_egl_dri2</li>
+ <li>android: add src/gallium/auxiliary as include path for libmesa_dricore</li>
+ <li>android, egl: add correct drm include for libmesa_egl_dri2</li>
+ <li>android, egl: typo dri2_fallback_pixmap_surface -> dri2_fallback_create_pixmap_surface</li>
+ <li>android, mesa_gen_matypes: pull in timespec POSIX definition</li>
+ <li>android, dricore: undefined reference to _mesa_streaming_load_memcpy</li>
+</ul>
+
+<p>Carl Worth (1):</p>
+<ul>
+ <li>Update VERSION to 10.2.2</li>
+</ul>
+
+<p>Daniel Manjarres (1):</p>
+<ul>
+ <li>glx: Don't crash on swap event for a Window (non-GLXWindow)</li>
+</ul>
+
+<p>Emil Velikov (3):</p>
+<ul>
+ <li>targets/xa: limit the amount of exported symbols</li>
+ <li>configure: error out when building opencl without LLVM</li>
+ <li>configure: correctly autodetect xvmc/vdpau/omx</li>
+</ul>
+
+<p>Grigori Goronzy (1):</p>
+<ul>
+ <li>radeon/uvd: disable VC-1 simple/main on UVD 2.x</li>
+</ul>
+
+<p>Iago Toral Quiroga (1):</p>
+<ul>
+ <li>mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.</li>
+</ul>
+
+<p>Ian Romanick (3):</p>
+<ul>
+ <li>docs: Add initial 10.2.1 release notes</li>
+ <li>docs: Add MD5 checksum, etc. for 10.2.1 release</li>
+ <li>meta: Respect the driver's maximum number of draw buffers</li>
+</ul>
+
+<p>Ilia Mirkin (7):</p>
+<ul>
+ <li>gk110/ir: emit saturate flag on fadd when needed</li>
+ <li>gk110/ir: fix emitting constbuf file index</li>
+ <li>gk110/ir: fix bfind emission</li>
+ <li>nv50: make sure to mark first scissor dirty after blit</li>
+ <li>nv30: plug some memory leaks on screen destroy and shader compile</li>
+ <li>nv30: avoid dangling references to deleted contexts</li>
+ <li>nv30: hack to avoid errors on unexpected color/zeta combinations</li>
+</ul>
+
+<p>Jason Ekstrand (1):</p>
+<ul>
+ <li>meta_blit: properly compute texture width for the CopyTexSubImage fallback</li>
+</ul>
+
+<p>José Fonseca (1):</p>
+<ul>
+ <li>mesa/main: Prevent sefgault on glGetIntegerv(GL_ATOMIC_COUNTER_BUFFER_BINDING).</li>
+</ul>
+
+<p>Kenneth Graunke (9):</p>
+<ul>
+ <li>i965: Don't use the head sentinel as an fs_inst in Gen4 workaround code.</li>
+ <li>i965: Invalidate live intervals when inserting Gen4 SEND workarounds.</li>
+ <li>i965/vec4: Fix dead code elimination for VGRFs of size > 1.</li>
+ <li>i965: Add missing MOCS setup for 3DSTATE_INDEX_BUFFER on Broadwell.</li>
+ <li>i965: Drop Broadwell perf_debugs about missing MOCS that aren't missing.</li>
+ <li>i965: Add missing newlines to a few perf_debug messages.</li>
+ <li>i965/vec4: Use the sampler for pull constant loads on Broadwell.</li>
+ <li>i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.</li>
+ <li>i965: Save meta stencil blit programs in the context.</li>
+</ul>
+
+<p>Kristian Høgsberg (1):</p>
+<ul>
+ <li>mesa: Remove glClear optimization based on drawable size</li>
+</ul>
+
+<p>Michel Dänzer (1):</p>
+<ul>
+ <li>configure: Only check for OpenCL without LLVM when the latter is certain</li>
+</ul>
+
+<p>Neil Roberts (1):</p>
+<ul>
+ <li>i965: Set the fast clear color value for texture surfaces</li>
+</ul>
+
+<p>Tom Stellard (2):</p>
+<ul>
+ <li>clover: Prevent Clang from printing number of errors and warnings to stderr.</li>
+ <li>clover: Don't use llvm's global context</li>
+</ul>
+
+<p>Ville Syrjälä (1):</p>
+<ul>
+ <li>i915: Fix gen2 texblend setup</li>
+</ul>
+
+
+</div>
+</body>
+</html>
commit a9750ff7b58409fc55092160b6706fbfa6564fda
Author: Carl Worth <cworth@cworth.org>
Date: Tue Jun 24 21:26:25 2014 -0700
Update VERSION to 10.2.2
In preparation for the 10.2.2 release.
diff --git a/VERSION b/VERSION
index 26ee5b0..68e8fce 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-10.2.1
+10.2.2
commit 274be620a8be7786e0ab11fda9e47a04ca5e9efc
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date: Mon Jun 16 20:54:32 2014 +0300
i915: Fix gen2 texblend setup
Fix an off by one in the texture unit walk during texblend
setup on gen2. This caused the last enabled texunit to be
skipped resulting in totally messed up texturing.
This is a regression introduced here:
commit 1ad443ecdd694dd9bf3c4a5050d749fb80db6fa2
Author: Eric Anholt <eric@anholt.net>
Date: Wed Apr 23 15:35:27 2014 -0700
i915: Redo texture unit walking on i830.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
(cherry picked from commit ca55a1aaa78a79ed0bc4b2410d4a8b52ef05c5b2)
diff --git a/src/mesa/drivers/dri/i915/i830_texblend.c b/src/mesa/drivers/dri/i915/i830_texblend.c
index 6e991c4..236be59 100644
--- a/src/mesa/drivers/dri/i915/i830_texblend.c
+++ b/src/mesa/drivers/dri/i915/i830_texblend.c
@@ -445,7 +445,7 @@ i830EmitTextureBlend(struct i830_context *i830)
I830_ACTIVESTATE(i830, I830_UPLOAD_TEXBLEND_ALL, false);
if (ctx->Texture._MaxEnabledTexImageUnit != -1) {
- for (unit = 0; unit < ctx->Texture._MaxEnabledTexImageUnit; unit++)
+ for (unit = 0; unit <= ctx->Texture._MaxEnabledTexImageUnit; unit++)
if (ctx->Texture.Unit[unit]._Current)
emit_texblend(i830, unit, blendunit++,
unit == ctx->Texture._MaxEnabledTexImageUnit);
commit 5751b661add600c520ece327c1198b179efbb731
Author: Kenneth Graunke <kenneth@whitecape.org>
Date: Wed Jun 18 22:25:33 2014 -0700
i965: Save meta stencil blit programs in the context.
When the last context in a share group is destroyed, the hash table
containing all of the shader programs (ctx->Shared->ShaderObjects) is
destroyed, throwing away all of the shader programs.
Using a static variable to store program IDs ends up holding on to them
after this, so we think we still have a compiled program, when it
actually got destroyed. _mesa_UseProgram then hits GL errors, since no
program by that ID exists.
Instead, store the program IDs in the context, so we know to recompile
if our context gets destroyed and the application creates another one.
Fixes es3conform tests when run without -minfmt (where it creates
separate contexts for testing each visual).
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=77865
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit a20994d61677adea7f15facbc6bb025f32b37c93)
Conflicts:
src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
diff --git a/src/mesa/drivers/dri/i965/brw_context.h b/src/mesa/drivers/dri/i965/brw_context.h
index a9adbf2..f54cadc 100644
--- a/src/mesa/drivers/dri/i965/brw_context.h
+++ b/src/mesa/drivers/dri/i965/brw_context.h
@@ -1115,6 +1115,9 @@ struct brw_context
struct brw_cache cache;
+ /** IDs for meta stencil blit shader programs. */
+ unsigned meta_stencil_blit_programs[2];
+
/* Whether a meta-operation is in progress. */
bool meta_in_progress;
diff --git a/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c b/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
index 842ebf9..021f485 100644
--- a/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
+++ b/src/mesa/drivers/dri/i965/brw_meta_stencil_blit.c
@@ -272,28 +272,30 @@ setup_coord_transform(GLuint prog, const struct blit_dims *dims)
}
static GLuint
-setup_program(struct gl_context *ctx, bool msaa_tex)
+setup_program(struct brw_context *brw, bool msaa_tex)
{
+ struct gl_context *ctx = &brw->ctx;
struct blit_state *blit = &ctx->Meta->Blit;
- static GLuint prog_cache[] = { 0, 0 };
const char *fs_source;
const struct sampler_and_fetch *sampler = &samplers[msaa_tex];
_mesa_meta_setup_vertex_objects(&blit->VAO, &blit->VBO, true, 2, 2, 0);
- if (prog_cache[msaa_tex]) {
- _mesa_UseProgram(prog_cache[msaa_tex]);
- return prog_cache[msaa_tex];
+ GLuint *prog_id = &brw->meta_stencil_blit_programs[msaa_tex];
+
+ if (*prog_id) {
+ _mesa_UseProgram(*prog_id);
+ return *prog_id;
}
fs_source = ralloc_asprintf(NULL, fs_tmpl, sampler->sampler,
sampler->fetch);
_mesa_meta_compile_and_link_program(ctx, vs_source, fs_source,
"i965 stencil blit",
- &prog_cache[msaa_tex]);
+ prog_id);
ralloc_free(fs_source);
- return prog_cache[msaa_tex];
+ return *prog_id;
}
/**
@@ -427,7 +429,7 @@ brw_meta_stencil_blit(struct brw_context *brw,
_mesa_TexParameteri(target, GL_DEPTH_STENCIL_TEXTURE_MODE,
GL_STENCIL_INDEX);
- prog = setup_program(ctx, target != GL_TEXTURE_2D);
+ prog = setup_program(brw, target != GL_TEXTURE_2D);
setup_bounding_rect(prog, orig_dims);
setup_drawing_rect(prog, &dims);
setup_coord_transform(prog, orig_dims);
commit 282ca8ba98802c3275b04e1253d30f5dbca5add9
Author: Daniel Manjarres <danmanj@gmail.com>
Date: Fri Jun 20 10:51:33 2014 -0700
glx: Don't crash on swap event for a Window (non-GLXWindow)
Prior to GLX 1.3 there was the glxMakeCurrent() function that took a
single drawable handle. The Drawable could be either a bare XID for a
Window or an XID for a glxpixmap.
GLX 1.3 added glxMakeContextCurrent that takes 2 handles: one for
reading, one for writing. Nowadays the old glxMakeCurrent call is
implemented as a call to glxMakeContextCurrent with the single handle
duplicated.
Because of this it is allowed to use a plain-old Window ID as an
argument to glxMakeContextCurrent, although nobody really documents this
sort of thing. The manpage for the NEW call specifies the arguments as
GLXPixmaps, but the actual code accepts Window XIDs too, and handles
them correctly.
Similarly, the glxSelectEvents function can also take a bare Window XID.
The "piglit" tests all use GLXWindows and/or GLXPixmaps. You never
tested swap events with a bare Window XID. That is what my app was
doing.
The swap_events code worked with Window XIDs in mesa 7.x.y. The new code
added in versions 8, 9, and 10 assumes that all buffer swap events have
a GLXPixmap associated with them. Because of the historical quirks
above, this is not true. Swap events for bare Window XIDs do NOT have a
glxpixmap resulting in a segfault.
Any app that uses the old school glxMakeCurrent call with a Window XID
while trying to use swap_events will crash when the libs try to lookup
the nonexistent GLXPixmap associated with the incoming swap event.
I believe that the people who wrote the spec overlooked this, because
the "sbc" field comes from the OML_sync extension that is defined in
terms of glxpixmaps only.
v2 (idr): Formatting changes.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54372
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 86bd2196b4ccec50443e99e6c8bf1659e1df9f37)
diff --git a/src/glx/dri2.c b/src/glx/dri2.c
index 7cb9d2d..cc6c164 100644
--- a/src/glx/dri2.c
+++ b/src/glx/dri2.c
@@ -131,10 +131,14 @@ DRI2WireToEvent(Display *dpy, XEvent *event, xEvent *wire)
aevent->msc = ((CARD64)awire->msc_hi << 32) | awire->msc_lo;
glxDraw = GetGLXDrawable(dpy, pdraw->drawable);
- if (awire->sbc < glxDraw->lastEventSbc)
- glxDraw->eventSbcWrap += 0x100000000;
- glxDraw->lastEventSbc = awire->sbc;
- aevent->sbc = awire->sbc + glxDraw->eventSbcWrap;
+ if (glxDraw != NULL) {
+ if (awire->sbc < glxDraw->lastEventSbc)
+ glxDraw->eventSbcWrap += 0x100000000;
+ glxDraw->lastEventSbc = awire->sbc;
+ aevent->sbc = awire->sbc + glxDraw->eventSbcWrap;
+ } else {
+ aevent->sbc = awire->sbc;
+ }
return True;
}
commit c50fa76c7e7977fc1767881c5007ece1bc8cf03e
Author: Iago Toral Quiroga <itoral@igalia.com>
Date: Mon Jun 16 17:00:15 2014 +0200
mesa: Copy Geom.UsesEndPrimitive when cloning a geometry program.
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 96a95f48eaf8af2c6ace51531bdd5bfbcf71165e)
diff --git a/src/mesa/program/program.c b/src/mesa/program/program.c
index b7332fc..988def1 100644
--- a/src/mesa/program/program.c
+++ b/src/mesa/program/program.c
@@ -552,6 +552,7 @@ _mesa_clone_program(struct gl_context *ctx, const struct gl_program *prog)
gpc->InputType = gp->InputType;
gpc->Invocations = gp->Invocations;
gpc->OutputType = gp->OutputType;
+ gpc->UsesEndPrimitive = gp->UsesEndPrimitive;
}
break;
default:
commit ad9264366a996dfa019525629e7438af5b62ec42
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Tue Jun 17 08:12:06 2014 -0700
clover: Don't use llvm's global context
An LLVMContext should only be accessed by a single and using the global
context was causing crashes in multi-threaded environments. Now we use
a separate context for each compile.
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 4aa128a123d7285677a527e724809339f15d33a7)
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 0148721..c3daa81 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -117,12 +117,13 @@ namespace {
#endif
llvm::Module *
- compile(const std::string &source, const std::string &name,
- const std::string &triple, const std::string &processor,
- const std::string &opts, clang::LangAS::Map& address_spaces) {
+ compile(llvm::LLVMContext &llvm_ctx, const std::string &source,
+ const std::string &name, const std::string &triple,
+ const std::string &processor, const std::string &opts,
+ clang::LangAS::Map& address_spaces) {
clang::CompilerInstance c;
- clang::EmitLLVMOnlyAction act(&llvm::getGlobalContext());
+ clang::EmitLLVMOnlyAction act(&llvm_ctx);
std::string log;
llvm::raw_string_ostream s_log(log);
std::string libclc_path = LIBCLC_LIBEXECDIR + processor + "-"
@@ -399,10 +400,12 @@ clover::compile_program_llvm(const compat::string &source,
target.size() - processor_str_len - 1);
clang::LangAS::Map address_spaces;
+ llvm::LLVMContext llvm_ctx;
+
// The input file name must have the .cl extension in order for the
// CompilerInvocation class to recognize it as an OpenCL source file.
- llvm::Module *mod = compile(source, "input.cl", triple, processor, opts,
- address_spaces);
+ llvm::Module *mod = compile(llvm_ctx, source, "input.cl", triple, processor,
+ opts, address_spaces);
find_kernels(mod, kernels);
commit 855adad13229d8e5c7da9bcb04b819009d34cb21
Author: Tom Stellard <thomas.stellard@amd.com>
Date: Mon May 12 16:32:29 2014 -0400
clover: Prevent Clang from printing number of errors and warnings to stderr.
https://bugs.freedesktop.org/show_bug.cgi?id=78581
CC: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 0cc391f0136c1532701a04c9b2f3a4cc49f25e8c)
diff --git a/src/gallium/state_trackers/clover/llvm/invocation.cpp b/src/gallium/state_trackers/clover/llvm/invocation.cpp
index 82e262f..0148721 100644
--- a/src/gallium/state_trackers/clover/llvm/invocation.cpp
+++ b/src/gallium/state_trackers/clover/llvm/invocation.cpp
@@ -187,6 +187,11 @@ namespace {
c.getLangOpts().NoBuiltin = true;
c.getTargetOpts().Triple = triple;
c.getTargetOpts().CPU = processor;
+
+ // This is a workaround for a Clang bug which causes the number
+ // of warnings and errors to be printed to stderr.
+ // http://www.llvm.org/bugs/show_bug.cgi?id=19735
+ c.getDiagnosticOpts().ShowCarets = false;
#if HAVE_LLVM <= 0x0301
c.getInvocation().setLangDefaults(clang::IK_OpenCL);
#else
commit 3568cf8128a28f8c860fa2a4c5bbf75c2e090c7e
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Tue Jun 17 23:28:56 2014 -0400
nv30: hack to avoid errors on unexpected color/zeta combinations
This is just a hack, it should be possible to create a temporary zeta
surface and render to that instead. However that's more complicated and
this avoids the render being entirely broken and errors being reported
by the card.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 25182e249e50b0fce41d975ae2b3c9cbdb8d0ef3)
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_state.c b/src/gallium/drivers/nouveau/nv30/nv30_state.c
index 64be1b7..708ba34 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_state.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_state.c
@@ -23,6 +23,7 @@
*
*/
+#include "util/u_format.h"
#include "util/u_helpers.h"
#include "util/u_inlines.h"
@@ -360,6 +361,22 @@ nv30_set_framebuffer_state(struct pipe_context *pipe,
nv30->framebuffer = *fb;
nv30->dirty |= NV30_NEW_FRAMEBUFFER;
+
+ /* Hardware can't handle different swizzled-ness or different blocksizes
+ * for zs and cbufs. If both are supplied and something doesn't match,
+ * blank out the zs for now so that at least *some* rendering can occur.
+ */
+ if (fb->nr_cbufs > 0 && fb->zsbuf) {
+ struct nv30_miptree *color_mt = nv30_miptree(fb->cbufs[0]->texture);
+ struct nv30_miptree *zeta_mt = nv30_miptree(fb->zsbuf->texture);
+
+ if (color_mt->swizzled != zeta_mt->swizzled ||
+ (util_format_get_blocksize(fb->zsbuf->format) > 2) !=
+ (util_format_get_blocksize(fb->cbufs[0]->format) > 2)) {
+ nv30->framebuffer.zsbuf = NULL;
+ debug_printf("Mismatched color and zeta formats, ignoring zeta.\n");
+ }
+ }
}
static void
commit aca2d98c35b795bd7124527bd320e0d10adcf658
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Tue Jun 17 22:32:03 2014 -0400
nv30: avoid dangling references to deleted contexts
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit c092c46b27c6f6a6674e8d67fb3afdb684811819)
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_context.c b/src/gallium/drivers/nouveau/nv30/nv30_context.c
index f325c5c..617b088 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_context.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_context.c
@@ -165,6 +165,9 @@ nv30_context_destroy(struct pipe_context *pipe)
if (nv30->draw)
draw_destroy(nv30->draw);
+ if (nv30->screen->base.pushbuf->user_priv == &nv30->bufctx)
+ nv30->screen->base.pushbuf->user_priv = NULL;
+
nouveau_bufctx_del(&nv30->bufctx);
if (nv30->screen->cur_ctx == nv30)
commit 08317fa9c4183e051d16f65eead742a39fd83014
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Tue Jun 17 22:22:56 2014 -0400
nv30: plug some memory leaks on screen destroy and shader compile
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 5af80f62680b8321c3af565bb57138a71429502c)
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index 53ca985..4d0b263 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -325,6 +325,12 @@ nv30_screen_destroy(struct pipe_screen *pscreen)
nouveau_fence_ref(NULL, &screen->base.fence.current);
}
+ nouveau_bo_ref(NULL, &screen->notify);
+
+ nouveau_heap_destroy(&screen->query_heap);
+ nouveau_heap_destroy(&screen->vp_exec_heap);
+ nouveau_heap_destroy(&screen->vp_data_heap);
+
nouveau_object_del(&screen->query);
nouveau_object_del(&screen->fence);
nouveau_object_del(&screen->ntfy);
diff --git a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
index 4955226..1f1fba2 100644
--- a/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
+++ b/src/gallium/drivers/nouveau/nv30/nvfx_fragprog.c
@@ -1225,6 +1225,7 @@ out:
if(fpc)
{
FREE(fpc->r_temp);
+ FREE(fpc->r_imm);
util_dynarray_fini(&fpc->if_stack);
util_dynarray_fini(&fpc->label_relocs);
util_dynarray_fini(&fpc->imm_data);
commit 4d0c445af6e600be6912da6bbaecc8c1642ed56c
Author: Ian Romanick <ian.d.romanick@intel.com>
Date: Tue Jun 17 11:14:17 2014 -0700
meta: Respect the driver's maximum number of draw buffers
Commit c1c1cf5f9 added infrastructure for saving and restoring draw
buffer state. However, it universially used MAX_DRAW_BUFFERS, but many
drivers support far fewer than that at limit. For example, the radeon
and i915 drivers only support 1. Using MAX_DRAW_BUFFERS causes meta to
generate GL errors.
Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=80115
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Tested-by: Kenneth Graunke <kenneth@whitecape.org> [on Broadwell]
Tested-by: jpsinthemix@verizon.net
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit cc219d1d6567cfada5d8e9adf01c2f00e00c93ca)
diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
index fec0d2b..6c26984 100644
--- a/src/mesa/drivers/common/meta.c
+++ b/src/mesa/drivers/common/meta.c
@@ -801,7 +801,7 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
int buf, real_color_buffers = 0;
memset(save->ColorDrawBuffers, 0, sizeof(save->ColorDrawBuffers));
- for (buf = 0; buf < MAX_DRAW_BUFFERS; buf++) {
+ for (buf = 0; buf < ctx->Const.MaxDrawBuffers; buf++) {
int buf_index = ctx->DrawBuffer->_ColorDrawBufferIndexes[buf];
if (buf_index == -1)
continue;
@@ -1213,7 +1213,7 @@ _mesa_meta_end(struct gl_context *ctx)
_mesa_BindRenderbuffer(GL_RENDERBUFFER, save->RenderbufferName);
if (state & MESA_META_DRAW_BUFFERS) {
- _mesa_DrawBuffers(MAX_DRAW_BUFFERS, save->ColorDrawBuffers);
+ _mesa_DrawBuffers(ctx->Const.MaxDrawBuffers, save->ColorDrawBuffers);
}
ctx->Meta->SaveStackDepth--;
commit 9ad103d6647e95fda12717e00abeec67abfccbf0
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Mon May 12 15:46:11 2014 -0700
mesa: Remove glClear optimization based on drawable size
A drawable size of 0x0 means that we don't have buffers for a drawable yet,
not that we have a zero-sized buffer. Core mesa shouldn't be optimizing out
drawing based on buffer size, since the draw call could be what triggers
the driver to go and get buffers. As discussed in the referenced bug report,
the optimization was added as part of a scatter-shot attempt to fix a
different problem. There's no other example in mesa core of using the
buffer size in this way.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=74005
Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
Signed-off-by: Kristian Høgsberg <krh@bitplanet.net>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit 7928b946adbcbbb835c0080967bbb538f6bd35dc)
diff --git a/src/mesa/main/clear.c b/src/mesa/main/clear.c
index 9df1f5e..cf93418 100644
--- a/src/mesa/main/clear.c
+++ b/src/mesa/main/clear.c
@@ -180,11 +180,6 @@ _mesa_Clear( GLbitfield mask )
return;
}
- if (ctx->DrawBuffer->Width == 0 || ctx->DrawBuffer->Height == 0 ||
- ctx->DrawBuffer->_Xmin >= ctx->DrawBuffer->_Xmax ||
- ctx->DrawBuffer->_Ymin >= ctx->DrawBuffer->_Ymax)
- return;
-
if (ctx->RasterDiscard)
return;
commit 12fcbcde47e360e87c7f8525b271fd8d52c418bf
Author: Grigori Goronzy <greg@chown.ath.cx>
Date: Wed Jun 4 18:54:38 2014 +0200
radeon/uvd: disable VC-1 simple/main on UVD 2.x
It's about as broken as on later UVD revisions.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66452
Cc: "10.1 10.2" <mesa-stable@lists.freedesktop.org>
Reviewed-by: Christian König <christian.koenig@amd.com>
(cherry picked from commit 6cd30f5d730c3c23251a8e72e17fe65810460764)
diff --git a/src/gallium/drivers/radeon/radeon_video.c b/src/gallium/drivers/radeon/radeon_video.c
index 63bd805..eae533e 100644
--- a/src/gallium/drivers/radeon/radeon_video.c
+++ b/src/gallium/drivers/radeon/radeon_video.c
@@ -242,7 +242,10 @@ int rvid_get_video_param(struct pipe_screen *screen,
switch (param) {
case PIPE_VIDEO_CAP_SUPPORTED:
/* no support for MPEG4 */
- return codec != PIPE_VIDEO_FORMAT_MPEG4;
+ return codec != PIPE_VIDEO_FORMAT_MPEG4 &&
+ /* FIXME: VC-1 simple/main profile is broken */
+ profile != PIPE_VIDEO_PROFILE_VC1_SIMPLE &&
+ profile != PIPE_VIDEO_PROFILE_VC1_MAIN;
case PIPE_VIDEO_CAP_PREFERS_INTERLACED:
case PIPE_VIDEO_CAP_SUPPORTS_INTERLACED:
/* and MPEG2 only with shaders */
commit d8e3158a43813b8824652d61134f775d0bf9d071
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date: Sat Jun 14 13:23:47 2014 -0400
nv50: make sure to mark first scissor dirty after blit
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit af05270ccfaa15fde9845a2250922caa8902c0fe)
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_surface.c b/src/gallium/drivers/nouveau/nv50/nv50_surface.c
index 6e68fb8..600f4f9 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_surface.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_surface.c
@@ -1106,6 +1106,7 @@ nv50_blitctx_post_blit(struct nv50_blitctx *blit)
NV50_NEW_RASTERIZER | NV50_NEW_ZSA | NV50_NEW_BLEND |
NV50_NEW_TEXTURES | NV50_NEW_SAMPLERS |
NV50_NEW_VERTPROG | NV50_NEW_GMTYPROG | NV50_NEW_FRAGPROG);
+ nv50->scissors_dirty |= 1;
nv50->base.pipe.set_min_samples(&nv50->base.pipe, blit->saved.min_samples);
}
commit ef5f998b769fa549b54dad6f7bb77ab17c391a73
Author: Kenneth Graunke <kenneth@whitecape.org>
Date: Fri Jun 13 15:26:40 2014 -0700
i965: Use 8x4 aligned rectangles for HiZ operations on Broadwell.
Like on Haswell, we need to use 8x4 aligned rectangle primitives for
hierarchical depth buffer resolves and depth clears. See the comments
in brw_blorp.cpp's brw_hiz_op_params() constructor. (The Broadwell
documentation confirms that this is still necessary.)
This patch makes the Broadwell code follow the same behavior as Chad and
Jordan's Gen7 BLORP code. Based on a patch by Topi Pohjolainen.
This fixes es3conform's framebuffer_blit_functionality_scissor_blit
test, with no Piglit regressions.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
Cc: "10.2" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 49659ad90c501ae584b7d76ca98f35a8f57d40fe)
Reply to: