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

meson: set pkg-config vars in declare_dependency

This ensures libplacebo has the correct pl_has_* variables when being
used as a subproject since...

9cf67fdb4206f414327bbbc429c9e3623311bbee authored over 1 year ago by Dudemanguy <[email protected]>
vulkan/context: check required features explicitly

Mainly so we understand which exact feature fails, rather than erroring
out with a generic error...

9f35ff1ad6a95245659a0935d7a20a3543814838 authored over 1 year ago by Niklas Haas <[email protected]>
dispatch: enable more subgroup operations

No reason not to enable all of these. The worst that can happen is that
we'll generate SPIR-V wh...

fd20dba8435a0d16430bf90d45be3a43aaae1a01 authored over 1 year ago by Niklas Haas <[email protected]>
gpu: also log stack trace on shader miscompilation

Especially important if we're about to pl_debug_abort().

fdca7749f6347cfaebddd6f5a5e24505ea6041ba authored over 1 year ago by Niklas Haas <[email protected]>
common: also log to stderr on pl_debug_abort()

To understand that this is an intentional crash.

f8b77a142168cf906c9fb831dd4eb88269d0ca11 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: support VK_LAYER_KHRONOS_synchronization2

Needed to provide VK_KHR_synchronization2 on some platforms.

6d99fde2146d90b0bbe0f455485ea2836cdcfcd1 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: support VK_KHR_dynamic_rendering

Instead of requiring these functions from Vulkan 1.3.

88ee01c4be40ef553846e8c494ce33d608e72fa2 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: revert back to 1.2 minimum version

Fixes: https://code.videolan.org/videolan/libplacebo/-/issues/271
Fixes: https://github.com/mpv-...

1e0b01ea4ad9b0010a3389c2d2894244956b854e authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/formats: respect API version when probing formats

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

62a041b308f5489c165414552971057980546331 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: add support for VK_KHR_synchronization2

Specifically, support loading this as extension instead of requiring the
promoted symbols from V...

351447a3f5bc22c4589af727951a9624329c2b94 authored over 1 year ago by Niklas Haas <[email protected]>
Revert "vulkan/gpu: drop redundant SPIR-V versions"

This reverts commit efdfbbf11cf0ca57b42fed9811a410771351043f.

a20bcbdf639345b015a930a56bbc1e60e8cc73b9 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/common: remove unused event-related functions

369b1fbad6641b758ee63a853fea28b37b964292 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: fix extension loading on pl_vulkan_import

This code was completely bugged in a number of ways.

7d653b988d098411d6a7d825bfe7bde4471781ef authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: move header definition (style)

Move these to the appropriate place, since they're relevant only to
device imports, not wrapping.

e1555bf0440bd8a6412c99dd5b74ef18c7ad584b authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: remove superfluous casts and use fixed type specifiers

Just a cosmetic change.

1b00e5f3c35d3b61cb347a336dfa05b8141ba2e9 authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan/context: use VK_API_VERSION_MAJOR instead of deprecated VK_VERSION_MAJOR

ebacec6aa359694af3213e59ef2a581fe6340bfd authored over 1 year ago by Kacper Michajłow <[email protected]>
pl_thread_win32: use __restrict to make it compatible with C++

Fixes glslang.cc compilation.

c8b5f268cf66f4d69fc76133d03d2f4328576e03 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: do not call pl_d3d11_flush_message_queue recursively when it errors

This avoids infinite recursion when there is an errors on GetMessage.

Fixes stack overflow cras...

4b6643399a6bde05ad15f44f221c5713f3e309c6 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: workaround bug in ID3D11InfoQueue::GetNumStoredMessages

After the storage limit is reached and ID3D11InfoQueue::ClearStoredMessages
is called message co...

1ab3a5403f671ab79de28883cc2babe2e72c595f authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: use fixed type printf specifier

Just a cosmetic change.

6497dbbdaf2b6c7f9e1d304d72c1e8b1709d8d42 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: always clear messages, even on error

67464655849961f5c5923c3abb6665f6aeb570b6 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: remove storage limit

Message queue is flushed often so it is safe to let it grow.

a6bd0cdc0f0d56f62a07d4709236e61cdfd7495d authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: reuse allocated memory as much as possible when flushing messages

009630b1d3544a664260024fb233116c9c64b781 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: reduce indent of validation messages to make it more readable with backtrace

7bf12e1b822dcd1ee8f61d64b9ef40d80748117d authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan/context: fix driver version display on import

Should be %x/unsigned to match the same print-out on device creation.

2e2f59785cf192f155249690f30d80f074936fb5 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: disable unworkable video decoding validation

https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/5390

