]> git.sesse.net Git - movit/log
movit
6 years agoRelease Movit 1.6.1. 1.6.1
Steinar H. Gunderson [Wed, 31 Jan 2018 22:01:20 +0000 (23:01 +0100)]
Release Movit 1.6.1.

6 years agoFix a typo.
Steinar H. Gunderson [Sun, 28 Jan 2018 20:25:28 +0000 (21:25 +0100)]
Fix a typo.

6 years agoLoosen up some restrictions on strong one-to-one-effects.
Steinar H. Gunderson [Sun, 28 Jan 2018 16:41:07 +0000 (17:41 +0100)]
Loosen up some restrictions on strong one-to-one-effects.

In particular, this allows strong one-to-one-effects with multiple
inputs; this was forbidden by the comment, but not enforced anywhere,
and MixEffect was inadvertedly put as strong one-to-one. This actually
triggered at least three distinct bugs (thus three new tests).

6 years agoMark a already-done TODO as fixed.
Steinar H. Gunderson [Sat, 27 Jan 2018 20:15:52 +0000 (21:15 +0100)]
Mark a already-done TODO as fixed.

6 years agoRelease Movit 1.6.0. 1.6.0
Steinar H. Gunderson [Wed, 24 Jan 2018 23:11:40 +0000 (00:11 +0100)]
Release Movit 1.6.0.

6 years agoTypo fixes.
Steinar H. Gunderson [Tue, 23 Jan 2018 21:14:06 +0000 (22:14 +0100)]
Typo fixes.

6 years agoRemove a FIXME which turned out to not be so important after all.
Steinar H. Gunderson [Tue, 23 Jan 2018 21:12:38 +0000 (22:12 +0100)]
Remove a FIXME which turned out to not be so important after all.

6 years agoWe've run with many more GPUs than just those three now.
Steinar H. Gunderson [Tue, 23 Jan 2018 17:53:20 +0000 (18:53 +0100)]
We've run with many more GPUs than just those three now.

6 years ago2018 README updates.
Steinar H. Gunderson [Tue, 23 Jan 2018 17:33:34 +0000 (18:33 +0100)]
2018 README updates.

6 years agoBreak phases when a node needs both to supply mipmaps and _not_ supply mipmaps.
Steinar H. Gunderson [Thu, 18 Jan 2018 00:07:26 +0000 (01:07 +0100)]
Break phases when a node needs both to supply mipmaps and _not_ supply mipmaps.

In most cases, this means that we can keep a local copy that supplies
mipmaps and an RTT input that doesn't, or the other way around.

This is not a complete solution, since it doesn't take into account
the case where _both_ inputs will be RTT, but it's good enough for now.

Also requires us to distinguish between links between nodes in the same phase
and in different phases, or we'd get GLSL compile errors as we had both the
local and the RTT input being called e.g. “in0”.

6 years agoAdd explicit support for requesting no mipmaps.
Steinar H. Gunderson [Wed, 17 Jan 2018 20:06:55 +0000 (21:06 +0100)]
Add explicit support for requesting no mipmaps.

This is significantly less hackish than having the few effects
that don't want mipmaps having to request texture bounce and
fiddling with the sampling parameters themselves.

API change, although only for writing custom effects.

6 years agoRefactor calculate_scaling_weights() so that it is possible to get weights without...
Steinar H. Gunderson [Mon, 15 Jan 2018 20:45:52 +0000 (21:45 +0100)]
Refactor calculate_scaling_weights() so that it is possible to get weights without bilinear optimization.

6 years agoMicrooptimization in calculate_scaling_weights.
Steinar H. Gunderson [Mon, 15 Jan 2018 19:45:59 +0000 (20:45 +0100)]
Microoptimization in calculate_scaling_weights.

Doesn't actually influence the benchmarks much, but is useful to get 100%
equivalence with the coming compute shader.

6 years agoFix some small whitespace errors in SingleResamplePassEffect.
Steinar H. Gunderson [Sun, 14 Jan 2018 23:52:23 +0000 (00:52 +0100)]
Fix some small whitespace errors in SingleResamplePassEffect.

