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

tone_mapping: reduce strength of knee clamping

I forgot why I originally added such harsh limits on the clamp, but
after the recent refactors t...

3c65e123399f588c30a9aeccd84e9105b03396af authored almost 2 years ago
vulkan: fix for C++ compilation

Also mark those functions deprecated

2b3079a4bcc5856cca18f1391d60706b5f6176e9 authored almost 2 years ago
utils/libav: split declarations from definitions

Fixes #255

04769b5e8aaaa80a99f6a17a9432921098572c00 authored almost 2 years ago
tests: add include test in C++

aa584199b1a45bcc31e99f8112f1ac3f9d6779f1 authored almost 2 years ago
utils/dav1d: split declarations from definitions

ad098144bbcc62ae7d97a3d3a7939ac03ddc4933 authored almost 2 years ago
ci: use the same compiler for C++

2dea081ce7bed545a2dfd9fe02b145753751a9a8 authored almost 2 years ago
tone_mapping: add peak-dependent spline slope tuning

Further iterates on the previous `spline` slope tuning changes in order
to force the slope to be...

4f597287abcd24ffa9c827fafe310d41c1238535 authored almost 2 years ago
tone_mapping: fix typo in SMPTE tone mapper names

3a6fa5405242d0f819bef16c6dd8fea828837f0f authored almost 2 years ago
tone_mapping: refactor spline slope selection

Instead of the current logic, pick a slope with a tunable contrast
(steepness), designed to meet...

3cd09c7fefe10bdb8ecdd44cbfc17ccab85b097a authored almost 2 years ago
tone_mapping: refactor st2094 knee point selection

Avoid hard-coding constant brightness altogether, and instead treat the
knee point as a relative...

5379857f3972765aa397543deda992e143a5a211 authored almost 2 years ago
tone_mapping: fix outdated comment

e26eb836b64136167fdd379bda88655f014aa4ef authored almost 2 years ago
shaders/colorspace: tune luma-dependent desat by ratio

In the luna-based tone-mapping modes, we should also tune this constant
to hit 0.0f as dst_max -...

c76bfa1d3bce0a247c53ad86e0d0824964e3cc61 authored almost 2 years ago
shaders/colorspace: don't switch to RGB for pure BPC

Avoids sudden discontinuity as a result of tone-mapping modes when
jumping between frames that r...

161a315263c0c951fa2d095f7e19baa5c0d84d5e authored almost 2 years ago
demos/plplay: track external fullscreen changes

2836ded2254c400e7fb7b93435c588474947c828 authored almost 2 years ago
demos/window: fix typo

9e95b1ab07dccbd541aac1fcaabc7c3cbd538110 authored almost 2 years ago
demos/window: fix fullscreen switch on SDL

I didn't test it enough after changes apparently...

13f15c034144414db980bdcaa54b5dccbd5a2563 authored almost 2 years ago
demos/plplay: add separate controls for bits struct

Mark values as "Auto" and show one from swapchain if available.

Controls are visible only if ta...

290fd563bc7e430afd7e572d1f62e0915cb25c2a authored almost 2 years ago
demos/plplay: use constant step of 5 mcd/m² for min_luma

It was impossible to change "zero" value which is 1e-7 and calculated
step was very small.

937d85de193b94d477748d7cf6dede4bf95d9f7d authored almost 2 years ago
demos/plplay: prioritize manual HDR levels override over dynamic metadata

`pl_color_space_nominal_luma` resets `min_luma` to 0 for PQ output. Even
though our HDR override...

c727887a531a2b84bce51f1e780698c29d4a585a authored almost 2 years ago
shaders/colorspace: simplify tone-map visualization

Removes the support for the custom peak detection object, and instead
merely displays the averag...

dcdfb7470813063e309ee6188bf375ea13890e9c authored almost 2 years ago
tone_mapping: improve knee point selection

Do this logic in PQ space instead of raw nits, to make it more tunable
and perceptually accurate...