5b777745d2cade904f7d5abac239f18b482aa1d7 authored over 1 year ago by Philip Langdale <[email protected]>
gpu: add pl_debug_abort on compilation failure

Useful to abort early instead of scrolling thousand of lines of logs.

fcee4aabbcafcaecc58dd3ef547c932568276aef authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11: fix ID3D11Device5::CreateFence call to init fence correctly

ID3D11Device5::CreateFence expect pointer to storage to return pointer.
Passing value which in o...

82a84d0522db1c9d111ecacaa77c7bfc864eadc3 authored over 1 year ago by Kacper Michajłow <[email protected]>
.gitignore: add .cache

Used by clangd. I could enable this locally, but other users might also
benefit from this down t...

18a8dc1e2bf73ca6d9d87826ffcb0c79d80685b6 authored over 1 year ago by Niklas Haas <[email protected]>
meson: set library prefix to `lib` always

17f3dd2623abf2fcafec2e8fcbc362ac81c69f73 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: add missing glad_dep definition when opengl is disabled

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

550e80b33b8b9225277748f3d4fcd640d3ba5409 authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan/tex: move function definitions to library

Those were accidentally moved into test sources instead of library.

Fixes: https://github.com/h...

9dc502d74affd6b0d10ef8af51abbd23010b43f8 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: define PL_STATIC when linking to static lib

016e9b0828b0887636db64c3f7ec9eece66d8ca4 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: generate pkg-config file with PL_STATIC

For compatibility when building only static library insert PL_STATIC
always. When building both ...

995caeed4b77d4b0a9684da9464488abafb2beb0 authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan: infer correct VkImageAspectFlags when wrapping

Makes it much more convenient to import planar images directly. This
field now only needs to be ...

4fb31ab9cd0ebca8ca7db581f56fdf3fb237c8fe authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: move header definition (style)

Move this to the appropriate place, since it's relevant only to device
imports, not wrapping.

18d31054f4cfbda7292f982173326536a4d118a0 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: explicitly clear queried feature structs

This allows us to also include also feature structs which are
unsupported by the driver. Due to ...

35be4e86e5765b481d37f8e08dd64c6a9b952ca7 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: set correct sType on vk->features

This was not initialized correctly, leading to very strange behavior
(and unintended errors).

6f8bd38a84cd2e2b6d21c2ea75141614444cc376 authored over 1 year ago by Niklas Haas <[email protected]>
meson: define _USE_MATH_DEFINES in whole build instead of one by one

9b2465966f60f87b21aae3d209974bc448a51a47 authored over 1 year ago by Kacper Michajłow <[email protected]>
win32: add compatibility between posix and MS SDK

17ddadf357be96b69d4650ea23daf793c3b9c50e authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: allow Vulkan discovery by using VULKAN_SDK env

This is used as a fallback when pkg-config fails.

e74b5b5a31022900ad6eb15f449be61ea01ac52f authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: disable CRT deprecation warnings

Microsoft really wants to push more secure variants, let's suppress
those warnings.

caaeb54c4ae0dada8fc0e78c3e6cd9690abc68e3 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: suppress warnings about unsupported args with MS link

1c09a5748861d3064fad63c18f8616aabc77440b authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: add missing vulkan_headers dependency on bench

7b2e1836094c8ec4d5880985c2188579c8959106 authored over 1 year ago by Kacper Michajłow <[email protected]>
tests: use standard timespec_get

It is more portable than gettimeofday.

cc3c0800d8ffe6ea793bee5a38eecb5cc143f5f4 authored over 1 year ago by Kacper Michajłow <[email protected]>
common: remove unneded includes

846684e4d0ba0b5914bd713ea7b3abc4997e5ca0 authored over 1 year ago by Kacper Michajłow <[email protected]>
plplay: add PL_BASENAME for Windows compatibility

0e661ae263b3f690a80514bfa28cd4aa7c06cb76 authored over 1 year ago by Kacper Michajłow <[email protected]>
api: decorate all API functions with PL_API

Needed for Windows to specify dllexport.

Now when linking to libplacebo statically one have to ...

4cd2f111034cef81962c095885815b230cf5d0f4 authored over 1 year ago by Kacper Michajłow <[email protected]>
common: make pl_debug_abort() to always evaluate to non-empty statement

f476a04aa7eb02ae875705dd17ac7033dd3af2b4 authored over 1 year ago by Kacper Michajłow <[email protected]>
d3d11/utils: add pl_debug_abort for validation similar as done for Vulkan

86e83d6843d7174915c054b2e5e0da5dff6aaa77 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: handle test dependencies in more fine-grained way

f1802a69cb818aff456efb4d4c7332a3f468ae15 authored over 1 year ago by Kacper Michajłow <[email protected]>
thread/win32: implement thread creation for win32

