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

gamut_mapping: slightly increase perceptual strength default

Tradeoffs, tradeoffs. This makes some less extreme samples a bit easier
on the eyes and less "bl...

6a7ab4e33ca5acebda18bf6246da0893209764e6 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: simplify option value ranges

See previous commit.

204eac112f9e5c2a7b3a46e059a206897432c241 authored over 1 year ago by Niklas Haas <[email protected]>
options: simplify value ranges

In retrospect I don't really care about advertising the 1e-6 safety
margin here, because it's al...

b4880a8fddc0448e9542cfaf9e478d5f1a032144 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: fix nominal luma comparison

This was not in nits scale.

612071d5e238d8061a66061ace70aae4d0890fb8 authored over 1 year ago by Niklas Haas <[email protected]>
tests/tone_mapping: force max strength for saturation test

The intent of this test is to ensure that primaries map onto primaries,
which only makes sense w...

f3f67b22e04214873e59b7b8a2b47d4b6ace5c78 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: slightly boost default perceptual deadzone

Helps with preserving chromaticity in very challenging scenes.

See-Also: https://github.com/mpv...

ead6f8dcd5f3a8301dd31b02426deae9f0441bb3 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: add tunable perceptual_strength

Allows scaling down the intensity of the saturation mapping step.

fe8fcc414a1cb568484c961328865961bc8321c0 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: drop perceptual strength to 0.6

Significantly improves chromaticity retention in some problematic
scenes, without causing too mu...

ca1c6c5ad958c2b059c7b81291a7f72ed95dbdfa authored over 1 year ago by Niklas Haas <[email protected]>
renderer: use nominal max luminance for peak detection check

Static HDR10 metadata may lie about the actual luminance range of the
source. To be more conserv...

6e0e2b0cfff2d53e366f051bfbfe55ec48e4938c authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: fix vecType on 1-component mask

vec1 doesn't exist, need to use sh_float_type here.

b19e44107fa847fd9290423eb10b3f28af3f8f4d authored over 1 year ago by Niklas Haas <[email protected]>
shaders: make sh_float_type accept comp mask

Slight simplification, especially for upcoming fix.

217aa947e7948aa48f8d3daf02496275451217bb authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/formats: drop format probing spam verbosity

This is not interesting to users or for debugging.

47d189ac96a20ab53000d687d295a0277736c207 authored over 1 year ago by Niklas Haas <[email protected]>
dispatch: reduce verbosity of cache load/save spam

No need to print the nitty gritty details here at PL_DEBUG verbosity,
just print a condensed sum...

c947bffd954abc34f854b0f6d11bf083993eb5d4 authored over 1 year ago by Niklas Haas <[email protected]>
options: lower verbosity of option parsing

Since this happens at per-frame level in mpv. Not entirely happy with
this solution but it's bet...

7acc15f1fcfd59cc5eb5ce26f8ac767c7c551393 authored over 1 year ago by Niklas Haas <[email protected]>
Revert "tools/glsl_preproc: add support for const char variables"

This reverts commit fa811a40e95a00eafe5cdb592ec311fee49fa3ef.

9826640a5172e5da93f06e1e3428066230d9a9ea authored over 1 year ago by Niklas Haas <[email protected]>
Revert "docs/glsl: expand GLSL variables documentation"

This reverts commit e78c35121a36f4f45597f8a2698d282beae16150.

f7fb586ea859e2d6a9f16202a0ea75b5f8a05a08 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: switch to new swizzle/vecType fmt

Avoids shader recompilation on ptr change, and is also less boilerplate
(and less memory usage).

2294e6c73ac660e1d3712b38526348b4e9a9d87d authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: add support for swizzle and vecType

Very easy to slot into the new variable reference wrapper system.

99de4226fe3a49131a3b537e5878b0542b8925cc authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: add ability to wrap bound references

Will be used to enable new swizzling types.

082970757331fb9c87fe1d4b3465d495d6393e62 authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: move FmtSpec to statement.py

No need for this class to really exist outside of the GLSL statement
parser, and it avoids confl...

da97dc9b89bddceee3fd48e4d68d536163865003 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: add advanced constants section

Sigh, no real recourse other than to brute force the mapping.