c60d7554ab7044d72920bbaef246e41c0fae018f authored almost 2 years ago
shaders/colorspace: simplify dynamic LUT generation

Scraps the old 2D LUT design by a naive approach which simply updates
the detected HDR metadata ...

a84ddf91d70dbbb4d56976779650c1c216f75eaf authored almost 2 years ago
renderer: disable tone-mapping params for overlays

The default BPC is good enough for overlays, no need to generate a full
LUT here. Inverse tone-m...

a5cf93281ae2dc6b508d30f05274e64ee2e250de authored almost 2 years ago
tone_mapping: prefer spline over st2094-40 for non-HDR10+

When only scene brightness metadata is available, pick the new spline
instead of HDR10+.

e5b8f643f46dffddd61480f945365480833998c2 authored almost 2 years ago
tone_mapping: refactor pl_tone_map_spline

Insteaed of using a hard-coded knee point with slope 1, infer the knee
point from brightness met...

7b203c6f5a23ed76e1f4a5019b89df7dc5c6d75c authored almost 2 years ago
d3d11/swapchain: reset HDR metadata if it hasn't been applied

f828c43b292edb4bdb70a998fdadc04b2f6965fd authored almost 2 years ago
plplay: forward dynamic brightness changes to display

Mostly for debugging purposes to see how slow display reacts to metadata
changes.

ac45f2138cfb89c1ca7cd7988ca71545158dd638 authored almost 2 years ago
swapchain/vulkan: properly remember the size

This allow `vk_sw_recreate(sw, 0, 0)` to correctly recreate swapchain
when needed with previous ...

7ecb1789da3c0ded982487e36e0e008ab2178457 authored almost 2 years ago
demos/plplay: add fullscreen mode

cd722badf52468c8b339c0cb9064d855088272ad authored almost 2 years ago
d3d11/swapchain: pass metadata struct as a pointer

84af94e257ab9f3681a7bc2c7310656210a6bc25 authored almost 2 years ago
demos/plplay: communicate detected CSP values to user

Replace the "Auto" label by a more informative label than "unknown" if
the colorspace informatio...

e3c3b0202fbfdb36df942409aa8a4cd2d625f9e6 authored almost 2 years ago
vulkan/swapchain: strip unsupported HDR10+ metadata

It makes no sense to re-return HDR metadata that we never signalled to
the display, so strip it ...

a2bfbc018d242bc2776889a1f785bde93710f685 authored almost 2 years ago
demos/plplay: major refactor of HDR override section

Instead of these complicated bools and structs that get updated from
different places at diferen...

41e719adbe53fba3597a8ee5d7c83a7b1c0968b0 authored almost 2 years ago
colorspace: add pl_color_space_nominal_luma to replace nominal_min/max

Due to a multitude of problems and corner cases, I became very unhappy
with the way this field w...

8b49a25a497547a359bc5e1825934e0c36da185d authored almost 2 years ago
d3d11/swapchain: strip unsupported HDR10+ metadata

Until we support signalling this to the display, we need to whitelist
here to prevent returning ...

f4e4d9f3890dda72204de118ee5bb962c53800b5 authored almost 2 years ago
colorspace: pass scene_max through luma coeffs

Instead of just blindly taking the PL_MAX3() of this array. This should
serve to hopefully fix a...

ac01feb4793d948aab4a9cf88b84776e2d66056c authored almost 2 years ago
ci: raise process limits for llvmpipe

A smarter man would probably disable testing older GLSL versions on
llvmpipe.

734359236fa72b6123caef8dd31a583e70a0c207 authored almost 2 years ago
shaders/colorspace: mark src-dependent shader vars dynamic

As these can change due to dynamic metadata etc.

d9a1482dbf6f0e82080298dbc820e4eb5cd80e3d authored almost 2 years ago
shaders: add SH_FLOAT_DYN etc. helpers

Parallels to SH_FLOAT for stuff we expect to be dynamic.

a03e9228d0220e5e9ea2353e55982a3449b33b64 authored almost 2 years ago
tests/gpu_tests: avoid rounding error in pl_planar_tests