Co-authored-by: Niklas Haas <[email protected]>

3a675c96825340b519887433fd9d8ec351010c16 authored over 1 year ago by Hendrik Leppkes <[email protected]>
meson: do not exclude-libs=ALL if sanitizers are enabled

For sanitizers to work/link properly some public symbols have to be available.

We do exception ...

68b0e4968f675bd4f2caae7a3f098dcec2cb4713 authored over 1 year ago by Kacper Michajłow <[email protected]>
meson: remove pl_threads dependency on internal config

905682ec250985822e5ecee9235ca455f310cb79 authored over 1 year ago by Kacper Michajłow <[email protected]>
ci: instead of disabling code just disable MSAN with attribute

0853279e31d6e3d36ee2f286ef488858857796da authored over 1 year ago by Kacper Michajłow <[email protected]>
ci: merge UBSAN and ASAN builds

There is no reason to run those separately.

932deef697acab3c65cb3a420ec1e9fb480f9051 authored over 1 year ago by Kacper Michajłow <[email protected]>
ci: enable shaderc and glslang

No need to disable them...

97f4997d80beebec10d5d11e24949fd0d17830f5 authored over 1 year ago by Kacper Michajłow <[email protected]>
thread: add abstraction for actual threads

The day has finally come where the vulkan GPU needs its own internal
worker threads. I was tryin...

20b3ac182e649ae20b417d39f4e61c11f6fe455f authored over 1 year ago by Niklas Haas <[email protected]>
meson: remove unused variable

c8e31ce56840e8fee66b70991b4d343b1590dac5 authored over 1 year ago by Kacper Michajłow <[email protected]>
plplay: use pl_thread

fc772058d81c3c757bcb899982974b366dfa24a7 authored over 1 year ago by Kacper Michajłow <[email protected]>
ci: add -Werror to clang builds too

2f5f9b1a48e7a769b160a44c2158a9f19ebf5640 authored over 1 year ago by Kacper Michajłow <[email protected]>
vulkan/context: print API version on device selection

To better understand what's going on in certain cases.

6906056925ee0e4da41ad5c0897f436bcce0ab4c authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: add recommended features from lavu hwcontext

Currently restricted to only the base structs available in vulkan 1.3,
to avoid linking extensio...

400003d025975e971c925c4d1467486ef4370b9e authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/gpu: drop redundant features/version checks

Implied by our new minimum vulkan dependency, as well as the new
required features flag.

44fdc7746e0f1ddd29b7e0fc4a315a7c1131a4e0 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: add and expand pl_vulkan_required_features

As a simple litmus test, I decided to hard-require a feature if the
vulkaninfo database shows 10...

9839f467030f26f73a75a59e5f6240b1ec0f92db authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/pass: switch to dynamic rendering

This allows us to slightly simplify our code, in particular by dropping
the need for framebuffer...

d03db4df6c4242daf47ee40cdd426533ccfa66c5 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: switch to VK_KHR_synchronization2

Largely boilerplate changes, but more inherently future-compatible.

e5fb4e68a65054f92e9f4aaf979edeecc606bbfd authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/utils: add vk_chain_alloc helper

To insert an arbitrary structure into a pNext chain and also return the
pointer to the inserted ...

c7cfa668c1f1eeac483370483559fc565544c11f authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/utils: add feature normalization helper

Vulkan decided to handle promoted features in a very stupid and
inconsistent way, where there ar...

1de47d4f88a66adbf69f8ef6da79b27062be5a73 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: simplify feature handling

Both users and our internal code no longer need to worry about the
ambiguity between meta struct...

61cee1d666dd0faea06a453a280485edf1c3b87d authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: include maintenance4 in recommended features

Now no longer harmful to link in on old VK versions.

8317607e959bb6e8358d028e5e89721beaba0762 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/gpu: drop redundant SPIR-V versions

No need for back-compat here on account of our new minimum Vulkan
dependency.

efdfbbf11cf0ca57b42fed9811a410771351043f authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: drop promoted extensions

Vulkan 1.3 includes these as baseline, so there's no more need to
support loading them as extens...

49fa6397828c3f9cd0e15f2bd38830d916fd61ff authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: drop back-compat defines

We require vk version 1.3 anyway.

7c23705184de127f5a112bc5b99ac50a71b71d5e authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: bump minimum version to 1.3

Vulkan devices that only support version 1.1 also don't support timeline
semaphores, so there's ...

cfd87b21f18e52729296f866369ead486f1ce10f authored over 1 year ago by Niklas Haas <[email protected]>
vulkan: add PL_VK_MIN_VERSION

To reduce the number of places in the code that need to be changed to
support new Vulkan version...