6 years agoIn ResampleEffect, use std::unique_ptr instead of managing ownership ourselves.
Steinar H. Gunderson [Sun, 14 Jan 2018 23:48:29 +0000 (00:48 +0100)]
In ResampleEffect, use std::unique_ptr instead of managing ownership ourselves.

6 years agoMove the functionality for updating the support texture using glTexImage2D or glTexSu...
Steinar H. Gunderson [Sun, 14 Jan 2018 19:51:08 +0000 (20:51 +0100)]
Move the functionality for updating the support texture using glTexImage2D or glTexSubImage2D into a separate class.

6 years agoAnother benchmarking data set fix.
Steinar H. Gunderson [Mon, 8 Jan 2018 23:27:05 +0000 (00:27 +0100)]
Another benchmarking data set fix.

6 years agoMake sure we do not send infinities to benchmarking textures.
Steinar H. Gunderson [Tue, 2 Jan 2018 17:03:35 +0000 (18:03 +0100)]
Make sure we do not send infinities to benchmarking textures.

6 years agoLoosen up a bound in ResampleEffectTest a bit.
Steinar H. Gunderson [Fri, 29 Dec 2017 23:18:03 +0000 (00:18 +0100)]
Loosen up a bound in ResampleEffectTest a bit.

6 years agoAdd output size as a uniform to compute shaders, as an integer; not just the inverse...
Steinar H. Gunderson [Fri, 29 Dec 2017 21:10:14 +0000 (22:10 +0100)]
Add output size as a uniform to compute shaders, as an integer; not just the inverse value as a float.

6 years agoReduce the amount of duplication between overloads in test_util.h, by using a few...
Steinar H. Gunderson [Thu, 28 Dec 2017 21:31:38 +0000 (22:31 +0100)]
Reduce the amount of duplication between overloads in test_util.h, by using a few more C++11 features.

6 years agoChange the resampling tests to fp16 (arguably more useful).
Steinar H. Gunderson [Thu, 28 Dec 2017 21:13:50 +0000 (22:13 +0100)]
Change the resampling tests to fp16 (arguably more useful).

6 years agoRemove an unused parameter in EffectChainTester.
Steinar H. Gunderson [Thu, 28 Dec 2017 20:24:18 +0000 (21:24 +0100)]
Remove an unused parameter in EffectChainTester.

