Makefile.am | 2 VERSION | 2 bin/.cherry-ignore | 16 bin/get-pick-list.sh | 2 bin/get-typod-pick-list.sh | 39 + configure.ac | 4 debian/changelog | 12 debian/compat | 2 debian/control | 3 debian/patches/r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff | 387 ---------- debian/patches/series | 3 debian/patches/vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff | 28 debian/patches/workaround-binutils-mips-844357.diff | 43 - debian/rules | 3 debian/source/local-options | 2 docs/relnotes/13.0.3.html | 3 docs/relnotes/13.0.4.html | 254 ++++++ include/GL/internal/dri_interface.h | 2 include/vulkan/vk_icd.h | 110 ++ src/amd/common/ac_nir_to_llvm.c | 4 src/amd/vulkan/Makefile.am | 8 src/amd/vulkan/radv_cmd_buffer.c | 4 src/amd/vulkan/radv_device.c | 45 + src/amd/vulkan/radv_wsi.c | 12 src/compiler/glsl/opt_function_inlining.cpp | 2 src/compiler/glsl/opt_minmax.cpp | 4 src/compiler/nir/nir_opt_undef.c | 12 src/compiler/nir/nir_search.c | 16 src/compiler/spirv/vtn_cfg.c | 3 src/egl/drivers/dri2/platform_wayland.c | 6 src/egl/main/eglapi.c | 10 src/egl/main/eglcontext.c | 38 src/gallium/auxiliary/cso_cache/cso_context.c | 1 src/gallium/auxiliary/hud/hud_cpufreq.c | 1 src/gallium/auxiliary/vl/vl_zscan.c | 2 src/gallium/drivers/freedreno/freedreno_batch.c | 2 src/gallium/drivers/freedreno/freedreno_batch_cache.c | 4 src/gallium/drivers/freedreno/freedreno_batch_cache.h | 2 src/gallium/drivers/freedreno/freedreno_context.c | 17 src/gallium/drivers/freedreno/freedreno_context.h | 2 src/gallium/drivers/freedreno/freedreno_fence.c | 7 src/gallium/drivers/freedreno/freedreno_fence.h | 8 src/gallium/drivers/freedreno/freedreno_gmem.c | 4 src/gallium/drivers/freedreno/freedreno_screen.c | 4 src/gallium/drivers/nouveau/nouveau_video.c | 2 src/gallium/drivers/nouveau/nv30/nv30_clear.c | 2 src/gallium/drivers/nouveau/nv30/nv30_transfer.c | 8 src/gallium/drivers/nouveau/nv50/nv50_surface.c | 6 src/gallium/drivers/nouveau/nv50/nv50_vbo.c | 2 src/gallium/drivers/nouveau/nv50/nv98_video.c | 6 src/gallium/drivers/nouveau/nv50/nv98_video_bsp.c | 7 src/gallium/drivers/nouveau/nv50/nv98_video_ppp.c | 7 src/gallium/drivers/nouveau/nv50/nv98_video_vp.c | 9 src/gallium/drivers/nouveau/nvc0/nvc0_query_hw.c | 2 src/gallium/drivers/nouveau/nvc0/nvc0_vbo.c | 2 src/gallium/drivers/nouveau/nvc0/nvc0_video.c | 6 src/gallium/drivers/nouveau/nvc0/nvc0_video_bsp.c | 7 src/gallium/drivers/nouveau/nvc0/nvc0_video_ppp.c | 7 src/gallium/drivers/nouveau/nvc0/nvc0_video_vp.c | 9 src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp | 25 src/gallium/drivers/r600/sb/sb_gcm.cpp | 7 src/gallium/drivers/r600/sb/sb_ir.cpp | 4 src/gallium/drivers/r600/sb/sb_ir.h | 14 src/gallium/drivers/r600/sb/sb_pass.h | 6 src/gallium/drivers/r600/sb/sb_valtable.cpp | 42 - src/gallium/drivers/radeonsi/si_descriptors.c | 19 src/gallium/drivers/radeonsi/si_shader.c | 7 src/gallium/drivers/radeonsi/si_state.c | 4 src/gallium/state_trackers/glx/xlib/Makefile.am | 1 src/gallium/state_trackers/va/buffer.c | 7 src/gallium/state_trackers/va/picture.c | 11 src/gallium/state_trackers/va/va_private.h | 1 src/gallium/state_trackers/vdpau/output.c | 7 src/gallium/state_trackers/vdpau/surface.c | 12 src/glx/dri3_glx.c | 14 src/intel/isl/isl_format.c | 5 src/intel/vulkan/anv_device.c | 59 + src/intel/vulkan/anv_formats.c | 4 src/intel/vulkan/anv_image.c | 2 src/intel/vulkan/anv_wsi.c | 12 src/intel/vulkan/genX_cmd_buffer.c | 9 src/mapi/entry_x86-64_tls.h | 31 src/mesa/drivers/common/meta_generate_mipmap.c | 1 src/mesa/drivers/dri/common/dri_util.c | 4 src/mesa/drivers/dri/i965/brw_fs_generator.cpp | 8 src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 16 src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 22 src/mesa/drivers/dri/i965/gen8_draw_upload.c | 34 src/mesa/drivers/dri/i965/genX_blorp_exec.c | 4 src/mesa/drivers/dri/i965/hsw_sol.c | 3 src/mesa/main/shaderobj.c | 15 src/mesa/main/texformat.c | 2 src/util/list.h | 2 src/vulkan/wsi/wsi_common.h | 20 src/vulkan/wsi/wsi_common_wayland.c | 2 src/vulkan/wsi/wsi_common_x11.c | 16 96 files changed, 927 insertions(+), 742 deletions(-)
New commits: commit cb565aa0101449b875412e63029a7e0b5a16995e Author: Andreas Boll <andreas.boll....@gmail.com> Date: Wed Feb 1 14:15:40 2017 +0100 Update extend-diff-ignore. diff --git a/debian/changelog b/debian/changelog index 59e9874..53327a6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,6 +6,7 @@ mesa (13.0.4-1) UNRELEASED; urgency=medium * Drop workaround-binutils-mips-844357.diff, binutils regression has been fixed (Closes: #852030). * Revert to debhelper compat 9 (Workaround for #851130). + * Update extend-diff-ignore. -- Andreas Boll <andreas.boll....@gmail.com> Wed, 01 Feb 2017 13:30:04 +0100 diff --git a/debian/source/local-options b/debian/source/local-options index 255ac57..5dc5566 100644 --- a/debian/source/local-options +++ b/debian/source/local-options @@ -10,7 +10,7 @@ extend-diff-ignore = Android.*mk|CleanSpec\.mk extend-diff-ignore = \.clang-format|\.dir-locals\.el|\.editorconfig|\.mailmap|\.travis\.yml|appveyor\.yml # misc. files and scripts used by Mesa developers but not required for the build -extend-diff-ignore = src/compiler/nir/README|src/gallium/drivers/vc4/kernel/README|REVIEWERS|scripts/get_reviewer\.pl|bin/\.cherry-ignore|bin/bugzilla_mesa\.sh|bin/get-extra-pick-list\.sh|bin/get-pick-list\.sh|bin/perf-annotate-jit|bin/shortlog_mesa\.sh|src/intel/blorp/TODO|src/mapi/glapi/gen/next_available_offset\.sh|src/mesa/drivers/dri/gen-symbol-redefs\.py|src/mesa/drivers/dri/r200/Doxyfile +extend-diff-ignore = src/compiler/nir/README|src/gallium/drivers/vc4/kernel/README|REVIEWERS|scripts/get_reviewer\.pl|bin/\.cherry-ignore|bin/bugzilla_mesa\.sh|bin/get-extra-pick-list\.sh|bin/get-pick-list\.sh|bin/get-typod-pick-list\.sh|bin/perf-annotate-jit|bin/shortlog_mesa\.sh|src/intel/blorp/TODO|src/mapi/glapi/gen/next_available_offset\.sh|src/mesa/drivers/dri/gen-symbol-redefs\.py|src/mesa/drivers/dri/r200/Doxyfile # radeonsi GLSL lit tests (for developers only) extend-diff-ignore = src/gallium/drivers/radeonsi/glsl_tests/ commit e3fd86b24f6c3ac683826e740eeb9442257f9dd9 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Wed Jan 25 16:00:46 2017 +0100 Revert "Bump debhelper compat to 10." This reverts commit 181d812f4893be697cef128f407ff129331d0fc4. Conflicts: debian/changelog diff --git a/debian/changelog b/debian/changelog index e74bbfd..59e9874 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ mesa (13.0.4-1) UNRELEASED; urgency=medium sb-Fix-loop-optimization-related-hangs-on-eg.diff, upstream. * Drop workaround-binutils-mips-844357.diff, binutils regression has been fixed (Closes: #852030). + * Revert to debhelper compat 9 (Workaround for #851130). -- Andreas Boll <andreas.boll....@gmail.com> Wed, 01 Feb 2017 13:30:04 +0100 diff --git a/debian/compat b/debian/compat index f599e28..ec63514 100644 --- a/debian/compat +++ b/debian/compat @@ -1 +1 @@ -10 +9 diff --git a/debian/control b/debian/control index f469cbc..9c2f750 100644 --- a/debian/control +++ b/debian/control @@ -5,7 +5,8 @@ Maintainer: Debian X Strike Force <debian-x@lists.debian.org> Uploaders: Andreas Boll <andreas.boll....@gmail.com> Standards-Version: 3.9.8 Build-Depends: - debhelper (>= 10), + debhelper (>= 9), + dh-autoreconf, quilt (>= 0.40), pkg-config, libdrm-dev (>= 2.4.69) [!hurd-any], diff --git a/debian/rules b/debian/rules index 71bbd7a..f6041de 100755 --- a/debian/rules +++ b/debian/rules @@ -216,7 +216,8 @@ override_dh_makeshlibs: dh_makeshlibs -a -- -c4 %: - dh $@ --with quilt \ + dh $@ --with quilt,autoreconf \ + --parallel \ --builddirectory=build/ # For maintainer use only, generate a tarball: commit bf11df7eb906c3921a8f0cc804129d6a7cb52fd6 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Thu Jan 19 17:26:41 2017 +0100 Drop workaround-binutils-mips-844357.diff, binutils regression has been fixed. Closes: #852030 diff --git a/debian/changelog b/debian/changelog index 0cca32a..e74bbfd 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,8 @@ mesa (13.0.4-1) UNRELEASED; urgency=medium * New upstream release. * Drop vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff and r600- sb-Fix-loop-optimization-related-hangs-on-eg.diff, upstream. + * Drop workaround-binutils-mips-844357.diff, binutils regression has + been fixed (Closes: #852030). -- Andreas Boll <andreas.boll....@gmail.com> Wed, 01 Feb 2017 13:30:04 +0100 diff --git a/debian/patches/series b/debian/patches/series index 4f7ab78..9f0749f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,2 +1 @@ 07_gallium-fix-build-failure-on-powerpcspe.diff -workaround-binutils-mips-844357.diff diff --git a/debian/patches/workaround-binutils-mips-844357.diff b/debian/patches/workaround-binutils-mips-844357.diff deleted file mode 100644 index 0aedefb..0000000 --- a/debian/patches/workaround-binutils-mips-844357.diff +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index d215b63..a08870b 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -553,6 +553,14 @@ AC_LINK_IFELSE( - GC_SECTIONS="";]) - LDFLAGS=$save_LDFLAGS - -+# XXX workaround for Debian Bug #844357 -+# --gc-sections is currently broken on mips* with binutils > 2.27-9 -+# Debian bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=844357 -+# Upstream bug: https://sourceware.org/bugzilla/show_bug.cgi?id=20828 -+case "$host_cpu" in -+ mips*) GC_SECTIONS="" ;; -+esac -+ - AC_SUBST([GC_SECTIONS]) - - dnl -diff --git a/src/gallium/targets/va/Makefile.am b/src/gallium/targets/va/Makefile.am -index df825b7..12724a1 100644 ---- a/src/gallium/targets/va/Makefile.am -+++ b/src/gallium/targets/va/Makefile.am -@@ -29,6 +29,7 @@ gallium_drv_video_la_LIBADD = \ - $(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \ - $(top_builddir)/src/gallium/auxiliary/libgallium.la \ - $(top_builddir)/src/util/libmesautil.la \ -+ $(top_builddir)/src/compiler/nir/libnir.la \ - $(VL_LIBS) \ - $(LIBDRM_LIBS) \ - $(GALLIUM_COMMON_LIB_DEPS) -diff --git a/src/gallium/targets/vdpau/Makefile.am b/src/gallium/targets/vdpau/Makefile.am -index d388f8b..6f0f9e5 100644 ---- a/src/gallium/targets/vdpau/Makefile.am -+++ b/src/gallium/targets/vdpau/Makefile.am -@@ -34,6 +34,7 @@ libvdpau_gallium_la_LIBADD = \ - $(top_builddir)/src/gallium/auxiliary/libgalliumvl.la \ - $(top_builddir)/src/gallium/auxiliary/libgallium.la \ - $(top_builddir)/src/util/libmesautil.la \ -+ $(top_builddir)/src/compiler/nir/libnir.la \ - $(VL_LIBS) \ - $(LIBDRM_LIBS) \ - $(GALLIUM_COMMON_LIB_DEPS) commit 0fb7add17804fd62ce284aba398227e4cd4c689f Author: Andreas Boll <andreas.boll....@gmail.com> Date: Thu Jan 19 17:19:39 2017 +0100 Drop vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff and r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff, upstream. diff --git a/debian/changelog b/debian/changelog index d9e0d37..0cca32a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,8 @@ mesa (13.0.4-1) UNRELEASED; urgency=medium * New upstream release. + * Drop vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff and r600- + sb-Fix-loop-optimization-related-hangs-on-eg.diff, upstream. -- Andreas Boll <andreas.boll....@gmail.com> Wed, 01 Feb 2017 13:30:04 +0100 diff --git a/debian/patches/r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff b/debian/patches/r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff deleted file mode 100644 index f4c8e6a..0000000 --- a/debian/patches/r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff +++ /dev/null @@ -1,387 +0,0 @@ -commit e933246013eef376804662f3fcf4646c143c6c88 -Author: Heiko Przybyl <lil_...@web.de> -Date: Sun Nov 20 14:42:28 2016 +0100 - - r600/sb: Fix loop optimization related hangs on eg - - Make sure unused ops and their references are removed, prior to entering - the GCM (global code motion) pass, to stop GCM from breaking the loop - logic and thus hanging the GPU. - - Turns out, that sb has problems with loops and node optimizations - regarding associative folding: - - - the global code motion (gcm) pass moves ops up a loop level/basic block - until they've fulfilled their total usage count - - if there are ops folded into others, the usage count won't be - fulfilled and thus the op moved way up to the top - - within GCM the op would be visited and their deps would be moved - alongside it, to fulfill the src constaints - - in a loop, an unused op is moved out of the loop and GCM would move - the src value ops up as well - - now here arises the problem: if the loop counter is one of the src - values it would get moved up as well, the loop break condition would - never get hit and the shader turn into an endless loop, resulting in the - GPU hanging and being reset - - A reduced (albeit nonsense) piglit example would be: - - [require] - GLSL >= 1.20 - - [fragment shader] - - uniform int SIZE; - uniform vec4 lights[512]; - - void main() - { - float x = 0; - for(int i = 0; i < SIZE; i++) - x += lights[2*i+1].x; - } - - [test] - uniform int SIZE 1 - draw rect -1 -1 2 2 - - Which gets optimized to: - - ===== SHADER #12 OPT ================================== PS/BARTS/EVERGREEN ===== - ===== 42 dw ===== 1 gprs ===== 2 stack ========================================= - ALU 3 @24 - 1 y: MOV R0.y, 0 - t: MULLO_UINT R0.w, [0x00000002 2.8026e-45].x, R0.z - - LOOP_START_DX10 @22 - PUSH @6 - ALU 1 @30 KC0[CB0:0-15] - 2 M x: PRED_SETGE_INT __.x, R0.z, KC0[0].x - JUMP @14 POP:1 - LOOP_BREAK @20 - POP @14 POP:1 - ALU 2 @32 - 3 x: ADD_INT R0.x, R0.w, [0x00000002 2.8026e-45].x - - TEX 1 @36 - VFETCH R0.x___, R0.x, RID:0 MFC:16 UCF:0 FMT[..] - ALU 1 @40 - 4 y: ADD R0.y, R0.y, R0.x - LOOP_END @4 - EXPORT_DONE PIXEL 0 R0.____ EOP - ===== SHADER_END =============================================================== - - Notice R0.z being the loop counter/break condition relevant register - and being never incremented at all. Also some of the loop content - has been moved out of it, to fulfill the requirements for the one unused - op. - - With a debug build of mesa this would produce an error like - error at : PRED_SETGE_INT __, __, EM.2, R1.x.2||FP@R0.z, C0.x - : operand value R1.x.2||FP@R0.z was not previously written to its gpr - and the compilation would fail due to this. On a release build it gets - passed to the GPU. - - When using this patch, the loop remains intact: - - ===== SHADER #12 OPT ================================== PS/BARTS/EVERGREEN ===== - ===== 48 dw ===== 1 gprs ===== 2 stack ========================================= - ALU 2 @24 - 1 y: MOV R0.y, 0 - z: MOV R0.z, 0 - LOOP_START_DX10 @22 - PUSH @6 - ALU 1 @28 KC0[CB0:0-15] - 2 M x: PRED_SETGE_INT __.x, R0.z, KC0[0].x - JUMP @14 POP:1 - LOOP_BREAK @20 - POP @14 POP:1 - ALU 4 @30 - 3 t: MULLO_UINT T0.x, [0x00000002 2.8026e-45].x, R0.z - - 4 x: ADD_INT R0.x, T0.x, [0x00000002 2.8026e-45].x - - TEX 1 @40 - VFETCH R0.x___, R0.x, RID:0 MFC:16 UCF:0 FMT[..] - ALU 2 @44 - 5 y: ADD R0.y, R0.y, R0.x - z: ADD_INT R0.z, R0.z, 1 - LOOP_END @4 - EXPORT_DONE PIXEL 0 R0.____ EOP - ===== SHADER_END =============================================================== - - Piglit: ./piglit summary console -d results/*_gpu_noglx - name: unpatched_gpu_noglx patched_gpu_noglx - ---- ------------------- ----------------- - pass: 18016 18021 - fail: 748 743 - crash: 7 7 - skip: 1124 1124 - timeout: 0 0 - warn: 13 13 - incomplete: 0 0 - dmesg-warn: 0 0 - dmesg-fail: 0 0 - changes: 0 5 - fixes: 0 5 - regressions: 0 0 - total: 19908 19908 - - Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=94900 - Tested-by: Heiko Przybyl <lil_...@web.de> - Tested-on: Barts PRO HD6850 - Signed-off-by: Heiko Przybyl <lil_...@web.de> - Signed-off-by: Marek Olšák <marek.ol...@amd.com> - -diff --git a/src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp b/src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp -index 79aef91..abae2bf 100644 ---- a/src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp -+++ b/src/gallium/drivers/r600/sb/sb_dce_cleanup.cpp -@@ -30,6 +30,18 @@ - - namespace r600_sb { - -+int dce_cleanup::run() { -+ int r; -+ -+ // Run cleanup for as long as there are unused nodes. -+ do { -+ nodes_changed = false; -+ r = vpass::run(); -+ } while (r == 0 && nodes_changed); -+ -+ return r; -+} -+ - bool dce_cleanup::visit(node& n, bool enter) { - if (enter) { - } else { -@@ -110,7 +122,18 @@ bool dce_cleanup::visit(region_node& n, bool enter) { - void dce_cleanup::cleanup_dst(node& n) { - if (!cleanup_dst_vec(n.dst) && remove_unused && - !n.dst.empty() && !(n.flags & NF_DONT_KILL) && n.parent) -+ { -+ // Delete use references to the removed node from the src values. -+ for (vvec::iterator I = n.src.begin(), E = n.src.end(); I != E; ++I) { -+ value* v = *I; -+ if (v && v->def && v->uses.size()) -+ { -+ v->remove_use(&n); -+ } -+ } - n.remove(); -+ nodes_changed = true; -+ } - } - - bool dce_cleanup::visit(container_node& n, bool enter) { -@@ -130,7 +153,7 @@ bool dce_cleanup::cleanup_dst_vec(vvec& vv) { - if (v->gvn_source && v->gvn_source->is_dead()) - v->gvn_source = NULL; - -- if (v->is_dead() || (remove_unused && !v->is_rel() && !v->uses)) -+ if (v->is_dead() || (remove_unused && !v->is_rel() && !v->uses.size())) - v = NULL; - else - alive = true; -diff --git a/src/gallium/drivers/r600/sb/sb_gcm.cpp b/src/gallium/drivers/r600/sb/sb_gcm.cpp -index 236b2ea..9c75389 100644 ---- a/src/gallium/drivers/r600/sb/sb_gcm.cpp -+++ b/src/gallium/drivers/r600/sb/sb_gcm.cpp -@@ -199,10 +199,9 @@ void gcm::td_release_val(value *v) { - sblog << "\n"; - ); - -- use_info *u = v->uses; -- while (u) { -+ for (uselist::iterator I = v->uses.begin(), E = v->uses.end(); I != E; ++I) { -+ use_info *u = *I; - if (u->op->parent != &pending) { -- u = u->next; - continue; - } - -@@ -212,6 +211,7 @@ void gcm::td_release_val(value *v) { - sblog << "\n"; - ); - -+ assert(uses[u->op] > 0); - if (--uses[u->op] == 0) { - GCM_DUMP( - sblog << "td released : "; -@@ -222,7 +222,6 @@ void gcm::td_release_val(value *v) { - pending.remove_node(u->op); - ready.push_back(u->op); - } -- u = u->next; - } - - } -diff --git a/src/gallium/drivers/r600/sb/sb_ir.cpp b/src/gallium/drivers/r600/sb/sb_ir.cpp -index 5226893..d989dce 100644 ---- a/src/gallium/drivers/r600/sb/sb_ir.cpp -+++ b/src/gallium/drivers/r600/sb/sb_ir.cpp -@@ -255,7 +255,7 @@ void container_node::expand() { - void node::remove() {parent->remove_node(this); - } - --value_hash node::hash_src() { -+value_hash node::hash_src() const { - - value_hash h = 12345; - -@@ -269,7 +269,7 @@ value_hash node::hash_src() { - } - - --value_hash node::hash() { -+value_hash node::hash() const { - - if (parent && parent->subtype == NST_LOOP_PHI_CONTAINER) - return 47451; -diff --git a/src/gallium/drivers/r600/sb/sb_ir.h b/src/gallium/drivers/r600/sb/sb_ir.h -index 4fc4da2..74c0549 100644 ---- a/src/gallium/drivers/r600/sb/sb_ir.h -+++ b/src/gallium/drivers/r600/sb/sb_ir.h -@@ -446,15 +446,16 @@ enum use_kind { - }; - - struct use_info { -- use_info *next; - node *op; - use_kind kind; - int arg; - -- use_info(node *n, use_kind kind, int arg, use_info* next) -- : next(next), op(n), kind(kind), arg(arg) {} -+ use_info(node *n, use_kind kind, int arg) -+ : op(n), kind(kind), arg(arg) {} - }; - -+typedef std::list< use_info * > uselist; -+ - enum constraint_kind { - CK_SAME_REG, - CK_PACKED_BS, -@@ -498,7 +499,7 @@ public: - value_hash ghash; - - node *def, *adef; -- use_info *uses; -+ uselist uses; - - ra_constraint *constraint; - ra_chunk *chunk; -@@ -585,6 +586,7 @@ public: - } - - void add_use(node *n, use_kind kind, int arg); -+ void remove_use(const node *n); - - value_hash hash(); - value_hash rel_hash(); -@@ -790,8 +792,8 @@ public: - void replace_with(node *n); - void remove(); - -- virtual value_hash hash(); -- value_hash hash_src(); -+ virtual value_hash hash() const; -+ value_hash hash_src() const; - - virtual bool fold_dispatch(expr_handler *ex); - -diff --git a/src/gallium/drivers/r600/sb/sb_pass.h b/src/gallium/drivers/r600/sb/sb_pass.h -index 0346df1..e878f8c 100644 ---- a/src/gallium/drivers/r600/sb/sb_pass.h -+++ b/src/gallium/drivers/r600/sb/sb_pass.h -@@ -124,7 +124,9 @@ class dce_cleanup : public vpass { - public: - - dce_cleanup(shader &s) : vpass(s), -- remove_unused(s.dce_flags & DF_REMOVE_UNUSED) {} -+ remove_unused(s.dce_flags & DF_REMOVE_UNUSED), nodes_changed(false) {} -+ -+ virtual int run(); - - virtual bool visit(node &n, bool enter); - virtual bool visit(alu_group_node &n, bool enter); -@@ -140,6 +142,8 @@ private: - void cleanup_dst(node &n); - bool cleanup_dst_vec(vvec &vv); - -+ // Did we alter/remove nodes during a single pass? -+ bool nodes_changed; - }; - - -diff --git a/src/gallium/drivers/r600/sb/sb_valtable.cpp b/src/gallium/drivers/r600/sb/sb_valtable.cpp -index eb242b1..a8b7b49 100644 ---- a/src/gallium/drivers/r600/sb/sb_valtable.cpp -+++ b/src/gallium/drivers/r600/sb/sb_valtable.cpp -@@ -220,17 +220,33 @@ void value::add_use(node* n, use_kind kind, int arg) { - dump::dump_op(n); - sblog << " kind " << kind << " arg " << arg << "\n"; - } -- uses = new use_info(n, kind, arg, uses); -+ uses.push_back(new use_info(n, kind, arg)); - } - --unsigned value::use_count() { -- use_info *u = uses; -- unsigned c = 0; -- while (u) { -- ++c; -- u = u->next; -+struct use_node_comp { -+ explicit use_node_comp(const node *n) : n(n) {} -+ bool operator() (const use_info *u) { -+ return u->op->hash() == n->hash(); -+ } -+ -+ private: -+ const node *n; -+}; -+ -+void value::remove_use(const node *n) { -+ uselist::iterator it = -+ std::find_if(uses.begin(), uses.end(), use_node_comp(n)); -+ -+ if (it != uses.end()) -+ { -+ // TODO assert((*it)->kind == kind) ? -+ // TODO assert((*it)->arg == arg) ? -+ uses.erase(it); - } -- return c; -+} -+ -+unsigned value::use_count() { -+ return uses.size(); - } - - bool value::is_global() { -@@ -274,13 +290,7 @@ bool value::is_prealloc() { - } - - void value::delete_uses() { -- use_info *u, *c = uses; -- while (c) { -- u = c->next; -- delete c; -- c = u; -- } -- uses = NULL; -+ uses.erase(uses.begin(), uses.end()); - } - - void ra_constraint::update_values() { -@@ -468,7 +478,7 @@ bool r600_sb::sb_value_set::add_vec(vvec& vv) { - bool r600_sb::sb_value_set::contains(value* v) { - unsigned b = v->uid - 1; - if (b < bs.size()) -- return bs.get(v->uid - 1); -+ return bs.get(b); - else - return false; - } diff --git a/debian/patches/series b/debian/patches/series index 1c14631..4f7ab78 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -1,4 +1,2 @@ 07_gallium-fix-build-failure-on-powerpcspe.diff workaround-binutils-mips-844357.diff -vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff -r600-sb-Fix-loop-optimization-related-hangs-on-eg.diff diff --git a/debian/patches/vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff b/debian/patches/vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff deleted file mode 100644 index 01e0533..0000000 --- a/debian/patches/vl-zscan-fix-Fix-trivial-sign-compare-warnings.diff +++ /dev/null @@ -1,28 +0,0 @@ -commit ac57bcda1e0e6dcfa81e24468d5b682686120649 -Author: Christian König <christian.koe...@amd.com> -Date: Wed Dec 14 15:03:35 2016 +0100 - - vl/zscan: fix "Fix trivial sign compare warnings" - - The variable actually needs to be signed, otherwise converting it to a - float doesn't work as expected. - - Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=98914 - Signed-off-by: Christian König <christian.koe...@amd.com> - Reviewed-by: Nayan Deshmukh <nayan26deshm...@gmail.com> - Cc: "13.0" <mesa-sta...@lists.freedesktop.org> - Fixes: 1fb4179f927 ("vl: Fix trivial sign compare warnings") - -diff --git a/src/gallium/auxiliary/vl/vl_zscan.c b/src/gallium/auxiliary/vl/vl_zscan.c -index ef05af4..24d6452 100644 ---- a/src/gallium/auxiliary/vl/vl_zscan.c -+++ b/src/gallium/auxiliary/vl/vl_zscan.c -@@ -152,7 +152,7 @@ create_vert_shader(struct vl_zscan *zscan) - for (i = 0; i < zscan->num_channels; ++i) { - ureg_ADD(shader, ureg_writemask(tmp, TGSI_WRITEMASK_X), ureg_scalar(ureg_src(tmp), TGSI_SWIZZLE_Y), - ureg_imm1f(shader, 1.0f / (zscan->blocks_per_line * VL_BLOCK_WIDTH) -- * (i - (signed)zscan->num_channels / 2))); -+ * ((signed)i - (signed)zscan->num_channels / 2))); - - ureg_MAD(shader, ureg_writemask(o_vtex[i], TGSI_WRITEMASK_X), vrect, - ureg_imm1f(shader, 1.0f / zscan->blocks_per_line), ureg_src(tmp)); commit e94bae18371f2492db26a05bddfd20a07e280bc1 Author: Andreas Boll <andreas.boll....@gmail.com> Date: Wed Feb 1 13:30:14 2017 +0100 Bump changelog diff --git a/debian/changelog b/debian/changelog index f48b6ea..d9e0d37 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +mesa (13.0.4-1) UNRELEASED; urgency=medium + + * New upstream release. + + -- Andreas Boll <andreas.boll....@gmail.com> Wed, 01 Feb 2017 13:30:04 +0100 + mesa (13.0.3-1) unstable; urgency=medium [ Timo Aaltonen ] commit 3255d10da4c2703bfdfcefd8f59b0d8f21dbb43f Author: Emil Velikov <emil.veli...@collabora.com> Date: Wed Feb 1 10:10:38 2017 +0000 docs: add release notes for 13.0.4 Signed-off-by: Emil Velikov <emil.veli...@collabora.com> diff --git a/docs/relnotes/13.0.4.html b/docs/relnotes/13.0.4.html new file mode 100644 index 0000000..52105b7 --- /dev/null +++ b/docs/relnotes/13.0.4.html @@ -0,0 +1,254 @@ +<!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 13.0.4 Release Notes / February 1, 2017</h1> + +<p> +Mesa 13.0.4 is a bug fix release which fixes bugs found since the 13.0.3 release. +</p> +<p> +Mesa 13.0.4 implements the OpenGL 4.4 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 4.4. OpenGL +4.4 is <strong>only</strong> available if requested at context creation +because compatibility contexts are not supported. +</p> + + +<h2>SHA256 checksums</h2> +<pre> +TBD +</pre> + + +<h2>New features</h2> +<p>None</p> + + +<h2>Bug fixes</h2> + +<ul> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=92634">Bug 92634</a> - gallium's vl_mpeg12_decoder does not work with st/va</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94512">Bug 94512</a> - X segfaults with glx-tls enabled in a x32 environment</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=94900">Bug 94900</a> - HD6950 GPU lockup loop with various steam games (octodad[always], saints row 4[always], dead island[always], grid autosport[sometimes])</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98263">Bug 98263</a> - [radv] The Talos Principle fails to launch with "Fatal error: Cannot set display mode."</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98914">Bug 98914</a> - mesa-vdpau-drivers: breaks vdpau for mpeg2video</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=98975">Bug 98975</a> - Wasteland 2 Directors Cut: Hangs. GPU fault</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99030">Bug 99030</a> - [HSW, regression] transform feedback fails on Linux 4.8</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99085">Bug 99085</a> - [EGL] dEQP-EGL.functional.sharing.gles2.multithread intermittent</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99097">Bug 99097</a> - [vulkancts] dEQP-VK.image.store regression</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99100">Bug 99100</a> - [SKL,BDW,BSW,KBL] dEQP-VK.glsl.return.return_in_dynamic_loop_dynamic_vertex regression</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99144">Bug 99144</a> - Incorrect rendering using glDrawArraysInstancedBaseInstance and first != 0 on Skylake</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99154">Bug 99154</a> - Link time error when using multiple builtin functions</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99158">Bug 99158</a> - vdpau segfaults and gpu locks with kodi on R9285</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99185">Bug 99185</a> - dEQP-EGL.functional.image.modify.tex_rgb5_a1_tex_subimage_rgba8</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99188">Bug 99188</a> - dEQP-EGL.functional.create_context_ext.robust_gl_30.rgb565_no_depth_no_stencil</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99210">Bug 99210</a> - ES3-CTS.functional.texture.mipmap.cube.generate.rgba5551_*</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99354">Bug 99354</a> - [G71] "Assertion `bkref' failed" reproducible with glmark2</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99450">Bug 99450</a> - [amdgpu] Payday 2 visual glitches on some models</li> + +<li><a href="https://bugs.freedesktop.org/show_bug.cgi?id=99451">Bug 99451</a> - polygon offset use after free</li> + +</ul> + + +<h2>Changes</h2> + +<p>Andres Rodriguez (2):</p> +<ul> + <li>vulkan/wsi: clarify the severity of lack of DRI3 v2</li> + <li>radv: fix include order for installed headers v2</li> +</ul> + +<p>Arda Coskunses (2):</p> +<ul> + <li>vulkan/wsi/x11: don't crash on null visual</li> + <li>vulkan/wsi/x11: don't crash on null wsi x11 connection</li> +</ul> + +<p>Bas Nieuwenhuizen (1):</p> +<ul> + <li>radv: Support loader interface version 3.</li> +</ul> + +<p>Chad Versace (10):</p> +<ul> + <li>egl: Check config's surface types in eglCreate*Surface()</li> + <li>dri: Add __DRI_IMAGE_FORMAT_ARGB1555</li> + <li>mesa/texformat: Handle GL_RGBA + GL_UNSIGNED_SHORT_5_5_5_1</li> + <li>egl: Emit correct error when robust context creation fails</li> + <li>anv: Handle vkGetPhysicalDeviceQueueFamilyProperties with count == 0</li> + <li>mesa/shaderobj: Fix races on refcounts</li> + <li>meta: Disable dithering during glGenerateMipmap</li> + <li>vulkan: Add new cast macros for VkIcd types</li> + <li>vulkan: Update vk_icd.h to interface version 3</li> + <li>anv: Support loader interface version 3 (patch v2)</li> +</ul> + +<p>Christian König (1):</p> +<ul> + <li>vl/zscan: fix "Fix trivial sign compare warnings"</li> +</ul> + +<p>Chuck Atkins (1):</p> +<ul> + <li>glx: Add missing glproto dependency for gallium-xlib glx</li> +</ul> + +<p>Damien Grassart (1):</p> +<ul> + <li>anv: return count of queue families written</li> +</ul> + +<p>Dave Airlie (1):</p> +<ul> + <li>radv: flush smem for uniform buffer bit.</li> +</ul> + +<p>Emil Velikov (10):</p> +<ul> + <li>docs: add sha256 checksums for 13.0.3</li> + <li>cherry-ignore: add couple of intel_miptree_copy related patches</li> + <li>cherry-ignore: add radv: Call nir_lower_constant_initializers."</li> + <li>get-typod-pick-list.sh: add new script</li> + <li>cherry-ignore: add "_mesa_ClampColor extension/version fix"</li> + <li>cherry-ignore: add wayland race condition fix</li> + <li>egl/wayland: use the destroy_window_callback for swrast</li> + <li>automake: use shared llvm libs for make distcheck</li> + <li>get-pick-list.sh: Require explicit "13.0" for nominating stable patches</li> + <li>Update version to 13.0.4</li> +</ul> + +<p>Francisco Jerez (1):</p> +<ul> + <li>anv: Fix uniform and storage buffer offset alignment limits.</li> +</ul> + +<p>Fredrik Höglund (2):</p> +<ul> + <li>radv: fix dual source blending</li> + <li>dri3: Fix MakeCurrent without a default framebuffer</li> +</ul> + +<p>Grazvydas Ignotas (1):</p> +<ul> + <li>mapi: update the asm code to support x32</li> +</ul> + +<p>Heiko Przybyl (1):</p> +<ul> + <li>r600/sb: Fix loop optimization related hangs on eg</li> +</ul> + +<p>Ilia Mirkin (1):</p> +<ul> + <li>nouveau: take extra push space into account for pushbuf_space calls</li> +</ul> + +<p>Jason Ekstrand (4):</p> +<ul> + <li>i965/generator/tex: Handle an immediate sampler with an indirect texture</li> + <li>anv/formats: Use the real format for B4G4R4A4_UNORM_PACK16 on gen8</li> + <li>nir/search: Only allow matching SSA values</li> + <li>isl: Mark A4B4G4R4_UNORM as supported on gen8</li> +</ul> + +<p>Jonas Ådahl (1):</p> +<ul> + <li>egl/wayland: Cleanup private display connection when init fails</li> +</ul> + +<p>Kenneth Graunke (7):</p> +<ul> + <li>i965: Don't bail on vertex element processing if we need draw params.</li> + <li>i965: Fix last slot calculations</li> + <li>i965: Fix texturing in the vec4 TCS and GS backends.</li> + <li>spirv: Move cursor before calling vtn_ssa_value() in phi 2nd pass.</li> + <li>i965: Make BLORP disable the NP Z PMA stall fix.</li> + <li>glsl: Use ir_var_temporary when generating inline functions.</li> + <li>i965: Properly flush in hsw_pause_transform_feedback().</li> +</ul> + +<p>Marek Olšák (4):</p> +<ul> + <li>vdpau: call texture_get_handle while the mutex is being held</li> + <li>va: call texture_get_handle while the mutex is being held</li> + <li>radeonsi: for the tess barrier, only use emit_waitcnt on SI and LLVM 3.9+</li> + <li>radeonsi: don't forget to add HTILE to the buffer list for texturing</li> +</ul> + +<p>Michel Dänzer (1):</p> +<ul> + <li>cso: Don't restore nr_samplers in cso_restore_fragment_samplers</li> +</ul> + +<p>Nanley Chery (3):</p> +<ul> + <li>anv/cmd_buffer: Fix arrayed depth/stencil attachments</li> + <li>anv/cmd_buffer: Fix programmed HiZ qpitch</li> + <li>anv/image: Disable HiZ for depth buffer arrays</li> +</ul> + +<p>Nayan Deshmukh (1):</p> +<ul> + <li>st/va: delay calling begin_frame until we have all parameters</li> +</ul> + +<p>Rob Clark (1):</p> +<ul> + <li>freedreno: some fence cleanup</li> +</ul> + +<p>Samuel Pitoiset (1):</p> +<ul> + <li>gallium/hud: add missing break in hud_cpufreq_graph_install()</li> +</ul> + +<p>Timothy Arceri (3):</p>