Using 0.5 here is ambiguous as it falls exactly in between 0x7F and
0x80. This test was effectiv...

3a9ab63617e07f6cba2b5e1b85937a2b2e093906 authored almost 2 years ago
tests/string: add pl_str_append_asprintf_c test

This was never actually tested before now.

7727af762f7daf8fed293600d7d02f58dc27c48b authored almost 2 years ago
format: add pl_str_append_memprintf_c

Formats arguments directly from memory. Useful for wrapping printf-style
calls into a pl_str_bui...

9b0782b6924eaf5ffe115cedc08042984e90df48 authored almost 2 years ago
shaders: switch to pl_str_builder

Instead of building a pl_str directly. This opens up the opportunity to
avoid having to template...

fba74b695a169bcf10194dace1ed162e83202de7 authored almost 2 years ago
dispatch: switch to pl_str_builder

Not much exciting happening in this commit, since it doesn't actually
save any work yet. That wi...

7cb15c2022a63f72abbed1cdccb0f762347f14bb authored almost 2 years ago
pl_string: add pl_str_builder

Will replace `pl_str` inside `pl_shader`, with the ultimate goal of
making shader construction m...

aaf16a05c39f36d96896a9a3a05051749a587e6d authored almost 2 years ago
dispatch: only execute string templates when compiling

When re-using existing shaders, we now ignore the string builders, and
defer execution to the ca...

13372b0f1d5d85d6adb3c48da07cd549cfdca8b8 authored almost 2 years ago
format: use pl_str_append_raw

And also condense the logic slightly by coalescing these calls into a
common base case for most ...

b24a8fb33ba7fc0279a4f8e13fe205fc8de3e21e authored almost 2 years ago
pl_string: add pl_str_append_raw

To avoid overhead of adding a bunch of redundant \0 terminators in cases
when we want to frequen...

0cc4d5f6f95894b821f49eaa99632ce98910cb86 authored almost 2 years ago
utils/libav: don't mix declarations and code

To fix warnings during vf_libplacebo build

1127fafcbef06d3789c75468cc6e53e5dc4bd6b8 authored almost 2 years ago
vulkan: make vk_formats static

It is not used anywhere else.

e28337a1fe65ab715fc0df19aa3e77ec95060e09 authored almost 2 years ago
utils/libav: add missing include for LIBAVCODEC_VERSION_INT

56498fbe578d1e492b87426c0612fc7d261ea86d authored almost 2 years ago
make vk_device_extensions const

Puts compound literals data into read only section. No need to bloat
.data.

0df90f4c88ec67bdcdce1d6cdb638eaba5b5a73a authored almost 2 years ago
vulkan/utils_gen: prefer mingw env path

Inside MinGW env things from within this env should be preferred to
avoid issues with mixing dif...

6f8510f67739203a4ad9f69d8ec1e4e86ea7d9c8 authored almost 2 years ago
swapchain: Put pl_sw_fns struct into .data.rel.ro

9c3f8ccd42fea682b3fbd0f2765288ba510bdb33 authored almost 2 years ago
vulkan/context: fix destruction message

The current code called `pl_gpu_destroy`, which implieed `vk_wait_idle`,
*before* printing the m...

18d8ddb8d557bdc5263af32a4d6a359a0c3bea0a authored almost 2 years ago
vulkan/common: remove dead #define

Unused in the current version of vulkan/command.c

6267d56c6b4ee1beb5cafeb55485fb241e379c8f authored almost 2 years ago
swapchain: hide implementation inside PL_PRIV

Missed by 615ae1b639524f8835d3ff2c95e9e25bc7c35400.

Following the convention set by pl_gpu, we ...

6dd8725bee15a525314fcedfe1caabf8b91809dc authored almost 2 years ago
utils/dolbyvision: ignore brightness metadata for profile 4

As the reshaping is not done, setting the brightness metadata causes
issues as the image still h...

cbd98f0d1e718c8f7a737922cd9158b24956aa0d authored almost 2 years ago
dispatch: purge stale cache entries

