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

d3d11: add support for emulated formats

55c1073a5e0fc10d58ceb8cfb4f320c103b53ff8 authored about 2 years ago
d3d11: add emulated formats for rgb8, rgb16, rgb16hf and 16f

cd71614c22558de547dc76efaed9b9901eb62771 authored about 2 years ago
d3d11: add missing Buffer struct initialization for SRV/UAV buffers

5d2ccb145f4abadac26557e6b6146ab947cc201b authored about 2 years ago
colorspace: define white points with commonly used precision

This changes values to make error predictable and comparable to other
software. Generally color ...

a58dd3383c1fe9edebd606193b96c5ba1e3ac9a4 authored about 2 years ago
dispatch: emit proper samplerBuffer type for int bufs

These need the corresponding prefix (u/s respectively) in front of
`samplerBuffer`.

35829860862d791f10ec6b1bdaae9d8b4e5152c1 authored about 2 years ago
vulkan: add planar texture formats

These are mapped straightforward because the word order is consistent
between vulkan and libplac...

89f5c541777c74ecd913871d1fc93c2404350624 authored about 2 years ago
tests: add basic test for planar images

Only tests creation and clearing, because the latter is a special case
on vulkan. Should be expa...

872bce95650f098a83a43f120dc5f3e4fe6b3007 authored about 2 years ago
vulkan: add more verbose logging to tex creation failure

Because this can sometimes silently fail for obscure reasons.

811e1246eb36640fa4bca4ab53194f2d19793248 authored about 2 years ago
vulkan: implement planar synchronization

Since `pl_tex_export` is deprecated, we only need to worry about
`pl_vulkan_hold/release`. To en...

7aa79c8b26eea9d920ac94c8410823af56c9b8b7 authored about 2 years ago
gpu: relax pl_fmt_fourcc non-opaque restriction

There's no reason we can't export/import opaque texture formats via DRM
modifiers, in particular...

4a2b2681bf4ad57f3c020bb2a46806724b9b9724 authored about 2 years ago
gpu: add DRM modifiers for planar formats

Unfortunately, this is not a complete 1:1 mapping.

fc4336c66f4062be62421d57964e47552f5da448 authored about 2 years ago
vulkan: add support for planar formats

Only adds support for creating/importing planar textures, but does not
yet add any planar textur...

078bf2e75cda251037ecbfedde3be5788dd27359 authored about 2 years ago
gpu: delete unused left-over field

No idea what this was originally for, but it's not used currently.

27654a4f2dd7592322092829b7f7c056fe1b5471 authored about 2 years ago
common: add PL_RSHIFT_UP helper

For determining the sizes of subsampled planes.

07c1ecd4bdc832e60686c8df2c3a3b7ca913ec2d authored about 2 years ago
vulkan: minor code cleanup

Give `params->format` a shorter name, since it's about to be used even
more.

47c2ceee554a3453f059f350b5df1a0eb54bd8d8 authored about 2 years ago
gpu: increase size of texture name in format dump

Since these newfangled planar formats can have quite long names.

130b85380bfb395077dee07731ed1f24b1106c49 authored about 2 years ago
gpu: add planar format API

This commit only adds the public-facing API and common GPU wrapping
code, but does not add any p...

9aacfbce1a1d92ee61d11216de2bba9187d626c8 authored about 2 years ago
vulkan: add packed 16-bit formats

This can be used to map P010 etc. natively, without requiring conversion
or up/down-shifting. Mo...

9d48f60fdc46440c75d542c32637d961e5a1ccc4 authored about 2 years ago
vulkan: bikeshed pl_vulkan_wrap variable names

For consistency

fac329966bba78773593cde281369586d5b86ec8 authored about 2 years ago
vulkan: properly mask more usage flags in pl_vulkan_wrap

I have no idea why these weren't in the list. There's no comment
indicating that this list shoul...

ce9e2fb413e10e354f4092daeaf70351e5801257 authored about 2 years ago
vulkan: fix pl_vulkan_wrap on non-2D textures

