]>
git.sesse.net Git - movit/log
Steinar H. Gunderson [Mon, 24 Mar 2014 23:45:08 +0000 (00:45 +0100)]
Add proper formats for sRGB without alpha.
Steinar H. Gunderson [Mon, 24 Mar 2014 22:52:15 +0000 (23:52 +0100)]
Fix a typo in the make install target.
Steinar H. Gunderson [Sun, 23 Mar 2014 11:41:46 +0000 (12:41 +0100)]
Merge branch 'epoxy' of ssh://pannekake.samfundet.no/srv/git.sesse.net/www/movit into epoxy
Steinar H. Gunderson [Sun, 23 Mar 2014 11:38:17 +0000 (12:38 +0100)]
We switched to #version 300 es shaders for GLES a while back, so we now have round().
Steinar H. Gunderson [Sun, 23 Mar 2014 11:17:42 +0000 (12:17 +0100)]
Add some skeleton code for using GL_ARB_debug_output (disabled by default).
Steinar H. Gunderson [Sat, 22 Mar 2014 14:53:11 +0000 (15:53 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Sat, 22 Mar 2014 14:49:09 +0000 (15:49 +0100)]
Factor out the actual phase execution into a function.
Steinar H. Gunderson [Sat, 22 Mar 2014 14:34:07 +0000 (15:34 +0100)]
Factor out RTT sampler setting in its own function.
Steinar H. Gunderson [Sat, 22 Mar 2014 13:57:53 +0000 (14:57 +0100)]
Merge branch 'master' into epoxy
Conflicts:
flat_input.cpp
Steinar H. Gunderson [Sat, 22 Mar 2014 13:54:43 +0000 (14:54 +0100)]
Redo FBO association yet again, this time per-texture.
According to http://adrienb.fr/blog/wp-content/uploads/2013/04/PortingSourceToLinux.pdf,
you want an FBO per-texture, not just format. And indeed, I can measure a very slight
performance improvement on both NVidia and ATI for this.
Steinar H. Gunderson [Fri, 21 Mar 2014 23:29:21 +0000 (00:29 +0100)]
Have separate FBOs per resolution and format.
Seemingly this _also_ costs on NVidia; the demo app is down 0.9 ms/frame or so.
This rapidly started approaching complexity worthy of the ResourcePool,
so I moved the functionality in there even though it's not context-shareable.
Steinar H. Gunderson [Fri, 21 Mar 2014 22:42:08 +0000 (23:42 +0100)]
Remove obsolete comment.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:48:46 +0000 (23:48 +0100)]
Fix a buffer overflow in MixEffectTest.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:15:23 +0000 (23:15 +0100)]
Convert another glReadPixels() to RGBA.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:59:59 +0000 (22:59 +0100)]
Properly ignore the sign bit when comparing NaNs.
Fixes fp16_test test failure on Clang.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:48:32 +0000 (22:48 +0100)]
Ditch BGRA use in OverlayEffectTest.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:46:32 +0000 (21:46 +0100)]
Fix non-float framebuffers in EffectChainTester.
Again, GLES fix.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:27:37 +0000 (21:27 +0100)]
Remove unused private members from FFTConvolutionEffect.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:15:13 +0000 (21:15 +0100)]
Use the right internal format for FORMAT_R non-float textures.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:14:22 +0000 (21:14 +0100)]
Add a few check_error() calls.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:12:31 +0000 (21:12 +0100)]
Don't use GL_RGBA32F/GL_RGBA16F with GL_UNSIGNED_BYTE.
GLES doesn't like this, even with NULL data. Replace with GL_FLOAT.
Steinar H. Gunderson [Fri, 21 Mar 2014 01:02:06 +0000 (02:02 +0100)]
Document that we can now run on core and ES contexts.
Steinar H. Gunderson [Fri, 21 Mar 2014 00:32:42 +0000 (01:32 +0100)]
Add support for multiple shader models.
We support 1.10 (for OpenGL 2.1 cards), 1.30 (for OpenGL 3.2 core contexts),
and 3.00 ES (for GLES3). There's some code duplication, but thankfully
not a whole lot.
With this, we compile in core contexts without any warning from ATI's driver,
and should also in theory be GLES3 compliant (tested on NVidia's desktop driver).
Steinar H. Gunderson [Thu, 20 Mar 2014 23:01:48 +0000 (00:01 +0100)]
Check for GLES in init_movit().
This sort of worked by accident already, since 30 was interpreted
as desktop OpenGL 3.0, but this is more proper.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:48:46 +0000 (23:48 +0100)]
Fix a buffer overflow in MixEffectTest.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:35:59 +0000 (23:35 +0100)]
Make handling of non-RGBA sRGB textures more consistent.
Previously, we'd ask the driver to convert these to RGBA, which maybe
isn't ideal, and certainly doesn't work with GLES. Now we send in
the right format for RGB and RGBA, and refuse hardware conversions with
single-channel (which GLES doesn't accept). I don't think this is optimal,
but finding a use-case for sRGB single-channel is a bit tricky anyway,
and the fallback is fast, too.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:15:23 +0000 (23:15 +0100)]
Convert another glReadPixels() to RGBA.
Steinar H. Gunderson [Thu, 20 Mar 2014 22:10:24 +0000 (23:10 +0100)]
Fix a few signed/unsigned warnings.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:59:59 +0000 (22:59 +0100)]
Properly ignore the sign bit when comparing NaNs.
Fixes fp16_test test failure on Clang.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:51:48 +0000 (22:51 +0100)]
Emulate glReadPixels of GL_ALPHA.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:48:32 +0000 (22:48 +0100)]
Ditch BGRA use in OverlayEffectTest.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:46:37 +0000 (22:46 +0100)]
Emulate glReadPixels of GL_BLUE.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:42:53 +0000 (22:42 +0100)]
Stop using BGR, BGRA and grayscale formats.
Neither of these are properly supported by GLES3, so just give in
more standard, boring formats, and then do the swizzles in the shader.
Steinar H. Gunderson [Thu, 20 Mar 2014 21:05:33 +0000 (22:05 +0100)]
Do not store RGB textures with RGBA internal format.
Once again, GLES doesn't like this, even though the GPU probably does it
internally nevertheless.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:46:32 +0000 (21:46 +0100)]
Fix non-float framebuffers in EffectChainTester.
Again, GLES fix.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:45:57 +0000 (21:45 +0100)]
Add some precision statements to make GLES slightly happier.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:27:37 +0000 (21:27 +0100)]
Remove unused private members from FFTConvolutionEffect.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:19:27 +0000 (21:19 +0100)]
Some GLES fixes in ResourcePool::create_2d_texture().
In particular, some of the type strictness needed to be fixed here to,
and there are some fixes for some of the more obscure formats.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:16:49 +0000 (21:16 +0100)]
Do not glReadPixels() with type GL_RED.
GLES can only read RGBA pixels. Downconvert ourselves when we need to.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:15:13 +0000 (21:15 +0100)]
Use the right internal format for FORMAT_R non-float textures.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:14:22 +0000 (21:14 +0100)]
Add a few check_error() calls.
Steinar H. Gunderson [Thu, 20 Mar 2014 20:12:31 +0000 (21:12 +0100)]
Don't use GL_RGBA32F/GL_RGBA16F with GL_UNSIGNED_BYTE.
GLES doesn't like this, even with NULL data. Replace with GL_FLOAT.
Steinar H. Gunderson [Wed, 19 Mar 2014 20:06:17 +0000 (21:06 +0100)]
Add a temporary variable to reduce the amount of tedious typing.
Steinar H. Gunderson [Wed, 19 Mar 2014 23:42:02 +0000 (00:42 +0100)]
Fix a typo.
Steinar H. Gunderson [Tue, 18 Mar 2014 23:21:54 +0000 (00:21 +0100)]
Merge branch 'epoxy' into epoxy
Conflicts:
Makefile.in
movit.pc.in
Steinar H. Gunderson [Tue, 18 Mar 2014 23:20:55 +0000 (00:20 +0100)]
Merge branch 'master' into epoxy
Conflicts:
Makefile.in
README
movit.pc.in
Steinar H. Gunderson [Tue, 18 Mar 2014 23:12:34 +0000 (00:12 +0100)]
Reduce the amount of arithmetic in the BlurEffect shader a bit.
We did additions and subtractions with zero, which is sort of a waste
on scalar architectures. Helps ever so slightly on the demo app on my NVidia
card (3–4%).
Steinar H. Gunderson [Tue, 18 Mar 2014 22:18:56 +0000 (23:18 +0100)]
Make VAOs persistent.
Seemingly helps ~0.5 ms/frame (which is quite significant for small
resolutions) on the demo applications on my NVidia card.
Steinar H. Gunderson [Tue, 18 Mar 2014 21:16:36 +0000 (22:16 +0100)]
Keep FBOs around in EffectChain again.
Seemingly creating and deleting them is crazy expensive on NVidia
(~3 ms for a create/delete pair), so
6dea8d2 caused a performance
regression at high frame rates. Now we instead keep one around per
context (they cannot be shared), which brings us basically back
to where we were performance-wise.
Reported by Christophe Thommeret.
Steinar H. Gunderson [Mon, 17 Mar 2014 23:57:53 +0000 (00:57 +0100)]
Make Phase take other Phases as inputs, not Nodes.
This was a refactoring I wanted to do for a while, but actually finding
the right structure was a bit tricky. In the process, the entire phase
generation logic was rewritten, but the separation between compilation
and Phase construction is much cleaner now, and the logic in general
is easier to follow with more use of explicit recursion.
I'm still not 100% happy about what might be overuse of output_node;
we still need to link Phase and Node (the link just goes the other way
now), but I'm not sure we need to use it in all the cases we currently do.
Steinar H. Gunderson [Mon, 17 Mar 2014 00:47:30 +0000 (01:47 +0100)]
Document the FFTW3 requirement.
Steinar H. Gunderson [Mon, 17 Mar 2014 00:46:29 +0000 (01:46 +0100)]
Merge branch 'master' into epoxy
Conflicts:
Makefile.in
movit.pc.in
Steinar H. Gunderson [Mon, 17 Mar 2014 00:45:10 +0000 (01:45 +0100)]
Movit can hardly be said to be in alpha stage anymore.
Steinar H. Gunderson [Mon, 17 Mar 2014 00:26:13 +0000 (01:26 +0100)]
Remove obsolete file.
This was part of my original scribblings, and is no longer needed.
Steinar H. Gunderson [Sun, 16 Mar 2014 22:29:07 +0000 (23:29 +0100)]
Release Movit 1.0.3.
Steinar H. Gunderson [Sun, 16 Mar 2014 22:26:04 +0000 (23:26 +0100)]
Move private libs into Libs.private in the pkg-config file.
Steinar H. Gunderson [Sun, 16 Mar 2014 22:22:43 +0000 (23:22 +0100)]
Add FFTW3 libs and flags to the pkg-config file.
Steinar H. Gunderson [Sun, 16 Mar 2014 22:08:17 +0000 (23:08 +0100)]
Take LDFLAGS properly from configure, and distinguish better between LDFLAGS and LDLIBS.
Steinar H. Gunderson [Sun, 16 Mar 2014 22:01:29 +0000 (23:01 +0100)]
Do not link libmovit against SDL; only the unit tests need that.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:35:02 +0000 (22:35 +0100)]
Release Movit 1.0.2.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:40:24 +0000 (22:40 +0100)]
Make $(libdir) on make install, in case it does not exist.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:33:53 +0000 (22:33 +0100)]
Make make install honor DESTDIR.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:19:24 +0000 (22:19 +0100)]
Release Movit 1.0.1.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:16:07 +0000 (22:16 +0100)]
Fix a C++11 incompatibility.
Steinar H. Gunderson [Sun, 16 Mar 2014 21:13:45 +0000 (22:13 +0100)]
Revert "Stop using -rpath when linking libmovit."
Actually, this is seemingly needed to build shared libraries at all. Doh.
This reverts commit
05466cbaae2befac3d3ab8bbba614bc08646d3f2 .
Steinar H. Gunderson [Sun, 16 Mar 2014 20:39:37 +0000 (21:39 +0100)]
Release Movit 1.0.
Steinar H. Gunderson [Sun, 16 Mar 2014 20:08:28 +0000 (21:08 +0100)]
Make a 'make dist' target.
Steinar H. Gunderson [Sun, 16 Mar 2014 19:19:36 +0000 (20:19 +0100)]
Add the two missing FFT shaders to MISSING_SHADERS.
Steinar H. Gunderson [Sun, 16 Mar 2014 19:12:11 +0000 (20:12 +0100)]
Stop using -rpath when linking libmovit.
This was from pre-libtool days, and makes no sense now. Plus it seems to have
no actual effect.
Steinar H. Gunderson [Sun, 16 Mar 2014 19:11:38 +0000 (20:11 +0100)]
Start doing symbol versioning.
As we prepare for 1.0, we want to make sure we have a proper soname.
See the comment for slightly more details.
Steinar H. Gunderson [Sun, 16 Mar 2014 18:36:25 +0000 (19:36 +0100)]
Merge branch 'master' into epoxy
Conflicts:
Makefile.in
configure.ac
Steinar H. Gunderson [Sun, 16 Mar 2014 18:25:53 +0000 (19:25 +0100)]
Add an FFT convolution effect.
A lot of the later commits have been leading up to this, and I finally
got to the point where all the unit tests check out, everything seems
to work (modulo maybe some overflow issues) and we have a model that
matches what people actually expects from convolutions.
Note that this adds a dependency on FFTW3; we could probably have added
our own routines for such small needs, but like with Eigen, calling out to a
library is fine as long as it's of good quality (which FFTW certainly is) and
is widely available.
Steinar H. Gunderson [Sat, 15 Mar 2014 20:53:10 +0000 (21:53 +0100)]
Make SliceEffect slice from the top, not the bottom.
This is more consistent with the rest of Movit, and makes the rest
of the FFT implementation easier.
Steinar H. Gunderson [Sat, 15 Mar 2014 20:51:32 +0000 (21:51 +0100)]
Revert "Support pad/crop from bottom, not just from the top."
This turned out not to be so useful after all, as we'd like a more
consistent top-left coordinate system, and changes to do that will
obsolete this patch.
This reverts commit
e92a5ffa19eb67b4db5af1db8559630139073668 .
Steinar H. Gunderson [Sat, 15 Mar 2014 19:46:07 +0000 (20:46 +0100)]
In the README, document that we have luma mix.
Steinar H. Gunderson [Sat, 15 Mar 2014 18:13:38 +0000 (19:13 +0100)]
Support pad/crop from bottom, not just from the top.
This is convenient for the FFTs that are coming.
Steinar H. Gunderson [Sat, 15 Mar 2014 02:12:53 +0000 (03:12 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Sat, 15 Mar 2014 02:04:31 +0000 (03:04 +0100)]
Fix a bug where repeated vertical FFTs would reverse the output.
Unfortunately, the tests didn't catch this, as the Repeat test used
an even number of passes (being of size 64), which reversed things
back into place. It now tries a wider range of sizes to make sure
everything is okay.
Steinar H. Gunderson [Thu, 13 Mar 2014 20:44:24 +0000 (21:44 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Thu, 13 Mar 2014 20:44:15 +0000 (21:44 +0100)]
Properly install texture1d.frag, which is needed during init.
Steinar H. Gunderson [Thu, 13 Mar 2014 20:41:35 +0000 (21:41 +0100)]
Properly install fp16.h.
Steinar H. Gunderson [Wed, 12 Mar 2014 21:48:07 +0000 (22:48 +0100)]
More tweaks to the .ld generation.
Steinar H. Gunderson [Wed, 12 Mar 2014 00:25:39 +0000 (01:25 +0100)]
Merge branch 'master' into epoxy
Conflicts:
Makefile.in
Steinar H. Gunderson [Wed, 12 Mar 2014 00:24:39 +0000 (01:24 +0100)]
Add more unit tests for fp16.
This tests a few edge cases that are not adequately covered by the
random fp32 tests; in particular, the round-to-even logic had
no test coverage, which is bad.
Steinar H. Gunderson [Wed, 12 Mar 2014 00:24:03 +0000 (01:24 +0100)]
Make the COVERAGE variable into an --enable-coverage configure flag.
This makes a lot more sense, since it controls compilation options.
Steinar H. Gunderson [Tue, 11 Mar 2014 23:55:05 +0000 (00:55 +0100)]
.gitignore lots of libtool stuff.
Steinar H. Gunderson [Tue, 11 Mar 2014 23:53:33 +0000 (00:53 +0100)]
.gitignore more unit tests.
Steinar H. Gunderson [Tue, 11 Mar 2014 23:51:26 +0000 (00:51 +0100)]
Ignore .ld files.
Steinar H. Gunderson [Tue, 11 Mar 2014 23:09:20 +0000 (00:09 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Tue, 11 Mar 2014 23:09:16 +0000 (00:09 +0100)]
Fix some formatting messups.
Steinar H. Gunderson [Tue, 11 Mar 2014 23:07:32 +0000 (00:07 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Tue, 11 Mar 2014 23:05:28 +0000 (00:05 +0100)]
Add a simple luma wipe transition.
Steinar H. Gunderson [Tue, 11 Mar 2014 20:18:44 +0000 (21:18 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Tue, 11 Mar 2014 20:13:34 +0000 (21:13 +0100)]
Support GL_R and 16-bit fixed-point textures in FlatInput.
The motivating need is that we want GL_R16 textures soon.
Steinar H. Gunderson [Tue, 11 Mar 2014 00:38:44 +0000 (01:38 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Tue, 11 Mar 2014 00:38:05 +0000 (01:38 +0100)]
Fix dependencies for .lo files.
Dependencies were unfortunately de-facto broken after introduction of libtool,
causing much head scratching. Now fixed.
Steinar H. Gunderson [Mon, 10 Mar 2014 23:40:00 +0000 (00:40 +0100)]
Merge branch 'master' into epoxy
Steinar H. Gunderson [Mon, 10 Mar 2014 23:33:58 +0000 (00:33 +0100)]
Add an effect for complex multiplication.
This is another building block to make the FFTs useful.
Steinar H. Gunderson [Mon, 10 Mar 2014 22:59:28 +0000 (23:59 +0100)]
Formalize the notion of messing with sampler state.
This kills a lot of the assumptions that have been going around,
and should allow us to deal much better with the situation when
we have two or more inputs to an effect (where you basically can't
predict the sampler number used reliably); there's still an edge
case that's documented with a TODO, but this is generally much better.
Steinar H. Gunderson [Mon, 10 Mar 2014 21:09:18 +0000 (22:09 +0100)]
Handle texture non-bounce a bit better.
This allows us to ignore the texture bounce flag when reading from a
FlatInput, and also handles better the case where an YCbCrInput is read
from multiple times (it's now bounced, which should be better for speed,
I think).
The main motivation, however, is to be able to control sampler state
a bit less hackish in the future.