Prevents the cache from growing infinitely large when users keep opening
and re-saving the same ...

f402b9928ae07bbe26347f0df0a3bbfb88b56d4e authored almost 2 years ago
glsl/shaderc: add spv disassembly in PL_LOG_TRACE

This is definitely useful for creating bug reports, so maybe its removal
was premature.

dc6c4650c408939484b40d5cd53dbeb82c6d7f77 authored almost 2 years ago
vulkan/command: switch to comand semaphores for vk_sem

With the introduction of the mandatory dependency on timeline
semaphores, we can actually stop k...

7d6a08b76f51f2006f3e75b10430c1ac267ac35b authored almost 2 years ago
vulkan/command: switch from VkFence to VkSemaphore

In preparation for allowing us to re-use these semaphores to handle all
object synchronization.

dce7c33a177d54cfa66d06c950d231034c752fab authored almost 2 years ago
ci: drop llvmpipe hack

Hopefully the new semaphores will fix the llvmpipe regression.

b8de54ddf03e5ec42fcd333043ba1e6ca7db6944 authored almost 2 years ago
tests/gpu_tests: disable ICC profiles test on GLES2

Without 3D textures and pretty limited 2D size, LUTs don't fit.

2ee71bc32cb880a5be01a142f80fb9483d5bbdd5 authored almost 2 years ago
shaders/icc: add missing lut check

78b1cf902cd9ae20c70444a0e305335d46216142 authored almost 2 years ago
shaders/film_grain_av1: fix left shift of negative value

8fbd336f4969efaa54562b694e63eaf1cb648de9 authored almost 2 years ago
d3d11: enable sampling from integer textures

Actually we can sample from integer textures. This fixes AV1 grain
synthesis on d3d11 where inte...

9e3c73fac8ba893024d7bc2270b08a116e8c1992 authored almost 2 years ago
common: add nonnull attribute PL_PRINTF

To catch more incorrect substitutions errors.

4e9596835bf04410028d583480820d21b0da4ad1 authored almost 2 years ago
tests/bench: add some error checking

f87cde095b70debc97c82de047c7f10f71301c7c authored almost 2 years ago
shaders/film_grain_av1: add missing null check for LUT

This fixes error check when LUT fails to create. Do not try to format
NULL as a string.

8f617ce3899734fe5a48607b81fb772cd1333600 authored almost 2 years ago
shaders/film_grain_av1: remove sh_lut_quiet

Dynamic LUTs are logged only in PL_LOG_TRACE after 3dd50923.

788e6bfdbb5f3a57c8fb150a519cbe28aefa46ef authored almost 2 years ago
tests/vulkan: use proper init type for handle

Fixes 32-bit build

8206a0bab12dcc7bf88d1cfe9b1f1a1ed9cc9d59 authored almost 2 years ago
vulkan/utils: assert that struct sizes are known

Current default is to do various funky types of UB.

2f48906f9cb3cae10c5c000a5d3a2a246c08e368 authored almost 2 years ago
README: add libdovi optional dependency

1ede8595957227df850ad99efb32a77a61910ef9 authored almost 2 years ago
vulkan/utils_gen: fix build on vulkan-headers 1.3.241

This version of the headers adds support for the vulkansc API, which
pulls in a bunch of definit...

baec0e53c9591a005d2fd6ee1dadcd10b8ce8770 authored almost 2 years ago
utils/libav_internal: use pl_hdr_metadata_from_dovi_rpu when mapping from AVFrame

When the RPU is available, we can infer the brightness metadata for now.

fe8b830926a009c6688e7c2a0e47a4cddd21222b authored almost 2 years ago
utils: add dolbyvision.h and pl_hdr_metadata_from_dovi_rpu

So that we can use simple Dolby Vision RPU buffers to infer whatever
metadata that can be useful...

cd1d3d03623c68140617149f56ff4af8c2e535ef authored almost 2 years ago
meson: add libdovi dependency