This incorrectly hard-coded VK_IMAGE_TYPE_2D, but we can also wrap 1D
and 3D textures (according...

250ab8c9892df091fb5474d761085a24854a2b77 authored about 2 years ago
tests: fix UB of converting out of range value to uint8_t

807f826f44d23c2031fc3437bc9bce35c2cd58f2 authored about 2 years ago
renderer: ignore alpha component when initializing neutral

Fixes array overflow with formats where alpha is not last compoment

371a0c10df13e2898f35a402816a0061b70095aa authored about 2 years ago
vulkan: allow importing planar textures

Step in the direction of #209.

90e2c9203b782a30ef20cf93a4dc4fcaec79c287 authored about 2 years ago
vulkan: support clearing planar textures

These cannot be cleared directly as a result of Vulkan limitations, so
work around it by blittin...

ea746c941a723933dd7c612abee8e3e7c28395da authored about 2 years ago
gpu: optimize pl_tex_blit_compute for 1-pixel blits

This is a special case that we use to emulate texture clears on planar
vulkan textures, so it's ...

f3a12298dfb24c8745b3b66d3d5b0f36f471b4a1 authored about 2 years ago
vulkan: parametrize image aspect

Setting up for the ability to use planar textures (and imageviews of
planar textures).

71a498fa6c3fc54e14b155beea20094f28864e34 authored about 2 years ago
gpu: allow pl_tex_blit_compute on non-storable src

No need to require this, if a non-storage fallback path exists.

285f02534751442b2a74501dc23bf938acb1e95d authored about 2 years ago
gpu: fix compute shader blit fallback

This round() was supposed to be a floor, which is done implicitly by
truncating to ivec3.

I'm s...

2c1da7b95d35cba6b7251b7781e620a1c0cdba60 authored about 2 years ago
vulkan: support blitting planar textures

This can't be done directly as a result of vulkan limitations, so
work-around it by using our ex...

81faa37f3e5b6ffbd00d1d007dc548b4d3405b9f authored about 2 years ago
renderer: handle XYZ more gracefully

Instead of relying on the broken-ish `pl_shader_color_decode`, which
cannot do something better ...

0b65f13fb322ddaa211dae4d2f5bd998323852a4 authored about 2 years ago
colorspace: default to DCI-P3 for XYZ, not BT.709

Much better assumption in practice.

669f7d72f0c5bf986fe1532bf1e03903dfd76a4b authored about 2 years ago
renderer: correctly re-linearize un-linearized linear inputs

As the comment mentions, if facing PL_COLOR_TRC_LINEAR input, we decide
to un-linearize for scal...

e3889b96de825f371b399724f42db2a360e51460 authored about 2 years ago
renderer: infer correct XYZ gamma/primaries

In practice, it's very unlikely users set the gamma field correctly -
tagging is usually missing...

dae6358b10708e60569ccaf805e64fa85ac6fc1f authored about 2 years ago
colorspace: improve TRC default selection logic

Gamma curves like 2.6 etc are sufficiently different from normal gamma
2.2 that we shouldn't inc...

4139c4efceb1450ba8026f06d023f6b29001eba9 authored about 2 years ago
utils/libav: fix whitespace

8a8948a89f41f249df1e3f6c7bf6889f427fdddb authored about 2 years ago
vulkan/swapchain: add missing queue family information

Missed by the switch from `pl_vulkan_hold` to `pl_vulkan_hold_ex`.

2a8099a8aba4123e9e0b3e1e79f36a75b9468555 authored about 2 years ago
vulkan: add missing array termination

d551a3c42bb3799e88e778ea7f3d0402a46efbff authored about 2 years ago
gpu: deprecate pl_sync and pl_tex_export

The only API that needed this was Vulkan, and the Vulkan-specific
helpers do this job better.

9074fd72dd80e365e082008b7588a854d4372408 authored about 2 years ago
tests/vulkan: add interop API test

Including a test for the new semaphore helpers.

63d27a8657cfd2aecbcd44089117522c7cc54423 authored about 2 years ago
vulkan/swapchain: switch to pl_vulkan_release_ex

Again, only because it makes the code marginally easier to read.

6306e3bf50f8091c0a2737db970bc128786f0045 authored about 2 years ago
utils/libav: switch to new vulkan hold/release helpers

Mostly for posterity's sake, but also because it makes the code easier
to read. (YMMV)

c7e2f78271915684bf3aee41cce03cab1654a248 authored about 2 years ago
vulkan: add semaphore creation helpers

In the interest of deprecating `pl_sync`, we need a Vulkan-specific
semaphore creation helper to...

4abe91008c3fa6d72bff0ca81ef0316dc683a753 authored about 2 years ago
vulkan: refactor pl_vulkan_hold/release API

The same deal with extensible params structs, as always. This refactor
also adds a new `uint32_t...

c0c595a632a8d741828602f9581ff14d4031e08d authored about 2 years ago
vulkan: refactor vk_tex_export to keep track of qf

Instead of using a boolean `export` flag, generalize this parameter to
take an explicit queue fa...

fcfeee47c505975e1c4fe02ba76ea6f57a9059d3 authored about 2 years ago
dispatch: fix deprecation warning on ES GLSL >=3.0

Including the older extension triggers a warning, as the former is
considered entirely deprecated.

36afb4ff4f81c9caefd59066ea0d9c5071487aa4 authored about 2 years ago
dispatch: also enable GL_OES_EGL_image_external_essl3

Versions of GL ES above 3.x technically require this extension to be
able to use samplerExternal...

87f052376194a8e30dab4cb65c3f23485f90f10a authored about 2 years ago
renderer: fix unintentional sub-pixel distortions when cropping

This stretch factor was not supposed to be there, because the original
crop of the image lives i...

8299ec702233aa4b785d6ffca593a3298d77fc6b authored about 2 years ago
vulkan: fix typo in log message

f9dacd3eb28b1f7322d32f878f66610d30d052c5 authored about 2 years ago
glsl/glslang: use new GetDefaultResources() API

Finally, we no longer have to update this struct manually.

2a64dacaefe05e9d883409a01f06abc9f42b046f authored about 2 years ago
glsl/glslang: fix configure issue on recent glslang

On shared glslang, these all resolve to libglslang.so, and appropriate
symlinks may or may not b...

345c9bc7a826578e3cf93bf3b2abf5685867cb1e authored about 2 years ago
vulkan: expose vkGetInstanceProcAddr in pl_vulkan

This was strangely missing so far, which made it awkward to route this
around inside mpv. It's s...

52b12b89d9952e56aeb8a731eafa017f0b7feaf9 authored about 2 years ago
renderer: invalidate cached image on crop change

Otherwise, zooming into a fullscreen image fails invalidating the cache,
resulting in a false po...

d0f2e68bde5ba89097f4f698606eb9033b909357 authored about 2 years ago
renderer: minor code simplification

Stop indexing this array all the time and just give it a name.

a79e36600d9e475146cecb1cf867fe0abb14b8e0 authored about 2 years ago
tests/libav: add 64-bit pixfmt test

This represents an important edge case.

8ca1a81a38e674ab782243eb5e9ab6ebe77838b8 authored about 2 years ago
RELEASING: update bugfix release guidelines

To actually bump the bugfix version number.

4fb841f73cd735eee18485ce00c836ac2d56c4cc authored about 2 years ago
tests/vulkan: disable GPU-assisted validation

This causes regressions with latest versions of vulkan-headers,
including GPU hangs and shader e...

6ae5544021c4e6ee036da1a6a08010b22e73c384 authored about 2 years ago
utils/libav: only allocate host-cached AvFrames

Because non-host-cached buffers will be too slow to read back from.

cab1aee250fa6a174e9f54eb2e7cb6a69181920c authored about 2 years ago
utils/dav1d: only allocate host-cached Dav1dPictures

Since non-host-cached buffers will be too slow to read back from.

869f70f2386395168018df5400c185301bb467bb authored about 2 years ago
gpu: log host_cached cap

de4e82b79844cfa48efde253226912181ad62797 authored about 2 years ago
vulkan: set host_cached cap

Test for VK_MEMORY_PROPERTY_HOST_CACHED_BIT.

36ddf83fb3aea0b465176a33e0807e7c2b9b658a authored about 2 years ago
gpu: add pl_gpu_limits.host_cached

Indicates that host-mapped buffers are host-cached (i.e. can be read
from efficiently).

b3521ab882173f24171f4344608ae87b0a8fb490 authored about 2 years ago
vulkan: report accurate buffer size limits

Using the new function `vk_malloc_avail`.

80c4856b283b79ef450f268cc8663c5129c83acd authored about 2 years ago
opengl: implement pl_gpu_limits.host_cached

Use a whitelist of known-good vendors, because that's the only thing we
get from OpenGL. Amazing...

12dbe90f737b5870410a8702aeee883649cb682f authored about 2 years ago
vulkan/buf: relax HOST_CACHED requirement for buffers

From `required` to `optimal`, since `pl_gpu_limits.host_cached` can be
used to test for the pres...

8a8d84564c69a6963b4e0aa39cf2ec39abceee52 authored about 2 years ago
vulkan/malloc: add vk_malloc_avail()

To allow testing the amount of available memory matching a given set of
property flags, without ...

8588a98f0ab7221aa41c15a9631fd25028e6f09a authored about 2 years ago
tone_mapping: fix inferred default tone map param

When the param is not set or zero, the default should be used
before clamping, otherwise the par...

1f83207907d3849033edf97e1ca83f0637a9658b authored about 2 years ago
opengl: do not blindly reject all Microsoft's OpenGL implementations

This change enables libplacebo to work in the WSL2 (WSLg) environment
where OpenGL is implemente...

41f7d6aa501327b2c4c515f7039847fe26cee997 authored about 2 years ago
renderer: fix memory leak of pass.tmp

Remove unnecessry allocation of `render_pass.tmp`.

When commit [0] added this reallocation of r...

9dffc512dbbac55a1d7666152f71af6d4eaf8ee4 authored about 2 years ago
docs: document BIND also working on buffer blocks

22ce304a16bfbf9445a5987452f90f53efbe594f authored about 2 years ago
docs: fix missing `

dea499ced41832b9aaf0b740777462856a077b61 authored about 2 years ago
docs: add documentation for custom shaders

This marks the first time the entire syntax was documented outside of
the source code as referen...

a0e4ebac2b5f12e9c9f3baf0b333610adc311ba6 authored about 2 years ago
shaders/custom: drop redundant comment

No longer relevant.

0ad08778888c2bf7437b7b1a991ee12ff43d9377 authored about 2 years ago
shaders/colorspace: improve PL_GAMUT_WARN algorithm

Instead of highlighting after 0.5% of peak delta, highlight at a very
generous threshold (1e-6)....

acaba0f4ff71b55266df9feab70dfbca0b7f6495 authored about 2 years ago
docs: add CNAME

368a1d9e651242ac0f448283452063917436daca authored about 2 years ago
docs: align initializers

Code tidiness.

41778dd24599d54143ddb3ac75156390eeb2d7a5 authored about 2 years ago
docs: add pl_renderer tutorial

4515e2a7e9eb8d3f78f164a7e1204421ff3a0b28 authored about 2 years ago
docs: rename basic-rendering.md

Disambiguate it slightly from rendering.md.

d2b5b7bd15b180488ab69f5587d82350d2be4e25 authored about 2 years ago
renderer: never use linear downscaling on HDR sources

This logic regressed sometime in the move from mpv vo_gpu to libplacebo.

Fixes: https://github....

030b59d1771cdfe7c563480aa187dbc11645ca36 authored about 2 years ago
docs: change colors

Slightly more readable. I think.

c62182db6bb9c8ada70ebec2c8204ae979b64cf9 authored about 2 years ago
README: add link to documentation

141b8ec8ec0315a5657f268d38052e31630d0fa7 authored about 2 years ago
github: add hook for documentation pages

c148660ada044853c2f96ba5762edb7dc77fd140 authored about 2 years ago
docs: add basic documentation

Using `mkdocs` + `material` theme because it was the nicest-looking
thing that I found with a fe...

af2ba3e3b5ef44d2a7dd05062cb20d1e9f0118a2 authored about 2 years ago
vulkan/malloc: remove assertion

This is redundant with the switch coverage check, fails to capture the
intended logic correctly ...

cbc3ef8cc9e9d58086e0ace3aac2184b6fcb6bd3 authored about 2 years ago
shaders/film_grain_av1: support >12-bit input samples

AV1 only allows up to 12-bit depth out of the box, but we want to handle
the case of already up-...

68ba64c09e8e947562e087d9541e38f6796fd74c authored about 2 years ago
renderer: fix red channel plane merging

Simple wrong check. PL_CHANNEL_NONE is not 0.

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

7ead30db8aa75db28236eee40899f0ff6e3c9688 authored about 2 years ago
shaders/colorspace: don't explode on luma > 1000

The current desaturation function extends linearly to infinity,
resulting in very bad behavior f...

9e9b93502d984900cecde793d884c6c79c4cafc1 authored about 2 years ago
shaders/colorspace: fix tone mapping desaturation

The desaturation code was seemingly completely wrong. I have no idea
what it was even doing, but...

7378526770b823cf76ca66d31ad6aa079dd15cec authored about 2 years ago
shaders/dithering: reduce unnessary code duplication

This branch was meant to be simplified by the introduction of the common
scale factor defined ab...

fc6cf3a881b910f5ecdff2e86ac3f737ebd333a1 authored about 2 years ago
utils/upload: verbosely log plane misalignment failures

Since these are almost always a bug we want users to be aware about, due
to triggering other for...

0f3db1b18bb413d7adb0c396744a2bd5b4ca2222 authored about 2 years ago
renderer: fix film grain bit depth after debanding

The old code was written around the assumption that the film grain step
is always the first step...

414b9bc2ca509d5b5a52242a1a65f833c7bcdcdb authored about 2 years ago
shaders/film_grain: don't spam log on LUT invalidation

These are definitely expected to change per-frame. Suppress the LUT
reinitialization warning, wh...

27e38da9ee133d4fdf579f967ea65020d094e9fd authored about 2 years ago
shaders: refcount pl_shader_obj inside pl_shader

Prevents pl_shader_obj from getting freed before any allocated shaders
are done using them.

Clo...

7ad9eef18bacd3be8c174579b26a2014b8c52fbb authored about 2 years ago
opengl: don't try to use libdl on *BSD OS's

As mentioned in https://github.com/haasn/libplacebo/issues/147 there is a
better way of doing th...

6cce976d478306fbcb360e6c3f33418e6b18932a authored about 2 years ago
shaders/custom: split up into sub-files

Splits the mpv hook stuff into its own file.

c0373263e665248b856625a71ff9a17d86218eef authored about 2 years ago
shaders/custom: allow referencing shader parameters in RPN exprs

Can be used to allow things like tunable plane sizes or conditionally
enabling passes with 'bool...

cca4a1bb2b2cfa91dbd3589133710015f8b73480 authored about 2 years ago
shaders/custom: rename SHEXP_VAR_* to SHEXP_TEX_*

Makes these clearer, in light of the fact that I plan on adding other
types of variables to thes...

8808796c46bd276c9f0dff530a1712deaea860eb authored about 2 years ago
shaders/custom: rename szexpr to shexpr

Not a huge change, but since these are used for more than just sizes,
the name bothered me.

ae46b6d7872e169d5ec2f8e14e53ddc3352d34d7 authored about 2 years ago
shaders/custom: refactor szexpr code

Remove some cruft left over from an older version of this API, when it
was still public.

f6fc160bcfe540c8fa55e44a9422e35b889dc645 authored about 2 years ago
demos/plplay: add support for tuning custom shaders

Very primitive UI, but good enough for testing. Patches welcome(tm)

68bcb263414c7e8047373cb37adbd0f80c4b4c15 authored about 2 years ago