6 years agoFix the uniform name for the compute shader output. (It would always be 0 by accident...
Steinar H. Gunderson [Thu, 28 Dec 2017 20:05:27 +0000 (21:05 +0100)]
Fix the uniform name for the compute shader output. (It would always be 0 by accident anyway, but it is nice to have it cleaner.)

6 years agoWhen a shader fails compilation, add some line numbers.
Steinar H. Gunderson [Sun, 10 Dec 2017 14:37:37 +0000 (15:37 +0100)]
When a shader fails compilation, add some line numbers.

6 years agoRun init_lanczos_table using std::call_once, now that we have C++11.
Steinar H. Gunderson [Sun, 26 Nov 2017 14:07:08 +0000 (15:07 +0100)]
Run init_lanczos_table using std::call_once, now that we have C++11.

6 years agoAdd a benchmark for calculate_scaling_weights().
Steinar H. Gunderson [Sun, 26 Nov 2017 12:56:19 +0000 (13:56 +0100)]
Add a benchmark for calculate_scaling_weights().

6 years agoAdd some benchmarks for ResampleEffect.
Steinar H. Gunderson [Sat, 25 Nov 2017 19:46:26 +0000 (20:46 +0100)]
Add some benchmarks for ResampleEffect.

6 years agoAdd missing test shader.
Steinar H. Gunderson [Sat, 25 Nov 2017 11:53:06 +0000 (12:53 +0100)]
Add missing test shader.

6 years agoUpdate .gitignore.
Steinar H. Gunderson [Sat, 25 Nov 2017 11:51:44 +0000 (12:51 +0100)]
Update .gitignore.

6 years agoFix some warnings.
Steinar H. Gunderson [Sat, 25 Nov 2017 11:37:05 +0000 (12:37 +0100)]
Fix some warnings.

6 years agoMake it easier to turn on debug for the EffectChain test without having it be turned...
Steinar H. Gunderson [Sat, 25 Nov 2017 11:31:02 +0000 (12:31 +0100)]
Make it easier to turn on debug for the EffectChain test without having it be turned off again.

6 years agoFix resizing compute shaders when used with postprocessing effects.
Steinar H. Gunderson [Sat, 25 Nov 2017 11:07:10 +0000 (12:07 +0100)]
Fix resizing compute shaders when used with postprocessing effects.

6 years agoSupport top-left origin for compute shaders.
Steinar H. Gunderson [Sat, 25 Nov 2017 10:26:54 +0000 (11:26 +0100)]
Support top-left origin for compute shaders.

6 years agoMinor improvement to a test name.
Steinar H. Gunderson [Sat, 25 Nov 2017 10:08:50 +0000 (11:08 +0100)]
Minor improvement to a test name.

6 years agoFix a bug where the wrong effect would be asked for compute shaders dimensions.
Steinar H. Gunderson [Sat, 25 Nov 2017 00:58:08 +0000 (01:58 +0100)]
Fix a bug where the wrong effect would be asked for compute shaders dimensions.

6 years agoSupport chaining certain effects after compute shaders.
Steinar H. Gunderson [Fri, 24 Nov 2017 21:11:08 +0000 (22:11 +0100)]
Support chaining certain effects after compute shaders.

This rests on the notion of “strong one-to-one” that's very similar
to the older “one-to-one“ concept, yet a bit stricter (in particular,
PaddingEffect is not strong one-to-one).

6 years agoSmall fix in EffectChainTester constructor.
Steinar H. Gunderson [Thu, 23 Nov 2017 18:43:23 +0000 (19:43 +0100)]
Small fix in EffectChainTester constructor.

6 years agoUse C++11 override everywhere it is appropriate.
Steinar H. Gunderson [Thu, 23 Nov 2017 17:50:14 +0000 (18:50 +0100)]
Use C++11 override everywhere it is appropriate.

6 years agoFix a typo in ResizeEffect. Found by virtual → override transition.
Steinar H. Gunderson [Thu, 23 Nov 2017 17:27:36 +0000 (18:27 +0100)]
Fix a typo in ResizeEffect. Found by virtual → override transition.

6 years agoFix some Clang warnings.
Steinar H. Gunderson [Thu, 23 Nov 2017 00:04:29 +0000 (01:04 +0100)]
Fix some Clang warnings.

6 years agoRemove the unused fields from ResampleEffect; if we make any changes here, it will...
Steinar H. Gunderson [Thu, 23 Nov 2017 00:01:30 +0000 (01:01 +0100)]
Remove the unused fields from ResampleEffect; if we make any changes here, it will have to be later.

6 years agoFix another set of test breakages on NVIDIA.
Steinar H. Gunderson [Wed, 22 Nov 2017 23:59:46 +0000 (00:59 +0100)]
Fix another set of test breakages on NVIDIA.

This was broken by c6ee050546b6940ae19a74f92bdcc8d2b1f56d22,
which stopped modifying destination textures' minification modes.

6 years agoUnbreak FBO caching in unit tests.
Steinar H. Gunderson [Wed, 22 Nov 2017 23:18:28 +0000 (00:18 +0100)]
Unbreak FBO caching in unit tests.

EffectChain::render_to_textures() ended up reusing FBOs in a way that
was not compatible with how the tester managed textures; this broke nearly all
unit tests on NVIDIA.

6 years agoInstall compute shaders on make install.
Steinar H. Gunderson [Wed, 22 Nov 2017 22:04:56 +0000 (23:04 +0100)]
Install compute shaders on make install.

6 years agoManage intermediate textures a bit more efficiently.
Steinar H. Gunderson [Wed, 22 Nov 2017 19:36:22 +0000 (20:36 +0100)]
Manage intermediate textures a bit more efficiently.

By holding on to them only for as long as we need to, we'll save some
peak texture RAM, and _might_ in some situations get a bit less cache
trashing.

6 years agoSupport sqrt-transformed intermediates with compute shaders.
Steinar H. Gunderson [Wed, 22 Nov 2017 19:13:46 +0000 (20:13 +0100)]
Support sqrt-transformed intermediates with compute shaders.

6 years agoMove compute shader functions from the header to the footer; easier to unify with...
Steinar H. Gunderson [Wed, 22 Nov 2017 19:11:06 +0000 (20:11 +0100)]
Move compute shader functions from the header to the footer; easier to unify with how the fragment shaders work.

6 years agoMove the compute shader tests into effect_chain_test, as we will have hybrid tests...
Steinar H. Gunderson [Wed, 22 Nov 2017 18:57:32 +0000 (19:57 +0100)]
Move the compute shader tests into effect_chain_test, as we will have hybrid tests soon.

6 years agoSupport other output formats than GL_RGBA16F; was easier than originally feared.
Steinar H. Gunderson [Wed, 22 Nov 2017 18:47:31 +0000 (19:47 +0100)]
Support other output formats than GL_RGBA16F; was easier than originally feared.

6 years agoDo some more cleanups in anticipation of more flexible compute shader outputs.
Steinar H. Gunderson [Wed, 22 Nov 2017 18:28:14 +0000 (19:28 +0100)]
Do some more cleanups in anticipation of more flexible compute shader outputs.

Includes reverting back to last_phase instead of render_to_texture.

6 years agoSupport rendering compute shaders straight to textures (skipping the dummy phase).
Steinar H. Gunderson [Tue, 21 Nov 2017 23:04:03 +0000 (00:04 +0100)]
Support rendering compute shaders straight to textures (skipping the dummy phase).

There are lots of limitations currently (only one destination,
only GL_RGBA16F), but it's a good start. Curiously enough,
it doesn't really help anything on the deinterlacing benchmark
for my Haswell, but NVIDIA sees ~15% improvement.

6 years agoFix an issue where -std=gnu++11 would become the only flag.
Steinar H. Gunderson [Mon, 20 Nov 2017 23:57:51 +0000 (00:57 +0100)]
Fix an issue where -std=gnu++11 would become the only flag.

6 years agoAdd a texture barrier after dispatching each compute shader.
Steinar H. Gunderson [Mon, 20 Nov 2017 18:41:10 +0000 (19:41 +0100)]
Add a texture barrier after dispatching each compute shader.

This is maybe a bit heavy-handed (there are cases where shaders could
run in parallel), but it's by far the simplest thing to do, since we
have zero control over what happens to the textures we use when they
are handed back to the resource pool.

6 years agoAdd some asserts to EffectChain::execute_phase, so that we do not inadvertedly insert...
Steinar H. Gunderson [Mon, 20 Nov 2017 18:10:47 +0000 (19:10 +0100)]
Add some asserts to EffectChain::execute_phase, so that we do not inadvertedly insert new output textures with number 0.

6 years agoInvert the meaning of the last_phase boolean to execute_phase().
Steinar H. Gunderson [Mon, 20 Nov 2017 18:07:46 +0000 (19:07 +0100)]
Invert the meaning of the last_phase boolean to execute_phase().

This is because we can soon have last phases that do not render to FBOs
(those that come out of compute shaders).

6 years agoUse glGetTexImage() instead of glReadPixels() for reading back test data.
Steinar H. Gunderson [Mon, 20 Nov 2017 17:27:22 +0000 (18:27 +0100)]
Use glGetTexImage() instead of glReadPixels() for reading back test data.

Generally cleaner, and also paves the way for when we have FBO-less
rendering from compute shaders.

6 years agoBetter error messages when skipping compute shader benchmarks.
Steinar H. Gunderson [Sun, 19 Nov 2017 14:25:30 +0000 (15:25 +0100)]
Better error messages when skipping compute shader benchmarks.

6 years agoImplement a compute shdaer version of DeinterlaceEffect.
Steinar H. Gunderson [Thu, 16 Nov 2017 22:07:47 +0000 (23:07 +0100)]
Implement a compute shdaer version of DeinterlaceEffect.

This is currently a loss for grayscale (probably due to the extra
rgba16f bounce), but a win of about ~30% on BGRA on my Haswell.
NVIDIA doesn't care much either way.

There are some performance mysteries remaining, but it's a good start.

6 years agoReduce the clutter in instantiating benchmarks a little bit.
Steinar H. Gunderson [Sun, 19 Nov 2017 00:32:06 +0000 (01:32 +0100)]
Reduce the clutter in instantiating benchmarks a little bit.

6 years agoAdd a helper class to easier test fragment and compute shader versions of the same...
Steinar H. Gunderson [Sun, 19 Nov 2017 00:28:02 +0000 (01:28 +0100)]
Add a helper class to easier test fragment and compute shader versions of the same effect alongside each other.

6 years agoFix compute shader outputs on NVIDIA.
Steinar H. Gunderson [Sat, 18 Nov 2017 20:20:06 +0000 (21:20 +0100)]
Fix compute shader outputs on NVIDIA.

6 years agoBump compute shader header to #version 150.
Steinar H. Gunderson [Sat, 18 Nov 2017 20:13:14 +0000 (21:13 +0100)]
Bump compute shader header to #version 150.

NVIDIA requires this for the layout qualifier, and it's probably right.
Note that this required moving the unit tests to a core context,
due to Mesa's demands.

6 years agoDrop support for SDL1, which is no longer maintained.
Steinar H. Gunderson [Sat, 18 Nov 2017 20:11:07 +0000 (21:11 +0100)]
Drop support for SDL1, which is no longer maintained.

6 years agoUse auto and range-based for loops a few places where it aids clarity.
Steinar H. Gunderson [Sat, 18 Nov 2017 17:24:08 +0000 (18:24 +0100)]
Use auto and range-based for loops a few places where it aids clarity.

6 years agoMore renaming of .compute -> .comp.
Steinar H. Gunderson [Sat, 18 Nov 2017 13:44:51 +0000 (14:44 +0100)]
More renaming of .compute -> .comp.

6 years agoFix an issue where matrices would not get printed out on test failure.
Steinar H. Gunderson [Sat, 18 Nov 2017 10:45:30 +0000 (11:45 +0100)]
Fix an issue where matrices would not get printed out on test failure.

6 years agoAdd a benchmark for DeinterlaceTest without the spatial interlacing check.
Steinar H. Gunderson [Sat, 18 Nov 2017 10:35:15 +0000 (11:35 +0100)]
Add a benchmark for DeinterlaceTest without the spatial interlacing check.

6 years agoRename .compute to .comp, to be in line with the Khronos reference compiler.
Steinar H. Gunderson [Sat, 18 Nov 2017 10:07:37 +0000 (11:07 +0100)]
Rename .compute to .comp, to be in line with the Khronos reference compiler.

6 years agoMake BGRA deinterlacing benchmark premultiplied, so that we do not use forever just...
Steinar H. Gunderson [Fri, 17 Nov 2017 20:41:39 +0000 (21:41 +0100)]
Make BGRA deinterlacing benchmark premultiplied, so that we do not use forever just in bouncing.

6 years agoParametrize BM_DeinterlaceEffect so that we have both grayscale and BGRA.
Steinar H. Gunderson [Thu, 16 Nov 2017 17:17:28 +0000 (18:17 +0100)]
Parametrize BM_DeinterlaceEffect so that we have both grayscale and BGRA.

6 years agoFix deletion of compute shaders.
Steinar H. Gunderson [Wed, 15 Nov 2017 23:34:47 +0000 (00:34 +0100)]
Fix deletion of compute shaders.

6 years agoFix some missing NULL -> nullptr.
Steinar H. Gunderson [Wed, 15 Nov 2017 19:49:59 +0000 (20:49 +0100)]
Fix some missing NULL -> nullptr.

6 years agoRevert "Remove C++11 dependency from ResampleEffect."
Steinar H. Gunderson [Wed, 15 Nov 2017 19:47:31 +0000 (20:47 +0100)]
Revert "Remove C++11 dependency from ResampleEffect."

Add back unique_ptr, now that we have C++11.

This reverts commit 8e9f58fec54a4c879035b214fd7411f6ff7b3a32.

6 years agoUse double right angle brackets for nested templates everywhere, now that we have...
Steinar H. Gunderson [Wed, 15 Nov 2017 19:46:16 +0000 (20:46 +0100)]
Use double right angle brackets for nested templates everywhere, now that we have C++11.

6 years agoUse nullptr everywhere, now that we have C++11.
Steinar H. Gunderson [Wed, 15 Nov 2017 19:45:41 +0000 (20:45 +0100)]
Use nullptr everywhere, now that we have C++11.

6 years agoAdd support for microbenchmarks.
Steinar H. Gunderson [Wed, 15 Nov 2017 19:30:58 +0000 (20:30 +0100)]
Add support for microbenchmarks.

This depends on Google's microbenchmark library (latest git version,
at least as soon as they pull in the pkg-config file), but it is
not mandatory.