cb62007c83dbf315f456b01329b5d393d0ad0ea8 authored almost 2 years ago
utils/libav: add pl_frame_map_avdovi_metadata

As a helper for adding DOVI metadata to a `pl_frame`.

958a9395f591760422d1a4cd940485573624d2a8 authored almost 2 years ago
tests: check pl_render_image errors

05430610a389a619e11683e63fbafd8cd170c51a authored almost 2 years ago
shaders/custom: add signature to pl_hook

This allows disabling hooks more selectively instead disabling all as a
bulk.

b1e0cd5f6ffa862184af4304985687e47573a082 authored almost 2 years ago
ci: detect leaks

9b707d2ea1f91ac016ff02e7dc2a42d57347004a authored almost 2 years ago
renderer: add pl_renderer_get_errors

This provides feedback about renderer state.

0115d7c17c1bbdfb68338544da61b669245df2b6 authored almost 2 years ago
renderer: convert disable_* to single bitfield with all errors

8c00fd1d11703805a5f1ec7146e1d7817dae3870 authored almost 2 years ago
demos/glfw: fix initial swapchain size

Compositor may resize window if it doesn't like our requested values.
For example if it is bigge...

8a2f385c338d122463495e02d8c93c996859b5a9 authored almost 2 years ago
colorspace: include nominal min/max in pl_color_space_merge

3c32b8c4e17dd903e701ff0e60c6de28efa3eb35 authored almost 2 years ago
plplay: do not use deprecated aliases

40562638ace04195f2fff9639a533dbd0c7e5519 authored almost 2 years ago
demos/plplay: change how color metadata are handled

This makes it work nicer with color speace hint and dynamic metadata.

- Always show nominal min...

6791ceb5c1d4f2951a18f521616b251677427bb0 authored almost 2 years ago
demos/plplay: allow controlling color space hint

10b23faea4775858b3751ce20d7caadcdbc20b8c authored almost 2 years ago
d3d11/swapchain: copy missing fields in map_pl_csp_to_d3d11

a44d91d6acba7d88b93cd675515d004b49158ed9 authored almost 2 years ago
gpu: move global variable closer to usage

Cosmetic change to make symbol name more descriptive in binary.

69c601cff25e2a74f15cdb93e4a4d172ceaec4c3 authored almost 2 years ago
d3d11: define guids in one translation unit

ab214d6815efc9b5f9ec85da6c23861065e18e2d authored almost 2 years ago
stubs: add header includes to stubs

Fixes: 790e3c78d3a0a4d98226e0f37af89dcea634fa34

2c946e6808651d2b389826bcca6163a1e55fc0c8 authored almost 2 years ago
d3d11: add missing PL_API macros

ac47b8322f653422e280de65ed6b55244b08bd97 authored almost 2 years ago
meson: set visibility hidden with option

d661bf0c8451aaaed753083d62a1ffb28dfbf2e3 authored almost 2 years ago
shaders/lut: don't spam LUT update message for dynamic LUTs

A LUT marked dynamic is *expected* to change frequently, no need to nag
PL_LOG_DEBUG about it. D...

3dd509238e41b4d2c5ae384cc26d5f881d043f53 authored almost 2 years ago
vulkan/buf: emit correct host read/write dependencies

Inside vk_buf_barrier, we also need to make host-writes available, even
for coherent memory, and...

8c2c9576d440d00fdd942c67a0120fd80dc56dd3 authored almost 2 years ago
config: fix config.h API definitions

This needs to be properly defined as well even after removal of the
pragma before global include...

c7854aac2625ebe42972e85e4a1c851cdac5ae95 authored almost 2 years ago
common: don't unconditionally include all public headers

Mostly for stylistic reasons, and to avoid drowning in global header
includes as libplacebo grow...

790e3c78d3a0a4d98226e0f37af89dcea634fa34 authored almost 2 years ago
common: move GCC visibility pragmas to PL_API_BEGIN/END

Allows us to avoid having to include every header file here.

82023b9e9d683499329b2d5c502eafaf5f6c8ef2 authored almost 2 years ago