Hello community, here is the log from the commit of package zimg for openSUSE:Factory checked in at 2018-01-30 15:43:54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/zimg (Old) and /work/SRC/openSUSE:Factory/.zimg.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "zimg" Tue Jan 30 15:43:54 2018 rev:24 rq:570773 version:2.7.2 Changes: -------- --- /work/SRC/openSUSE:Factory/zimg/zimg.changes 2018-01-16 09:42:52.868255182 +0100 +++ /work/SRC/openSUSE:Factory/.zimg.new/zimg.changes 2018-01-30 15:44:13.515104704 +0100 @@ -1,0 +2,9 @@ +Mon Jan 29 20:40:37 UTC 2018 - [email protected] + +- Update to 2.7.2 + * graph: fix image corruption in certain conversions + (introduced in 2.7) + * resize: fix AVX-512 horizontal resize with certain widths + (introduced in 2.6) + +------------------------------------------------------------------- Old: ---- release-2.7.1.tar.gz New: ---- release-2.7.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ zimg.spec ++++++ --- /var/tmp/diff_new_pack.la8WaX/_old 2018-01-30 15:44:14.351065677 +0100 +++ /var/tmp/diff_new_pack.la8WaX/_new 2018-01-30 15:44:14.351065677 +0100 @@ -18,7 +18,7 @@ %define sover 2 Name: zimg -Version: 2.7.1 +Version: 2.7.2 Release: 0 Summary: Scaling, colorspace conversion, and dithering library License: WTFPL ++++++ release-2.7.1.tar.gz -> release-2.7.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.1/ChangeLog new/zimg-release-2.7.2/ChangeLog --- old/zimg-release-2.7.1/ChangeLog 2018-01-14 00:39:46.000000000 +0100 +++ new/zimg-release-2.7.2/ChangeLog 2018-01-20 03:58:48.000000000 +0100 @@ -1,3 +1,7 @@ +2.7.2 +graph: fix image corruption in certain conversions (introduced in 2.7) +resize: fix AVX-512 horizontal resize with certain widths (introduced in 2.6) + 2.7.1 colorspace: fix incorrect ST.428 primaries (introduced in 2.7) colorspace: preserve BTB/WTW when approximate_gamma is set diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.1/configure.ac new/zimg-release-2.7.2/configure.ac --- old/zimg-release-2.7.1/configure.ac 2018-01-14 00:39:46.000000000 +0100 +++ new/zimg-release-2.7.2/configure.ac 2018-01-20 03:58:48.000000000 +0100 @@ -1,4 +1,4 @@ -AC_INIT([zimg], [2.7.1], [https://github.com/sekrit-twc/zimg/pulls], [zimg], [https://github.com/sekrit-twc/zimg]) +AC_INIT([zimg], [2.7.2], [https://github.com/sekrit-twc/zimg/pulls], [zimg], [https://github.com/sekrit-twc/zimg]) AC_CONFIG_MACRO_DIR([m4]) : ${CFLAGS=""} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.1/src/zimg/api/zimg.cpp new/zimg-release-2.7.2/src/zimg/api/zimg.cpp --- old/zimg-release-2.7.1/src/zimg/api/zimg.cpp 2018-01-14 00:39:46.000000000 +0100 +++ new/zimg-release-2.7.2/src/zimg/api/zimg.cpp 2018-01-20 03:58:48.000000000 +0100 @@ -36,7 +36,7 @@ thread_local zimg_error_code_e g_last_error = ZIMG_ERROR_SUCCESS; thread_local std::string g_last_error_msg; -constexpr unsigned VERSION_INFO[] = { 2, 7, 1 }; +constexpr unsigned VERSION_INFO[] = { 2, 7, 2 }; template <class T, class U> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.1/src/zimg/graph/filtergraph.cpp new/zimg-release-2.7.2/src/zimg/graph/filtergraph.cpp --- old/zimg-release-2.7.1/src/zimg/graph/filtergraph.cpp 2018-01-14 00:39:46.000000000 +0100 +++ new/zimg-release-2.7.2/src/zimg/graph/filtergraph.cpp 2018-01-20 03:58:48.000000000 +0100 @@ -123,6 +123,7 @@ struct SimulationState { unsigned pos; + unsigned cache_pos; unsigned lines; bool hit; }; @@ -297,8 +298,10 @@ m_cache_id = id; } - void update_cache_state(SimulationState *state, unsigned n) const + void update_cache_state(SimulationState *state, unsigned first, unsigned last) const { + unsigned n = std::max(state[get_cache_id()].cache_pos, last) - first; + if (n > state[get_cache_id()].lines) { unsigned height = get_image_attributes().height; unsigned mask = select_zimg_buffer_mask(n); @@ -308,6 +311,8 @@ else state[get_cache_id()].lines = mask + 1; } + + state[get_cache_id()].cache_pos = std::max(state[get_cache_id()].cache_pos, last); } void init_cache_context(ExecutionState::node_cache_state *ctx) const @@ -430,7 +435,7 @@ state[get_id()].pos = pos; state[get_id()].hit = true; - update_cache_state(state, pos - first); + update_cache_state(state, first, pos); } size_t get_context_size(ExecutionStrategy) const override { return 0; } @@ -546,7 +551,7 @@ state[get_id()].pos = pos; state[get_id()].hit = true; - update_cache_state(state, pos - first); + update_cache_state(state, first, pos); } size_t get_tmp_size(unsigned left, unsigned right) const override @@ -787,7 +792,7 @@ state[get_id()].hit = true; state[get_id()].pos = pos; - update_cache_state(state, pos - first); + update_cache_state(state, first, pos); } size_t get_context_size(ExecutionStrategy strategy) const override diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/zimg-release-2.7.1/src/zimg/resize/x86/resize_impl_avx512.cpp new/zimg-release-2.7.2/src/zimg/resize/x86/resize_impl_avx512.cpp --- old/zimg-release-2.7.1/src/zimg/resize/x86/resize_impl_avx512.cpp 2018-01-14 00:39:46.000000000 +0100 +++ new/zimg-release-2.7.2/src/zimg/resize/x86/resize_impl_avx512.cpp 2018-01-20 03:58:48.000000000 +0100 @@ -462,8 +462,8 @@ void resize_line16_h_u16_avx512(const unsigned *filter_left, const int16_t * RESTRICT filter_data, unsigned filter_stride, unsigned filter_width, const uint16_t * RESTRICT src_ptr, uint16_t * const *dst_ptr, unsigned src_base, unsigned left, unsigned right, uint16_t limit) { - unsigned vec_left = ceil_n(left, 16); - unsigned vec_right = floor_n(right, 16); + unsigned vec_left = ceil_n(left, 32); + unsigned vec_right = floor_n(right, 32); #define XITER resize_line16_h_u16_avx512_xiter<DoLoop, Tail> #define XARGS filter_left, filter_data, filter_stride, filter_width, src_ptr, src_base, limit @@ -1555,7 +1555,7 @@ context.left.resize(ceil_n(filter.filter_rows, 16) / 16); context.permute.resize(ceil_n(filter.filter_rows, 16) * 2); context.data.resize(ceil_n(filter.filter_rows, 16) * filter_width); - context.filter_rows = ceil_n(filter.filter_rows, 2); + context.filter_rows = filter.filter_rows; context.filter_width = filter_width; context.input_width = filter.input_width;
