]> git.sesse.net Git - movit/blob - NEWS
Support chaining certain effects after compute shaders.
[movit] / NEWS
1 Movit 1.5.3, August 10th, 2017
2
3   - Various bugfixes.
4
5
6 Movit 1.5.2, July 5th, 2017
7
8   - The texture generation for ResampleEffect (when the size is changed)
9     now uses less CPU.
10
11   - Work around an NVIDIA driver threading bug by aggressively caching VAOs.
12
13
14 Movit 1.5.1, May 29th, 2017
15
16   - Allow YCbCrInput to change input format after finalize.
17
18   - Some minor YCbCrInput bugfixes.
19
20
21 Movit 1.5.0, March 21st, 2017
22
23   - Support interleaved Y'CbCr input (4:4:4 in a single texture).
24
25   - Support 10-bit and 12-bit Y'CbCr, both for input and output. For planar,
26     these are supported packed in 16-bit ints; for interleaved, 10:10:10:2 is
27     supported. (Efficient conversion to and from v210, ie. 10-bit 4:2:2,
28     is possible using compute shaders, but Movit does not include support
29     for them at the current point.) Note that this now means the num_levels
30     flag in YCbCrFormat actually matters, although 0 will be interpreted
31     as 256 (8-bit) for the benefit of older applications.
32
33   - Limited support for having multiple Y'CbCr outputs from a chain.
34
35   - Allow changing the Y'CbCr output coefficients runtime, ie., after finalize.
36
37   - Fix an issue where the last pass would have been rendered with the sRGB
38     flag set, which confused Qt applications running in certain NVIDIA
39     configurations.
40
41
42 Movit 1.4.0, November 5th, 2016
43
44   - Allow setting the intermediate format for chains, instead of hardcoding
45     it at 16-bit RGBA; advanced users can use this to e.g. ask for 8-bit
46     sRGB intermediates, reducing the amount of memory bandwidth needed
47     at the cost of reduced precision. Whether this is a good tradeoff or not
48     depends on the exact chain and your requirements.
49
50   - Fix an issue where a (cached) shader program could be used from multiple
51     threads at a time, causing the uniforms to contain unpredictable values.
52
53   - Make the error printed on check_error() slightly friendlier: Include the
54     enum if possible, and print it to stderr instead of stdout.
55
56
57 Movit 1.3.2, February 23rd, 2016
58
59   - Fix an issue with initialization in certain locales. Patch from
60     Jean-Baptiste Mardelle.
61
62
63 Movit 1.3.1, February 15th, 2016
64
65   - Fix an issue where certain effect chains (particularly involving
66     out-of-tree effects that return only a constant color) could cause
67     texture coordinates not to be set properly. (The new code probably
68     also has slightly lower OpenGL driver overhead.) Reported by
69     Christophe Thommeret.
70
71
72 Movit 1.3.0, January 31st, 2016
73
74   - Movit now requires GLSL 1.30 (so a driver from 2008 or later);
75     before, it claimed to support 1.10, but actually used 1.30 features.
76     Note that some OpenGL drivers, in particular on OS X, only supports
77     GLSL 1.30 (actually, 1.50) if you have an OpenGL core context.
78
79   - Add a deinterlacer, based on YADIF.
80
81   - Allow parallel output to RGBA and Y'CbCr textures at the same time.
82
83   - Make FlatInput and YCbCrInput support taking in external OpenGL
84     textures. Also allow them to change width/height after instantiation.
85
86   - Various compatibility and performance fixes. In particular,
87     fp16 conversion on older (non-Haswell) CPUs is much faster, due to
88     new conversion code by Fabian Giesen.
89
90
91 Movit 1.2.0, September 24th, 2015
92
93   - Movit now ships a version.h with a #define MOVIT_VERSION that
94     increases on every API change, including in git. (The number
95     itself carries no semantic meaning beyond this.) Movit 1.2.0
96     is not API or ABI compatible with 1.1.x, so there has been a
97     soname bump to libmovit.so.3.
98
99   - More flexible Y'CbCr input; in particular, a special input
100     for 4:2:2 interleaved data (UYVY), and support for semi-planar
101     input (Cb and Cr in the same texture, like in NV12). Note that
102     you should now also set the new “num_levels” member of
103     YCbYCbCrFormat to 256 (signifying 8-bit input), although
104     it is not used yet; this is a stepping stone towards supporting
105     10- and 12-bit Y'CbCr.
106
107   - Basic support for Y'CbCr _output_. Currently only 8-bit,
108     and only 4:4:4 (ie., you'll need to subsample yourself
109     afterwards). It is possible to split the output into multiple
110     textures, though, if you want a luma/chroma split (NV12-like)
111     or full planar.
112
113   - Support top-left origin for output. This is only really useful
114     if you are rendering directly into some memory area with top-left
115     origin; most users will get the expected behavior by using
116     bottom-left as before.
117
118   - Rework uniform handling for less OpenGL overhead. Note that
119     this means your effects now need to register uniforms in the
120     C++ code instead of declaring them in the .frag file.
121
122   - Make the PaddingEffect border subpixel-aware, and also support
123     an arbitrary (subpixel) border offset. This means that you can
124     compose PaddingEffect with an integral left/top offset
125     (use the new IntegralPaddingEffect for potentially more speed)
126     and ResampleEffect with a subpixel left/top offset (and zoom to
127     compensate) to get Lanczos interpolation for the pixels and a
128     simple bilinear interpolation for the border itself.
129
130   - Fix a bug that could cause very bad filter weights in
131     ResampleEffect.
132
133   - Various performance improvements, in particular with regards to
134     CPU usage in ResampleEffect.
135
136
137 Movit 1.1.3, March 29th, 2015
138
139   - Fix accuracy issues in ResampleEffect, particularly when
140     zooming. Note that this might cost a few percent performance.
141     Reported by Christophe Thommeret.
142
143   - Make the number of BlurEffect taps configurable.
144     Based on patch by Christophe Thommeret.
145
146   - Multiple other bugfixes, some courtesy Dan Dennedy and
147     Christophe Thommeret. In particular, thread-safety fixes
148     related to locales and chain finalization.
149
150
151 Movit 1.1.2, August 12th, 2014
152
153   - Performance bugfix: Fix texture freelist behavior so that it's
154     LRU instead of the exact opposite. Patch by Christophe Thommeret.
155
156   - Performance bugfix: Correct the number of blur taps read in the
157     blur filter (it was reading about twice as many as it should).
158     Also found by Christophe Thommeret.
159
160
161 Movit 1.1.1, April 12th, 2014
162
163  - Fix an issue that could cause assertion failure in ResourcePool
164    when FBOs are reused, especially with NVIDIA's drivers.
165
166
167 Movit 1.1, April 10th, 2014
168
169  - NOTE: Movit now uses libepoxy rather than GLEW. This is needed because
170    of core context and GLES3 support (see below). Movit 1.1 should be
171    generally API-compatible with 1.0.3 (with the exception of the next
172    point), but is not ABI-compatible, so there has been a soname bump
173    to libmovit.so.2.
174
175  - NOTE: The rules for using an EffectChain or ResourcePool in multiple
176    OpenGL contexts or threads have changed somewhat; see the comments in
177    resource_pool.h.
178
179  - Movit will now work in OpenGL core contexts, and on GLES 3.0 or newer.
180    (GLES2 devices are not supported.) This also holds for all unit tests,
181    provided that you use SDL2 and not SDL1 (because SDL2 is needed to set
182    up such contexts). Note that the included demo application still requires
183    a classic OpenGL context.
184
185  - ResampleEffect can now do sub-pixel translate and/or zoom.
186
187  - LumaMixEffect now has an “invert” flag, as a convenience to e.g. change
188    a left-to-right wipe into a right-to-left one.
189
190  - Significant reduction in driver overhead, especially on NVIDIA drivers.
191
192  - Various smaller bugfixes and performance improvements.
193
194
195 Movit 1.0.3, March 16th, 2014
196
197  - Yet more build system tweaks mainly related to distribution packaging.
198
199
200 Movit 1.0.2, March 16th, 2014
201
202  - Make a few tweaks to “make install”, to make distributions' lives easier.
203
204
205 Movit 1.0.1, March 16th, 2014
206
207  - Fix so that shared libraries are built.
208
209
210 Movit 1.0, March 16th, 2014
211
212  - Initial release.