Note that this makes Movit depend on C++11.

6 years agoAdd support for compute shaders.
Steinar H. Gunderson [Mon, 13 Nov 2017 20:58:40 +0000 (21:58 +0100)]
Add support for compute shaders.

This is currently pretty raw, and there are no effect using it yet,
but it's a useful first step for getting the infrastructure in place.

6 years agoThere's no need to #undef PREFIX, since we do the token pasting ourselves.
Steinar H. Gunderson [Mon, 13 Nov 2017 19:36:27 +0000 (20:36 +0100)]
There's no need to #undef PREFIX, since we do the token pasting ourselves.

6 years agoFix some invalid code in DeinterlaceTest; GCC 7 would optimize it into simply an...
Steinar H. Gunderson [Sun, 12 Nov 2017 00:30:01 +0000 (01:30 +0100)]
Fix some invalid code in DeinterlaceTest; GCC 7 would optimize it into simply an infinite loop.

6 years agoSome refactoring in ResourcePool.
Steinar H. Gunderson [Sat, 11 Nov 2017 21:02:46 +0000 (22:02 +0100)]
Some refactoring in ResourcePool.

7 years agoAdd the GPLv2 license text.
Steinar H. Gunderson [Sat, 16 Sep 2017 10:08:27 +0000 (12:08 +0200)]
Add the GPLv2 license text.

