Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/haasn/libplacebo
Official mirror of libplacebo
https://github.com/haasn/libplacebo
No idea how this compiles locally on my end, but I don't care to find
out.
Fixes overallocation of ICC 3DLUTs by factor 2x, which also fixes the
icc_load/save legacy fallb...
Guard against num_entries overflow, guard against size overflow.
Omit separate read() call for p...
Extremely hypothetical edge case, but trivial to guard against.
e9a5b89003a4091306ae9be18899d8b7a3d6aa59 authored over 1 year ago by Niklas Haas <git@haasn.dev>5dc33f2c13594f54dd9a9d81f7518e381a547f47 authored over 1 year ago by Niklas Haas <git@haasn.dev>
With xxhash, 50 MB is plenty fast enough compared to the general vulkan
init etc. overhead, and ...
To help understand wtf is going on sometimes
909f73bfd6d9630f5329b8f7f0abff36b8fb699b authored over 1 year ago by Niklas Haas <git@haasn.dev>Use 64-bit value, since we operate on 64-bit hashes. And give it a name.
9e1f32269e148dc59a68068c7bddaa8904456110 authored over 1 year ago by Niklas Haas <git@haasn.dev>
We no longer support running MSAN without fully instrumented
dependencies at all, either in the ...
Make sure our cache header has a "good" size, i.e. multiple of uint64_t.
We don't actually care ...
Since these can be a source of non-negligible startup latency.
f2b6ca0b413cd01d6b6e114474163dbc721af5f6 authored over 1 year ago by Niklas Haas <git@haasn.dev>
xxhash is fast enough to not really worry about a few-MB large objects
slowing down init process.
No reason to delete siphash just yet, it can be used as fallback for
systems with xxhash.
Close...
cb1009d1455e64787e52c5c3b6f7042aa37e5c14 authored over 1 year ago by Niklas Haas <git@haasn.dev>In preparation for move to XXH3, which we want to inline always
6136ee11db4b6c8a8cffafc73d999e67b399ea28 authored over 1 year ago by Niklas Haas <git@haasn.dev>
So we can inline the hash function only into files that actually need
it.
489ef28afc23f4991b78afed4bf421081262766d authored over 1 year ago by Niklas Haas <git@haasn.dev>
For debug purposes.
07fa0f0cdabc8a22f1dc34eb1f8bfc4a25b22322 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Caching is now done directly inside the pl_gpu, via the pl_cache
mechanism. This cache layer is ...
8e5bd0d5158272d53143122ba43eb5a8a676f839 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Probably won't work for ICC/3DLUT cache but these probably want their
own custom mechanism anywa...
No longer used by any current demo.
fadd5da3365b74be6ddae25ed63a5fd6910a78ea authored over 1 year ago by Niklas Haas <git@haasn.dev>378bc6a9f7dde22b4de3e65378563b67540eed80 authored over 1 year ago by Niklas Haas <git@haasn.dev>
No longer functional after the recent changes to make pl_gpu use
pl_cache directly. No need for ...
Trivial port by just replacing cached_program with
pl_cache_lookup/insert.
The cache key is mad...
6a9d90df3457295786719be27abd6f3ba1519ad4 authored over 1 year ago by Hendrik Leppkes <h.leppkes@gmail.com>
This is actually a constant, and could be precomputed and stored inside
static data if we had a ...
Cosmetic.
c399a21cac272042579eca218663b3fe6a714e7d authored over 1 year ago by Niklas Haas <git@haasn.dev>0a2f15837e56d5f9bc8ddce53f941381a7f0b18e authored over 1 year ago by Niklas Haas <git@haasn.dev>
Slightly more convenient because it will enable caching.
02bacbdb28898de3552c46364a31c51a8a851bff authored over 1 year ago by Niklas Haas <git@haasn.dev>And ignore cached_program entirely.
2ad89fdf1f3978bc25def43df0e5dd78232f01dc authored over 1 year ago by Niklas Haas <git@haasn.dev>
Since this can eat up some nontrivial amounts of compute time.
Just make sure it identifies the ...
Following same approach as d3d11. For simplicity, keep the current
gl_cache_header, since we sti...
Now users can be explicit about which cache they want to use, with the
save/load callbacks being...
Currently only enabled when explicitly provided by the caller, to avoid
unexpected surprises. (A...
Allows attaching custom pl_cache to a pl_gpu.
6f0ec19a77b94421e95c148c689ee8779dc0f48f authored over 1 year ago by Niklas Haas <git@haasn.dev>98978ae7484e1d36c8cd432f5fd808e158553b65 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Motivated by https://code.videolan.org/videolan/libplacebo/-/issues/299
This mechanism should b...
8a2af4cc4cf01b430b297336a43a92f12328543c authored over 1 year ago by Niklas Haas <git@haasn.dev>Wrapper around common pl_mem_hash + sizeof idiom
0df53c2e23ab04a4c213085a9aaaef342c8214ff authored over 1 year ago by Niklas Haas <git@haasn.dev>ccb43419ccff0dc68dae6ed67170e9022ddbd710 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Make this less stupid, add some typedefs, avoid passing const pointers
to small structs for no r...
49780733a52d2f74f51c58d9902b47be34983e9a authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
8e70444de99cd41d2df3f1269b5773071c64be4c authored over 1 year ago by Niklas Haas <git@haasn.dev>
To be logarithmic.
090bab5af8cf305211764937ab3840c597ecbdb4 authored over 1 year ago by Niklas Haas <git@haasn.dev>For consistency and with the value that is actually reproducible
fa6dc83460b88f6e316a7a8b9265d6b7265f6fc6 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>Got lost during rebase or something...
57f520af8bce60e8eac6ce212cad147f58212a5b authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>Consistency with the new `description` field.
bc3b89ee637782e93d007845f52c0b7357850d6c authored over 1 year ago by Niklas Haas <git@haasn.dev>3061a8b607ae2fec8049d84c42bbf4b9b7205553 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
I'm really unhappy with this solution, but I'm also really unhappy with
the alternatives. I'm st...
It doesn't work correctly. All componentes have to be instrumented for
msan to function properly...
bc0bc8ec954122ca4aaa564bc686b0eebcd5b951 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
7d1bc36cc5de0f82bcca6c7b9b4317c27e26a2d7 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
c04cd05a0418a19fb4d2e39cfddd9d2ebd337bea authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
- don't print insignificant decimal digits
- change how last digit round is performed
Mostly ne...
10502bd3065aa6faa4414466f85bf3ddcbd9e239 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>259c9a7ebda86682c0faae1a48c4f8731fb7ab57 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
Will be useful for next commits.
82d21863e1eb71342da65b482ed71e669d9bfead authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
New printer can produce floating point number without fractional part,
so we have to make it cle...
rc.exe does not support --codepage= syntax and there is no way in meson
to ask what resource com...
940f42e0168c323a8306831fa8ec95d7795c59d2 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
They are not used in C++ code and compatibility with stdatomic.h was
introduced in C++23. For co...
Based on C++ std::from_chars/std::to_chars
For compilers that does not fully support std::from_...
fb4b68c56f679cda6d246fc79f61e0bd914af08f authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
Significantly faster and more robust float conversions. Also reduces
amount of custom code.
Ref...
9b9987cc12b3513ecd48239fdfdc4220bc61260f authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
Since common.h include pl_*.h to let those headers use
libplacebo/config.h it has to be included...
This fixes leaking those headers in pkg-config file while we don't want
to do that. Especially b...
a2b0b186a851d9cd56b019aebc9616a3ae66c02a authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
To include less and not define min/max macros.
b188120883dc74c29b1b74d64015b836960db955 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>We have at least one cpp files (glslang.cc) and soon maybe more.
d4031d7a43729fc402c7e91c383c150affae40c7 authored over 1 year ago by Kacper Michajłow <kasper93@gmail.com>
the nvidia vulkan drivers are so glacially slow at compiling shaders that
I get timeouts when pu...
Not only is this generally higher quality, it's also actually *faster*,
because the sharpened ke...
ewa_lanczos4sharpest in particular only looks good when combined with
antiringing, which is why ...
4632b907b19ff7a6fd2db6256a09b95304f511f5 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Allows filter presets to already pre-enable anti-ringing. Simplifies
configuration of AR variant...
Simplification of the math. This is now entirely redundant with
pl_filter_config.blur.
They now do exactly the same thing.
cd4266fa862df91371e06d0a0c48a5f2a25caacd authored over 1 year ago by Niklas Haas <git@haasn.dev>
This effectively scales the true filter size by the blur coefficient,
rather than merely scaling...
Allows float options to accept values as fractions
d6f1db186d535f3d99d56165bb468de71d58dc6e authored over 1 year ago by llyyr <llyyr.public@gmail.com>
To avoid triggering huge scene change detections when only a tiny part
of the image contains non...
Force them to go through the normal update logic.
45fa8589238fac7b71a84e279e6f7bb8d3f59ee7 authored over 1 year ago by Niklas Haas <git@haasn.dev>
Slightly more convoluted than the previous approach but lets us know
exactly what percentage of ...
This should not be silently ignored or re-tried later, since it's a
serious error.
Since 31082eee7a it's possible for frame_wg_count to not get
incremented, in particular, for all...
Experimental testing on a variety of scenes revealed a value of 20.0 to
be more generally respon...
Based on experimental testing on real content, I determined the "safe"
value for in-scene PQ flu...
And leave a #define alias in its place. (Probably permanently, since we
can't put a deprecation ...
HDR10+ metadata is buggy enough in practice (and often just
auto-generated by stupid process), t...
Significantly improves peak detection result on frames containing many
black pixels (e.g. hardco...
No need to repeat this boilerplate.
06be61d72b4ec82e9182a1644b17a72ede536d8e authored over 1 year ago by Niklas Haas <git@haasn.dev>
This needs to use the same luma coefficients as the RGB space of the
*encoding*, not the color v...
It makes little sense for `preset=default` to override options that
conceptually exist outside t...
But still prefer peak detection over dynamic per-scene HDR10+ metadata,
since the latter produce...
The `spline` function has become good enough to outperform all of the
other tone-mapping functio...
f1bddda77d759467031c3e38e9acdef55d14a35c authored over 1 year ago by Niklas Haas <git@haasn.dev>
Mirroring pl_get_detected_hdr_metadata. Heavily requested by users, to
be able to introspect cur...
Moves this into the more appropriate plce.
41ed31ed2abd6452ce69a8064d59843f762d36cb authored over 1 year ago by Niklas Haas <git@haasn.dev>
To avoid trying to tone-map values significantly below SDR white, even
with inverse tone-mapping...
This is the wrong layer to solve this problem, and in particular,
hard-coding SDR 1.0 here preve...
Do this before clamping output_max because pl_tone_map_params_infer can
change these parameters.
Since I plan on making pl_tone_map_params_infer() clamp/change these.
106de1aa05be980015398a7b5779673883c1ad61 authored over 1 year ago by Niklas Haas <git@haasn.dev>
With the new dynamic adaptation tuning, we don't need to set such
excessively high adaptation tu...
Based on how close the target knee point is towards the 'extreme' values
(min/max knee), we rais...
This does not change the calculated logic, it just makes the code flow
slightly easier to follow...
54c3245b515a9951cbc112ec5fde8b0de21d0fa0 authored over 1 year ago by Niklas Haas <git@haasn.dev>