319593bcaecf02d7e61137c7ab89eab35fb0002e authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: remove deprecated tone mapping param UI

Still need to add a custom UI for the advanced tunables, but I'll defer
that to a future commit.

2e09add0d0fad2644c50c001019495a8eb9739cb authored over 1 year ago by Niklas Haas <[email protected]>
options: map pl_tone_map_constants

28d8e8b75601f766b7378ad118218c4c636f87b4 authored over 1 year ago by Niklas Haas <[email protected]>
tone_mapping: refactor tone mapping parameters API

Instead of having a single `float param` that magically affects
whichever function is chosen (an...

376fa971e3352a4808f65461ac2f72580ccb3ba8 authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: make hard-coded constants tunable

I briefly considered exposing this as yet another pointer-to-a-struct,
but decided it was ultima...

15613d5823f3e6a0578543ea19f2377f20be007d authored over 1 year ago by Niklas Haas <[email protected]>
tone_mapping: change gamma default knee to 0.3

For consistency with mobius, with whose parameter I intend to merge this
knee point selection. T...

e44c48a73d30e6e4127f1887d5d01a23f8ff36f3 authored over 1 year ago by Niklas Haas <[email protected]>
tone_mapping: change st2094-10 knee point default to 0.7

For consistency with st2094_40 and spline. Motivated by a desire to
expose this as an independen...

896851632e29836ea1dec1855236bd8e548ceee4 authored over 1 year ago by Niklas Haas <[email protected]>
options: expose pl_color_map_constants options

Probably these are so specific so as to never get exposed further
upstream, so this marks the fi...

735192835e2f2acac43cd8fc090a0e2d3b5eede8 authored over 1 year ago by Niklas Haas <[email protected]>
options: fix gamut_mapping options order

To not break convention.

72dd716af84be90d638a370c0868c8600fee4a45 authored over 1 year ago by Niklas Haas <[email protected]>
tests/options: explicitly test setting 0.0

Regression test for 5cf754b97298bf7c

8a5e97ef7b5445b29b172ae5388bdf9e599dca51 authored over 1 year ago by Niklas Haas <[email protected]>
common: protect pl_smoothstep against edge0 = edge1

Handle it like a normal step() function in this case. Protects against
some hypothetical edge ca...

c5d50c57cbcd5114d0f493fd055398d5e86b3c44 authored over 1 year ago by Niklas Haas <[email protected]>
options: don't reject 0.0 floats

isnormal() explicitly returns false on zero, even though we want to
accept this case. Use fpclas...

997020faed9d3f41d07c021fb7a293eb2b020080 authored over 1 year ago by Niklas Haas <[email protected]>
shaders: replace magic constants with values from default struct

63c3767e5eccd3a475eff45912b1fcb1dbfe5cf9 authored over 1 year ago by Kacper Michajłow <[email protected]>
utils/frame_queue: don't crash on empty pl_queue_update

Can happen when e.g. triggering screenshot in mpv before any frames are
available (empty queue).

69e40e5c72f8061ffbf0b2ded35bd3d462cf1460 authored over 1 year ago by Niklas Haas <[email protected]>
RELEASING: add note to create github release tags

Apparently this makes releases more discoverable by users, or something.

Fixes: https://github....

e9b39ab190d1e241d59606d04d8feba9d0c5c788 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/malloc: bump up maximum slab age

Helps avoid GC/realloc thrashing on high FPS displays, especially with
the fact that mpv now cal...

60d776cdacb37fc4c94f6d65945d50bebc9b0f87 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/malloc: profile malloc times

This can stall for significant amounts of time (upwards of several ms).

1ad158b5b7608658ea025b49f26a88a177fa94fe authored over 1 year ago by Niklas Haas <[email protected]>
d3d11/tex: split texel transfers into slices

This fixes transfers of large images, that would otherwise fail.

Fixes: https://github.com/mpv-...

e67287c0dee2ee735f15fc0f0dbfe1565e0001bf authored over 1 year ago by Niklas Haas <[email protected]>
Revert "d3d11: remove static texels count limit"

No longer needed. And while it works for most GPUs, let's keep the limit
that is required to wor...

21523a30f3f666e6bcaaae9a3cd4bfb8a93a7d76 authored over 1 year ago by Kacper Michajłow <[email protected]>
gpu/utils: add pl_tex_transfer_slices

Helper function to split a texture transfer into the maximum possible
slice size, based on GPU l...

181719bc594a50edea4e8d065e30dd45ee7a4791 authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan/tex: split texel transfers into slices

This fixes transfers of large images, that would otherwise fail.

Fixes: https://github.com/mpv-...

fe3d8a1ec208551ba604104ee0e6100e567db75c authored over 1 year ago by Niklas Haas <[email protected]>
gpu/utils: make tex offset dynamic in pl_tex_upload/download_texel

0c3e0f8e7df2d225bcd0974afc161954fcba2d3b authored over 1 year ago by Kacper Michajłow <[email protected]>
gpu/utils: fix pl_tex_upload/download_texel to respect params.buf_offset

Do not require texture and buffer to be the same size. This allows to
download/upload ROI to/fro...

d31ba5e1356e70dcaac23335a1bcd77ecc7142cb authored over 1 year ago by Kacper Michajłow <[email protected]>
tests: limit array log size and start with an offset

366e25e13bfa9bb284d5750a4341d985780a7a1c authored over 1 year ago by Kacper Michajłow <[email protected]>
gpu/utils: drop UBO support from pl_tex_upload_texel

Unnecessary complication, in practice SSBOs are larger and more suited
anyway.

7b93758562c3c8258e7d9b6b31c669bc4ad5ec9c authored over 1 year ago by Niklas Haas <[email protected]>
demos/video-filtering: switch to new pl_thread helpers

Fixes: https://github.com/haasn/libplacebo/issues/194

f6af5d008fd529e540f95feeb12e8a4bb7ff55df authored over 1 year ago by Niklas Haas <[email protected]>
pl_thread: properly document pl_thread_sleep

01cd819edef83eb3105882f6c67454b975ad6eaa authored over 1 year ago by Niklas Haas <[email protected]>
shaders/deinterlacing: re-use swizzle helpers

No need to NIH this code here.

d874dfc01bed4a182ca4e302c8a2874920202ffe authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: fix ident_t size

Inconsequential, but sorts these structs better.

38a0d6671b15f2386622adc89dea0a59244e8048 authored over 1 year ago by Niklas Haas <[email protected]>
shader/sampling: 80col align GLSL pragma (cosmetic)

58f9bf333e230f28c6c098aa1412d17fd222e12a authored over 1 year ago by Niklas Haas <[email protected]>
docs/glsl: expand GLSL variables documentation

Add const char examples, and also document the `ident` type for
completeness' sake.

e78c35121a36f4f45597f8a2698d282beae16150 authored over 1 year ago by Niklas Haas <[email protected]>
tools/glsl_preproc: add support for const char variables

These are passed as pointers, with all the implications that entails.

fa811a40e95a00eafe5cdb592ec311fee49fa3ef authored over 1 year ago by Niklas Haas <[email protected]>
shaders: simplify sh_tex_swiz helper

And allow it to return a constant string, suitable for use with #pragma
GLSL. Split off counting...

e424f9203aa2bf9f5e21539c40524524c89052e0 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: alignment (cosmetic)

d1147dc809e34e1a37627f09d8efd666b3ccab49 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: set proper error attributes on hook

For hooks that return shaders, even though this is not currently a
supported use case in the mpv...

c243232c01914663582837583894904f74cc1f09 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: don't wipe `unique` attrib on custom hooks

This should probably not have been a whitelist / struct assignment. But
oh well.

Fixes: https:/...

ada040ac0934a5cef1c1d488403d07e213f79c26 authored over 1 year ago by Niklas Haas <[email protected]>
options: allow : as separator in pl_options_load

643850df46523b504bf0099b8a82cce94fcfb8f5 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: correctly hook CHROMA/ALPHA_SCALED

Fixes: https://github.com/mpv-player/mpv/issues/12153

e0c6a8131e5ccd50f078988af1ce334ac9aaf814 authored over 1 year ago by Niklas Haas <[email protected]>
renderer: simplify plane shader handling

Instead of initializing the extra `psh` for shader merging and bespoke
texture fallback logic, j...

51a503e23619c1beda6dbbc10f2eeffe1a1730f6 authored over 1 year ago by Niklas Haas <[email protected]>
win32: include manifest in libplacebo and plplay

Fixes IsWindows10OrGreater() usage.

6d43ee9589610ca188b25be4de0dcc8ab2691fb8 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/colorspace: allow smoothing period of 0.0

To completely disable smoothing, since even a smoothing period of 1.0
implies a small amount of ...

83af2d4ebd5086a56f7b1a2f86628ada3612ee7c authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: simplify iir_coeff math

The old trigonometric expression was needlessly complicated when the
math here is just equivalen...

1c464baaf4c6228dcfac87f19db1dafc22e328c8 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/malloc: fix allocation with large pages

Since 51584f4a, page size on systems with more than 4 GB of VRAM can
exceed MAXIMUM_SLAB_SIZE, i...

14c273a88f9de790ce22b6140a35b6da763ae9e9 authored over 1 year ago by Niklas Haas <[email protected]>
Revert "meson: bump C++ version to 20"

This reverts commit 2557e27fe2d61f7eb4d8e6010e29982683095347.

e45b8130247a5fe41b33af504060444bad3cba6f authored over 1 year ago by Niklas Haas <[email protected]>
glsl/glslang: avoid use of designated initializer

../src/glsl/glslang.cc:116:5: error: designated initializers cannot be used
with a non-aggregate...

648cc72c739a78e38dee0ef3acefc78ff3083def authored over 1 year ago by Niklas Haas <[email protected]>
glsl/glslang: enable optimizer

This helps a little with SPIR-V code generation.

9c693a5a1762fc83078f85933f0532e2098d3254 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: bump C++ version to 20

For designated initializers support.

Ancient compilers might complain, but anything even multip...

2557e27fe2d61f7eb4d8e6010e29982683095347 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/sampling: fix uninitialized variable in pl_shader_sample_ortho

...well.

Fixes: 94722c55cb0bf1f19e9db2b249ea9df41d2ae386
Fixes: https://github.com/mpv-player/m...

b2a5365d917e5974a4ac17275bce9bcefc41e21a authored over 1 year ago by Kacper Michajłow <[email protected]>
ci: enable debug-abort in all builds that run tests

e7a22df7d2df37f22a9da65e57c2696c1768e2c1 authored over 1 year ago by Kacper Michajłow <[email protected]>
tools/glsl_preproc: add suffixes to literals

02d9df82b262df61a27191b5c0cd00d71485a3e2 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/sampling: refactor pl_shader_sample_ortho to make it smaller

Improves overly long compilation time.

2f71d50fcdafb2ef560fbe823b8e2ad838638fe5 authored over 1 year ago by Kacper Michajłow <[email protected]>
tools/glsl_preproc: add strip option to reduce shader string size in binary

Removes all comments, newlines and leading spaces.

029613906f89b33bee8b4566004f1a7f7e9c9cdd authored over 1 year ago by Kacper Michajłow <[email protected]>
tools/glsl_preproc: strip leading spaces due to C indent

Use first GLSL line as reference how much spaces should be stripped for
given block.

65a1c0b5a600b0bb7b8f6ca72626d587fe88c1c9 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/sampling: rewrite pl_shader_sample_ortho to pragma GLSL

94722c55cb0bf1f19e9db2b249ea9df41d2ae386 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11/utils: fix D3D11_MESSAGE_ID_CREATE_FENCE id

d0c5118ea4acb2c4874e45599a2a673b48451cb7 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: don't use declare_dependency for UCRT import lib

Starting from meson v1.2.1 it is unallowed to link to uninstalled static
libraries. This is how ...

0a203be35563bb2904a9d2e4ee88c0787acdbf36 authored over 1 year ago by Kacper Michajłow <[email protected]>
shaders/film_grain_av1: fix name collision on 4:4:4

This merges luma and chroma FGS into a single shader, resulting in name
collision of the shared ...

e9043c5d5089fda54814bc4749bb5625e1ab4e27 authored over 1 year ago by Niklas Haas <[email protected]>
tools/glls_preproc: use correct shader asprintf

We want to use the locale-invariant asprintf_c, matching the behavior of
the old GLSL() macro.

2af3c5697f978c32988e1a68777af1d16c7bfa73 authored over 1 year ago by Niklas Haas <[email protected]>
README: more minor fixes

3a037eec4251e0709827b6d99c96f026382bf120 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: switch to pl_options

Doesn't actually amount to much of a change because we were already
doing the equivalent of this...

5f06ca04770a73eb720f1879b2c71e56f79fec33 authored over 1 year ago by Niklas Haas <[email protected]>
tests/fuzz: fix various issues

This code is bitrotten to hell and back.

8c7ce0be99e7eedb9299dae7d24c2409431b524e authored over 1 year ago by Niklas Haas <[email protected]>
README: fix minimum vulkan version

dd8bf6c8da374f0d963251c21c26418966972743 authored over 1 year ago by Niklas Haas <[email protected]>
pl_alloc: support negative indices in PL_ARRAY_*

Counting from the end of the array.

44cbe9b649f1791606ba1cc6f8fd6d791962020c authored over 1 year ago by Niklas Haas <[email protected]>
README: document options.h

d87b4ffe823403c60239c72d47431386f3ad1256 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: allow pasting/copying settings from clipboard

4601c7bfb52ee7b49db79491de7dbf987df8daab authored over 1 year ago by Niklas Haas <[email protected]>
demos/window: support clipboard copy/paste

184820d3bab9e759933939b9dbd67080dfe01dcc authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: add raw settings dump

For convenience.

83cde451aef9f6c0f14cacf7d15f23fbdb6e42e3 authored over 1 year ago by Niklas Haas <[email protected]>
README: add github sponsors link

Redundant with the big heart on GitHub itself, but might as well have it
there to fill up the em...

c9b2ebdce812cc14b9089f691926aa496ca57d19 authored over 1 year ago by Niklas Haas <[email protected]>
options: add new options parsing API

After much deliberation and API revision, this is the form I settled on.
The new `pl_options` ba...

39e96188866077c94a112918369c76edc5e9f6e2 authored over 1 year ago by Niklas Haas <[email protected]>
pl_string: add pl_str_split_chars

Multi-character variant of pl_str_split_char().

5687840723f765b30b47745840ea7b4b4b591f65 authored over 1 year ago by Niklas Haas <[email protected]>
README: rewrite marketing blurbs

This felt a bit stale and in dire need of some cleanup.

3ef14431ed3c1d657dff037f54082336261fd2c6 authored over 1 year ago by Niklas Haas <[email protected]>
tests: add REQUIRE_STREQ

To accompany REQUIRE_FEQ and REQUIRE_MEMEQ

0811dfa44eaa0aee35a5958f25d66a84880546ec authored over 1 year ago by Niklas Haas <[email protected]>
README: historical revisionism

Actually, libplacebo no longer directly inherits any mpv code, since the
filter code has been co...

ac4868492775b740718ff3770ef774d9a547f89c authored over 1 year ago by Niklas Haas <[email protected]>
README: remove obsolete sponsorship section

Nobody ever ended up using this, any support I've ever gotten has either
come from patreon or gi...

4bfc6be15ed5af196a73abbd688ca5abb43ca577 authored over 1 year ago by Niklas Haas <[email protected]>
tests/fuzz: add pl_options_load fuzzer

2347cebf8d1c0bcfcb72ac8011d19195325d3780 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: don't load synchronization2 layer

Trying to load this layer causes issues on some systems, apparently,
even if it's reported as av...

95d44fbde7aeb67a006f85a18ecb949750b6eb31 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: improve numerical accuracy of antiringing

These constants can be generously lowered, to the limits of floating
point precision (roughly 1e...

cc5f8893ca7259e43aa2a55152f3da96e1780c10 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/custom: add support for NAMED parameters

These are internally treated as integers, but have extra user-friendly
names associated with the...

c57ac36e8ff4650d80e881d7c828d9883ee0cda7 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/sampling: redesign polar anti-ringing shader

I have improved the AR kernel by combining a number of techniques:

1. Instead of raising the co...

132a828fabce4cc6c78840d3e33736ca76c1255f authored over 1 year ago by Niklas Haas <[email protected]>
renderer: fix outdated comment

31eb628dc4d31ac0bb22cd4ac6f4e012e52f13a6 authored over 1 year ago by Niklas Haas <[email protected]>