7 years agofix compile error: "error: variable-sized object ‘red_data’ may not be initialized"
Pascal Massimino [Thu, 14 Sep 2017 10:58:57 +0000 (12:58 +0200)]
fix compile error: "error: variable-sized object ‘red_data’ may not be initialized"

7 years agoSupport negative values for lift in LiftGammaGainEffect.
Steinar H. Gunderson [Wed, 13 Sep 2017 18:28:26 +0000 (20:28 +0200)]
Support negative values for lift in LiftGammaGainEffect.

Patch by Jean-Baptiste Mardelle <jb@kdenlive.org> (except the test,
which is by myself). Based on work from Dušan Hanuš <hanus@pixelhouse.cz>.

7 years agoFix a typo.
Steinar H. Gunderson [Thu, 10 Aug 2017 23:09:13 +0000 (01:09 +0200)]
Fix a typo.

7 years agoRelease Movit 1.5.3. 1.5.3
Steinar H. Gunderson [Thu, 10 Aug 2017 15:59:58 +0000 (17:59 +0200)]
Release Movit 1.5.3.

7 years agoAdd a notice to render_to_screen() that it might be suboptimal.
Steinar H. Gunderson [Tue, 8 Aug 2017 16:03:09 +0000 (18:03 +0200)]
Add a notice to render_to_screen() that it might be suboptimal.