8d1ecb69429e7d93ead7045244b95f580fc1ef47 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: always initialize all queues

To improve compatibility with other users of this VkDevice (notably
FFmpeg), we need to create e...

cedacbfbc96c2dbc9ccba0cda8b2392d618d1fc0 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/utils: parse extension promotion data from vk.xml

Instead of hard-coding this information.

34a4a9ae3d8b03b1d35420df72410f37854afab2 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: work around spec bug in VUID

Fixes: https://github.com/KhronosGroup/Vulkan-Docs/issues/2109

47a0189e5acd9e2b65493d5a9789ef5f0b353140 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/tex: pass correct DRM format modifier to fmt check

This call was currently hard-coded to pass shared_mem.drm_format_mod,
which is undefined behavio...

3b5190760eb135aed7cdb74fc8d69ba6d93079f0 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/malloc: use dynamic maximum page size

Solves issue of frequent unnecessary memory allocations when allocating
large textures (above 64...

51584f4afd9a9c43fc2d1fe8e54ba4ab401cf2ae authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/malloc: print allocation source

To better understand why memory is being allocated.

ae154b4566420507f6821e423450840c8a35bcb9 authored over 1 year ago by Niklas Haas <[email protected]>
gpu: log source of pl_tex_recreate

To understand more easily why a texture is being recreated frequently,
when it happens.

0e4834ac27c3fd7afb2f6a42ec6b64fd3bbd1929 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/command: filter out redundant access flags

We never need to include reads in the source access scope. Should be
functionally identical, sin...

8ec7af1313b8f09b11869f6ced5cc34dbe380412 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/buf: drop redundant host barriers

These are implied by vkQueueSubmit and do not need to be included
separately. Additionally, read...

7b9e9c4523abf2001902be56f20485d588bd5206 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/command: fix transitive image barrier dependencies

If the semaphore wait happens at a given stage, the image barrier needs
to be at a logically lat...

c6662474574736c6a1bd1cf3e4c7c857e6586240 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: clean up queue lock mutexes

These were forgotten to be destroyed.

a98fed58ae11645af57406ee2198f4e3a0eb1105 authored over 1 year ago by Niklas Haas <[email protected]>
vulkan/context: init queue locks for all queues

Not just enabled queues. Makes this code more robust / future-proof. As
an aside, also keep trac...

bf528aee496a18fe5eee328b747d2f8980b21f3f authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: remove unused function

030952493fdcb6e4e3b8af5abe13b0bdf45ac1db authored over 1 year ago by Niklas Haas <[email protected]>
gamut_mapping: speed up ingamut() slightly

Early exit on colors outside of legal LMS range. Very slight speedup
(~10%).

216d2f960835cdce31de2469351cdc22917cda36 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: clamp maximum luminance to legal range

Otherwise, dragging down this slider causes it to reset due to being
stripped as invalid.

8a9c90b2d79bb773e6570a2a6f1cdf3023d6d0a2 authored over 1 year ago by Niklas Haas <[email protected]>
colorspace: allow wider range of HDR metadata

100.0 is quite restrictive, allow going down to 50.0 at the very least.

f69072f3b22eeac5d93a84e522fcd0c85ea76512 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/icc: detect v4 perceptual intent black point

After this commit we'll no longer fail on ICCv4 profiles that have a
black point tag present for...

5f44a16fb2ebf2e1893b847429dabf5595fed730 authored over 1 year ago by Leo Izen <[email protected]>
demos/plplay: make LUT visualization rectangular

To keep the scale at least somewhat consistent across samples, and make
it more easy to reason a...

6c61910dafd32f2687b7e93d23bea6311d7d23cf authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: rename tone map shader object

Since it's now used for more than just tone mapping, it deserves a
better name.

0edc6de6c335c380c2f556183cec53b96273d469 authored over 1 year ago by Niklas Haas <[email protected]>
tests/gpu_tests: drop redundant tests

No longer functional.

38c17319a8a41c90d88bd1320479c3408a993643 authored over 1 year ago by Niklas Haas <[email protected]>
demos/plplay: update for new gamut mapping API

081ba78d9269350de36c4b593baa970155f310b7 authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: drop default LUT size to 256

This is still more than enough in PQ space, especially with linear
interpolation. Honestly, we c...

20c9bade51f30d385f01af8f6000670f64afe9cc authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: add 3DLUT visualization code

Immensely useful in debugging/developing this crap.

2d6a1c86d21d33799976e5c2d3c7bd63fa3710dd authored over 1 year ago by Niklas Haas <[email protected]>
shaders/colorspace: complete refactor of tone mapping pipeline

This refactors the code to take advantage of the new gamut mapping API.
In the process, it has a...

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