]> git.sesse.net Git - movit/blobdiff - NEWS
Release Movit 1.6.3.
[movit] / NEWS
diff --git a/NEWS b/NEWS
index 648d1138d1a4667f25eb02231475388e35743bb4..28c066c1f37bee6bc68b525741668dff05b0722f 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,146 @@
+Movit 1.6.3, July 7th, 2019
+
+  - Various bugfixes.
+
+
+Movit 1.6.2, March 18th, 2018
+
+  - Various bugfixes.
+
+
+Movit 1.6.1, January 31st, 2018
+
+  - Loosen up some restrictions on strong one-to-one-effects. In particular,
+    this fixes a bug with MixEffect and compute shaders that hit some
+    Nageru setups.
+
+
+Movit 1.6.0, January 24th, 2018
+
+  - Support for effects that work as compute shaders. Compute shaders are
+    generally slower than fragment shaders for the same algorithm,
+    but allow some forms of communication between shader invocations
+    and have more flexible output, which can enable more efficient algorithms. 
+    See effect.h for more details. Note that the fastest rendering API on
+    EffectChain is now to a texture if possible, not to an FBO. This will
+    only matter if the last effect is a compute shader.
+    
+  - Movit now includes a compute shader implementation of DeinterlaceEffect,
+    which is automatically used instead of the fragment shader implementation
+    if your GPU and OpenGL driver supports it (in practice, this means on
+    all platforms except on macOS). The compute shader version is typically
+    20–80% faster than the fragment shader version, depending on your GPU
+    and other factors.
+
+    A compute shader implementation of ResampleEffect was written but
+    ultimately failed to be faster, and so is not included.
+
+  - Support for microbenchmarks of effects through the Google microbenchmarking
+    framework (optional). Currently, DeinterlaceEffect and ResampleEffect has
+    benchmarks; enable them by running the unit test with --benchmark (also try
+    --benchmark --help).
+
+  - Effects can now explicitly request _not_ to have mipmaps, which means they
+    can do so without needing to request bounce and fiddling with the sampler
+    state. Note that this is an API change for effects.
+
+  - Movit now requires C++11, both to build and to #include the header files.
+    Support for SDL1 has been dropped; unit tests and the demo program now need
+    SDL2.
+
+  - Various smaller bugfixes and optimizations.
+    
+
+Movit 1.5.3, August 10th, 2017
+
+  - Various bugfixes.
+
+
+Movit 1.5.2, July 5th, 2017
+
+  - The texture generation for ResampleEffect (when the size is changed)
+    now uses less CPU.
+
+  - Work around an NVIDIA driver threading bug by aggressively caching VAOs.
+
+
+Movit 1.5.1, May 29th, 2017
+
+  - Allow YCbCrInput to change input format after finalize.
+
+  - Some minor YCbCrInput bugfixes.
+
+
+Movit 1.5.0, March 21st, 2017
+
+  - Support interleaved Y'CbCr input (4:4:4 in a single texture).
+
+  - Support 10-bit and 12-bit Y'CbCr, both for input and output. For planar,
+    these are supported packed in 16-bit ints; for interleaved, 10:10:10:2 is
+    supported. (Efficient conversion to and from v210, ie. 10-bit 4:2:2,
+    is possible using compute shaders, but Movit does not include support
+    for them at the current point.) Note that this now means the num_levels
+    flag in YCbCrFormat actually matters, although 0 will be interpreted
+    as 256 (8-bit) for the benefit of older applications.
+
+  - Limited support for having multiple Y'CbCr outputs from a chain.
+
+  - Allow changing the Y'CbCr output coefficients runtime, ie., after finalize.
+
+  - Fix an issue where the last pass would have been rendered with the sRGB
+    flag set, which confused Qt applications running in certain NVIDIA
+    configurations.
+
+
+Movit 1.4.0, November 5th, 2016
+
+  - Allow setting the intermediate format for chains, instead of hardcoding
+    it at 16-bit RGBA; advanced users can use this to e.g. ask for 8-bit
+    sRGB intermediates, reducing the amount of memory bandwidth needed
+    at the cost of reduced precision. Whether this is a good tradeoff or not
+    depends on the exact chain and your requirements.
+
+  - Fix an issue where a (cached) shader program could be used from multiple
+    threads at a time, causing the uniforms to contain unpredictable values.
+
+  - Make the error printed on check_error() slightly friendlier: Include the
+    enum if possible, and print it to stderr instead of stdout.
+
+
+Movit 1.3.2, February 23rd, 2016
+
+  - Fix an issue with initialization in certain locales. Patch from
+    Jean-Baptiste Mardelle.
+
+
+Movit 1.3.1, February 15th, 2016
+
+  - Fix an issue where certain effect chains (particularly involving
+    out-of-tree effects that return only a constant color) could cause
+    texture coordinates not to be set properly. (The new code probably
+    also has slightly lower OpenGL driver overhead.) Reported by
+    Christophe Thommeret.
+
+
+Movit 1.3.0, January 31st, 2016
+
+  - Movit now requires GLSL 1.30 (so a driver from 2008 or later);
+    before, it claimed to support 1.10, but actually used 1.30 features.
+    Note that some OpenGL drivers, in particular on OS X, only supports
+    GLSL 1.30 (actually, 1.50) if you have an OpenGL core context.
+
+  - Add a deinterlacer, based on YADIF.
+
+  - Allow parallel output to RGBA and Y'CbCr textures at the same time.
+
+  - Make FlatInput and YCbCrInput support taking in external OpenGL
+    textures. Also allow them to change width/height after instantiation.
+
+  - Various compatibility and performance fixes. In particular,
+    fp16 conversion on older (non-Haswell) CPUs is much faster, due to
+    new conversion code by Fabian Giesen.
+
+
 Movit 1.2.0, September 24th, 2015
 
   - Movit now ships a version.h with a #define MOVIT_VERSION that