7 years agoFix a leak if ResampleEffect is destroyed before being put on a chain.
Steinar H. Gunderson [Mon, 7 Aug 2017 07:32:21 +0000 (09:32 +0200)]
Fix a leak if ResampleEffect is destroyed before being put on a chain.

FFTConvolutionEffect remembered this, but ResampleEffect did not.
Patch by Dan Dennedy.

7 years agoFix fp16_test compilation _without_ f16c-enabled compilation flags.
Steinar H. Gunderson [Thu, 3 Aug 2017 13:36:30 +0000 (15:36 +0200)]
Fix fp16_test compilation _without_ f16c-enabled compilation flags.

Reported by Arthur Huillet.

7 years agoFix fp16_test compilation with f16c-enabled compilation flags.
Steinar H. Gunderson [Tue, 1 Aug 2017 15:41:17 +0000 (17:41 +0200)]
Fix fp16_test compilation with f16c-enabled compilation flags.

7 years agoRemove C++11 dependency from ResampleEffect.
Steinar H. Gunderson [Tue, 1 Aug 2017 07:25:10 +0000 (09:25 +0200)]
Remove C++11 dependency from ResampleEffect.

We really ought to allow C++11 in Movit soon, but 1.5.2 is not the right release.

Reported by Etienne d'Hautefeuille.

7 years agoFix a double-unlock.
Steinar H. Gunderson [Fri, 28 Jul 2017 17:06:33 +0000 (19:06 +0200)]
Fix a double-unlock.

7 years agoRelease Movit 1.5.2. 1.5.2
Steinar H. Gunderson [Wed, 5 Jul 2017 07:37:39 +0000 (09:37 +0200)]
Release Movit 1.5.2.

7 years agoAdd some room for future expansion in ResampleEffect, since I have something that...
Steinar H. Gunderson [Wed, 5 Jul 2017 07:35:40 +0000 (09:35 +0200)]
Add some room for future expansion in ResampleEffect, since I have something that I would like them for and we are breaking the ABI anyway.

7 years agoCache VAOs between runs.
Steinar H. Gunderson [Tue, 4 Jul 2017 23:06:12 +0000 (01:06 +0200)]
Cache VAOs between runs.

NVIDIA's drivers (at least the Linux drivers) seem to have a bug
where, if you call glVertexAttribPointer() in one thread together
with some specific activity in another thread (at least another
glVertexAttribPointer() will do, but I've also seen it during
glXSwapBuffers()), it will try to free a non-malloced pointer,
crashing everything. This happens very rarely, but often enough
that it's a real problem for Nageru.

We solve it by simply pre-creating all needed VAOs ahead-of-time
and caching them, which makes us call glVertexAttribPointer()
a _lot_ less often (basically never, instead of several times
per frame). This might actually be a bit slower than the old code
(I haven't tested), but at least it works around the driver bug.

ABI break, unfortunately, but no API break.

7 years agoFix Makefile after fp16 removal.
Steinar H. Gunderson [Sun, 2 Jul 2017 09:32:34 +0000 (11:32 +0200)]
Fix Makefile after fp16 removal.

7 years agoInline the fp16 conversion routines. Helps 18% on ResampleEffect::calculate_texture.
Steinar H. Gunderson [Sun, 2 Jul 2017 08:18:34 +0000 (10:18 +0200)]
Inline the fp16 conversion routines. Helps 18% on ResampleEffect::calculate_texture.

7 years agoInline combine_two_samples (and remove an obsolete assert). Helps 13–14% on ResampleE...
Steinar H. Gunderson [Sun, 2 Jul 2017 08:10:11 +0000 (10:10 +0200)]
Inline combine_two_samples (and remove an obsolete assert). Helps 13–14% on ResampleEffect::calculate_texture.

7 years agoSome microoptimizations in combine_two_samples(). Saves about 4% in ResampleEffect...
Steinar H. Gunderson [Sun, 2 Jul 2017 08:06:54 +0000 (10:06 +0200)]
Some microoptimizations in combine_two_samples(). Saves about 4% in ResampleEffect::calculate_weights.

7 years agoRemove some unneeded conversions from ResampleEffect. Speeds up texture generation...
Steinar H. Gunderson [Sat, 1 Jul 2017 19:50:31 +0000 (21:50 +0200)]
Remove some unneeded conversions from ResampleEffect. Speeds up texture generation by ~8%.