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

talloc: add assertion to make clang scan-build happy

It doesn't understand that TARRAY_GROW never returns NULL, so teach it.

3a663e94c973186684783cd0193aba6862d67f36 authored about 6 years ago by Niklas Haas <[email protected]>
lcms: assert s_r, s_g, s_b > 1

Turns out clang was right in warnung us about the possible division by
zero: we only asserted > ...

f3b3251b1c100ee2c9b545c6f1f5142df72be2ad authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: respect minImageTransferGranularity

We previously just ignored this, even when the transfer queue required
it. I have no idea how I ...

9ba4799b1c23c016b52234d7db72e20b8931765a authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: correctly align vkCmdUpdateBuffer's dstSize

This must be a multiple of 4, however our API does not require this
(rightfully so). So just cop...

ebeb2d66411b7f830feafdeebf452d8b189fdd1e authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: add missing KHR suffix

Needed for compatibility with older vulkan versions

5e2a0fb727d06398d123a757481a71c10f74aafc authored about 6 years ago by Niklas Haas <[email protected]>
gpu: relax the buf_offset % 4 requirement for pl_tex_transfer

This limitation was causing issues with a very real use case: uploading
cropped texture data fro...

63405c09897e44dcd39de3ed8400fc5f88779428 authored about 6 years ago by Niklas Haas <[email protected]>
malloc: cosmetic

68b02d38587bc22e33f70e496991e4c058f7647d authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: use VkExternalMemory[Buffer|Image]CreateInfo

We have confirmed that these structs need to be used when creating an
image or buffer that will ...

20bddcc1227cc5608f760a1fc81f9b6126f1c59a authored about 6 years ago by Philip Langdale <[email protected]>
shaderc: don't accept shaderc.a

Upstream has decided against renaming shaderc_shared.so to shaderc.so,
so right now this only fi...

fcab9199ebe9203c49d104068a8361aa99899bdb authored about 6 years ago by Niklas Haas <[email protected]>
meson: only search for glslang if shaderc unavailable

This skips glslang by default if it's set to 'auto' when shaderc is also
found. (However, we sti...

b9e4ffa222829fd0a256530980a42ba1f99f1c6d authored about 6 years ago by Niklas Haas <[email protected]>
gpu: document pl_tex_export image layout semantics

I had previously assumed that _GENERAL was the only possible layout for
external API interop, bu...

eb29b8af9bb550e6d50e19cb45b2c07b79c1f073 authored about 6 years ago by Niklas Haas <[email protected]>
context: improve meta-documentation

This should hopefully make it slightly clearer how libplacebo expects
users to interact with its...

b54af220992b2d318518e046631f54bfc2ad5b33 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: improve documentation surrounding shared resources

Make it clear that the contents of the memory are not useful while the
objects are not exported....

5a531fccdd112d33c7a962baee9f65902fae77d5 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: cosmetic

d85306620fdb4f34b052c4754c21e6164b6c7536 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: expose the device UUID for interop purposes

The exported memory/sync handles don't really make sense if we don't
expose the device UUID they...

f972c4fd2c5d54729acb09105da5e2673dd2746e authored about 6 years ago by Niklas Haas <[email protected]>
gpu: add friendly names for std140/std430 layout

These should make the intent more clear and reduce the risk of
confusion.

d395137108a2cc1985e8f02557f89f6e577e2cba authored about 6 years ago by Niklas Haas <[email protected]>
Revert "swapchain: improve latency consistency and documentation"

This reverts commit 52c21bbc3e3c109457cfe26dfc4c016a0e542523.

863af4296ebab8d881fa1a3b252ce9a2afcbd107 authored about 6 years ago by Niklas Haas <[email protected]>
Revert "vulkan: make sure created swapchains actually work"

This reverts commit adab9b76e7fff029712d71326eb6224f2d77f7b5.

4d36fc4471180f1af585269b27df09cdbd03c1c9 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix mem leak for dedicated slabs

Forgot to actually mark them as dedicated, which led to them never
getting cleaned up.

ba78abdcddc71c0a99b2a263721e924547506476 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix double free when swapchain creation fails

0a6a5d87a5bb25bd9ff6f8816f65fae5b695d6e5 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: make sure created swapchains actually work

We already have logic to pre-cache swapchain frames, so it's trivial for
us to fetch the first s...

adab9b76e7fff029712d71326eb6224f2d77f7b5 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: add test case for pl_sync

Just use some dirty hacks to signal the VkSemaphore, for lack of any
actual external API usage h...

95d826f594af35599fd58ddb3bacf78adfc4fa13 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: implement pl_sync

These must eventually be ref-counted once we start using them to
synchronize access to actual GP...

2f5a19dce8d8481297ddac59ed3d389e3cb9ce62 authored about 6 years ago by Philip Langdale <[email protected]>
gpu: add pl_sync (a semaphore pair)

This change introduces the generic definition of an exported semaphore
pair. Such a pair can be ...

b0fddcc5010f64727c1e65e6135ad1454bb118cf authored about 6 years ago by Philip Langdale <[email protected]>
gpu: add pl_tex_export, replacing pl_vulkan_hold_external

This is similar to the old vulkan hold/release_external but more
generalized and more powerful. ...

5d2be6e5999ad71a48a4e36ac05dcf4ee9b6c934 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: don't error when creating useless images

Edge case that can arise in the test suite.

04331ebedc71cabae76f3d7d566b12451015e2d7 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: refactor shared memory handle API

When we introduce exportable semaphores, we'll have handles which are
not memory-backed. To avoi...

5198e1564c5f2900b7b1f98561b6323d27bd78bb authored about 6 years ago by Philip Langdale <[email protected]>
gpu: assert texture ext_handles are supported by gpu caps

I missed this assertion when I added support for exportable textures.

a07caf544b7090489ca80260342887e127e601c2 authored about 6 years ago by Philip Langdale <[email protected]>
vulkan: avoid another risky PL_ALIGN2

Forgot this one in the previous commit.

76b707ffe3d9f4fdad5aaee474bd73b58a1b174c authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: avoid risky/wrong alignment macro

I'm not 100% sure that this is guaranteed to be a power of two - and
even if it is currently, it...

e9eb74d7334ce39d8b56aa2f085806fd93935389 authored about 6 years ago by Niklas Haas <[email protected]>
swapchain: improve latency consistency and documentation

This mirrors a similar change in mpv, which helped reduce vsync jitter
measurements by including...

52c21bbc3e3c109457cfe26dfc4c016a0e542523 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix over-read when updating vertex data

The vertex buffer might be larger than the amount of vertex information
we're actually rendering...

a588a3e70c6f5e50ec28f513e731d3c1e9e0e20e authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: Implement exporting of textures

This is analogous to the existing functionality for buffers. A
texture may be created, requestin...

9d0067c42c4fdd418bb4ee974562f6584bb0ce15 authored about 6 years ago by Philip Langdale <[email protected]>
vulkan: cosmetic

ra -> gpu

5b28072a2e79e748ae942f441b351c2e2e176bfe authored about 6 years ago by Niklas Haas <[email protected]>
gpu: move pl_buffer_var from gpu.h to shaders.h

This makes no real sense in gpu.h, since the pl_gpu doesn't actually
need this information in an...

573cf43cdff9adceb9be713e42afc72ab846bd8c authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: cosmetic

No reason to have the space inside the string.

a0781c25a85fe0193ca51a5189ecf6fb831b3931 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: fix typo

7a80dfd46a906e232104810263eb8ae976c990ea authored about 6 years ago by Niklas Haas <[email protected]>
gpu: drop the dynamic ubo/ssbo/pushc layouts

Ever since SPIRV-Cross has started emulating std140 layout when
cross-compiling SPIR-V to D3D11,...

51379b3f6a2fd5bbe7523872da0e0133ec3d305c authored about 6 years ago by Niklas Haas <[email protected]>
demo/video-filtering: cosmetic and fix some warnings

37a47146c4634c0cbe8571528962826c154b6da2 authored about 6 years ago by Zhao Zhili <[email protected]>
context: fix a typo in comments

2489434b4f48fcd7b3ccaba937c11052af6c2292 authored about 6 years ago by Zhao Zhili <[email protected]>
demo/video-filtering: improve function declaration

7251c9bef48b070f96006242f2a1bd277743ef79 authored about 6 years ago by Zhao Zhili <[email protected]>
demo/video-filtering: fix check of pl_dispatch_create return value

41771d7bd84048f3bbb54e5b2eec71f053e42c7c authored about 6 years ago by Zhao Zhili <[email protected]>
vulkan: drop pointless boilerplate from utils.c

Rather than editing this every time there's a new extension, it's
probably saner in the long run...

16fe701cb7330e45a38e119d0e9078d3b2d764fb authored about 6 years ago by Niklas Haas <[email protected]>
spirv: compat for older shaderc versions

Since there's no better way to check for the existence of this value
other than by literally pro...

a7674a994c7ca54338ac7463e7361cb584cd5d4f authored about 6 years ago by Niklas Haas <[email protected]>
shaders/av1: naming consistency

Rename subX/Y to sub_x/y for consistency

96e0dad14de19096cddad814e7ad0853590c9963 authored about 6 years ago by Niklas Haas <[email protected]>
shaders/av1: fix 4:4:4 chroma grain

The code as written always used the subsampled weights for chroma, even
if the actual chroma pla...

b88670d309331fcb0517d2aef7cd59aa946b0f3c authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: use the correct pipeline stage for ownership transfers

While the access mask is ignored for a queue family ownership transfer,
the pipeline stage is no...

fe48991b18f3ad15ccbfa45e67c5566f2a595e85 authored about 6 years ago by Niklas Haas <[email protected]>
demos: fix return type of main

6fc7b376d89ec0af2eb9e59861d17ad7e6184ab5 authored about 6 years ago by Zhao Zhili <[email protected]>
swapchain: whitespace

5bff31f610eb8c1141d6c3f109a2288417e21aaa authored about 6 years ago by Niklas Haas <[email protected]>
meson: link glslang against pthread where needed

See the justification in the comments. Works around build issues on some
platforms. Not the clea...

a7d2fc51cca339ca2f1a9ed1b35a4e822e027b06 authored about 6 years ago by Niklas Haas <[email protected]>
demos/video-filtering: make API 2 actually *use* DR

Oops.

That brings back down the CPU usage of the API2 demo to basically zero.
Doesn't change th...

365eb1bb498ad84e64d41c9b4f02986996398196 authored about 6 years ago by Niklas Haas <[email protected]>
README: drop WIP-warnings

The renderer no longer has any abort() code paths, and the API version
indicator is now stable o...

126e4d4400a1befda52fbb9eecdab868c13426d6 authored about 6 years ago by Niklas Haas <[email protected]>
meson: bump version

cde743b0862e1e671f4f6a2fcfe6de9f0b0477d8 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: make destroying exported buffers UB

The underlying device memory may get reused by libplacebo, thus
invalidating the contents of any...

39024bf8605dce3e891ad941c638b57fe2fa296d authored about 6 years ago by Niklas Haas <[email protected]>
demos: remove needless if

dae5e132601ddcfb54c9a2bf57b16280f6d0c08a authored about 6 years ago by Niklas Haas <[email protected]>
colorspace: cosmetic

957dc5e4fd54a53297059bd9c7f0aa000eb9ff5d authored about 6 years ago by Niklas Haas <[email protected]>
colorspace: fix typo in ICtCp matrix

Now it actually works correctly for the Cp channel

3d2cdb66ed45346f00e2d215b4b12de35d1051a3 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: log enabled instance extensions

For debugging purposes

3de531b93677b0218a00fea709b4bfdcf90807d5 authored about 6 years ago by Niklas Haas <[email protected]>
shaders/colorspace: suppress compiler warning

But add an extra assert to make sure we catch bugs due to forgetting to
add other non-linear col...

0ec9bdf7a27fb41f27375d2e2e87ee8440f02a27 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: add helper function to unwrap an internal pl_tex

This may be useful in cases where users need access to a shared VkImage
but don't want to bother...

d777666cefe804ee1e51f0abede22be066527a23 authored about 6 years ago by Niklas Haas <[email protected]>
tests: simplify vulkan test API usage

With the new instance_params field, we no longer need to separate the
`pl_vk_inst`.

ef2db8cbed56b6582e4a2dce789349ef98777c2b authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: allow specifying pl_vk_inst_params directly

Especially in the offline processing case (where no separate VkSurface
needs to be created), hav...

3b29944bba7cccd95a523306ba8d6353c53f2e7a authored about 6 years ago by Niklas Haas <[email protected]>
ebuild: delete

Replaced by a better one upstream.

Closes #48.

1898e70d0c19d7647b85b41ff2de32148ce03952 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: normalize dst rect in vk_tex_blit

93dba2985a48b7ebc878c9924023c51d1cfd4db3 authored about 6 years ago by Marvin Scholz <[email protected]>
vulkan: fix destination offsets in vk_tex_blit

6f59959470eae1fbf2a50e99069eacee97f9b3a4 authored about 6 years ago by Marvin Scholz <[email protected]>
colorspace: implement ITU-R BT.2100 ICtCp

This comes in two variants, PQ and HLG. Normally it should be easy
enough to infer this from the...

6ac38d63be4977aa6fa0cbc2ab4154b2410d12c5 authored about 6 years ago by Niklas Haas <[email protected]>
colorspace: clarify/correct comment on pl_shader_linearize

This claims to implement the EOTF, but for HLG it omits the OOTF - so we
should clearly mark it ...

e6cb8d009fb1422e77fa713c69ef9f804fe9b71d authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: fix issue with shader caches containing multiple entries

A stray "break" (left over from a previous iteration of the code) caused
the code for finding a ...

f1fde7e7e632beca2ed0cc143e3cd26cc9658b77 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: rewrite buffer memory placement logic

Explicitly defaulting the buffer type was also not the right thing,
since it e.g. conflicted wit...

3ef1cfc28a6f47af50d7349aee555ffc10f6beef authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: explicitly default PL_BUF_MEM_AUTO

The previous behavior assumed that the ordering in the vulkan driver's
memory types would be ord...

3a0371f14299f451a612f59347fc411db6fcc9ec authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: conform to vkCmdUpdateBuffer limits

This is statically limited to 64 kB by the spec, so enforce these limits
by requiring host-mappe...

52615be58e587d6172c7883946ce3919d30f90b1 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: have pl_tex_recreate invalidate re-used textures

Since pl_tex_recreate already explicitly invalidates the contents of the
texture (due to the pos...

745b3c59784c266aa7ee2d61129fdff1f0ba6853 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: make tex_invalidate optional for implementations

There's really no need to require this

cda582eee060c2a2c562120b60bdc52a1eadb983 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: allow influencing buffer memory allocation

Since users may want to allocate texture transfer buffers in GPU memory
for the purposes of uplo...

f3961441aa27767fa89c4eb9abc2c5bbedb81e8a authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: implement PL_HANDLE_FD

We create the fd when allocating the memory, since we only need one to
represent the entire allo...

bbc5a3602549f39739a9ae1766297a6db8f32d45 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: add support for exportable buffers

This is useful to share memory with e.g. CUDA or other external APIs.

Closes #43

7b2b5980543201ca9d9e5815d48079d5b6d15ef2 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix incompatible pointer conversion on LP32

Handles are uint64_t on LP32, cf. VK_DEFINE_NON_DISPATCHABLE_HANDLE.

03681e791a39fddf7ac376e9441c7d18311c693d authored about 6 years ago by Thomas Guillem <[email protected]>
vulkan: fix incompatible function pointer on Android arm32

On Android arm32, VKAPI_PTR is defined to force the "hardfloat" calling
convention.

d0a10008bb2ef4b789d9ead995ee26d1d645a7a2 authored about 6 years ago by Thomas Guillem <[email protected]>
shaders/av1: fix benign pointer type mismatch

This is harmless since we cast it back to the correct type before
actually using it, but it's st...

9207e77b99e02a8335f9a7ed88ea2331171c118e authored about 6 years ago by Niklas Haas <[email protected]>
general: silence clang static analyzer warnings

These are false positives, silenced by some application of assert().

b07a980675bc817d412375e6025b805d1d0c6ef8 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix potential undefined memory read

When using push descriptors these fields were never correctly NULL'd.

5bd993bf3c996c032692e1c4b4c4f51354987298 authored about 6 years ago by Niklas Haas <[email protected]>
av1: fix error when the channel map includes unused components

This is entirely not an error, but the way the code was written it
resulted in an undefined memo...

bcef5a628a8f68599a0a8b687bd5f4d74dc1c7cc authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: fix segfault on pl_dispatch_compute

Introduced by the target format checking. Sometimes `target` is NULL.

eb8be864ba189cc13d874d94aa58e1c94e59b1e2 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: allow pl_vulkan_hold to fail

It doesn't make sense to assume this will execute unconditionally,
especially when so many thing...

1bbb475199b70d2cb5d7b9268eb7dd35670b40fc authored about 6 years ago by Niklas Haas <[email protected]>
gpu: whitespace

7fd9344bba6dccec27d62d6db39dd2c76260d1bd authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: correctly synchronize non-mapped buffer writes

We forgot to add the offset of the vk_memslice into the vk_buf_write
when synchronizing via buf_...

d1b6c26ef27fff9141a7312a36d9ae4d66898a8d authored about 6 years ago by Niklas Haas <[email protected]>
gpu: clarify `pl_buf_recreate` semantics

Also fix a typo (was still saying pl_tex_recreate).

1cf1cc0b519b070e0f239e6e3d721d01877b40ad authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: perform buffer flushes *after* writing to the buffer

Right now, for some reason, when something involves visible writes, we
submit it as part of the ...

18d0d06be2a6f3be1a04618ff453611f7d8ffb6e authored about 6 years ago by Niklas Haas <[email protected]>
gpu: clarify and revise access rules on buffers

Due to the way the comment was formulated, it sounded like multiple
accesses by libplacebo to th...

08a40d8bda30678307cfe4f50f53357e33271034 authored about 6 years ago by Niklas Haas <[email protected]>
shaders: add AV1 film grain shader

This is can be used to apply AV1 film grain onto planes directly on the
GPU. Eventually, the pl_...

1d635def75020a7efeb900f874c9c433e8020c27 authored about 6 years ago by Niklas Haas <[email protected]>
shaders: fix sh_lut consistency

The current code treated SH_LUT_TEXTURE like SH_LUT_LINEAR for no good
reason (which was also wr...

9942ea9297f74050c0cdace7484df5e4484b2253 authored about 6 years ago by Niklas Haas <[email protected]>
shaders: use texelFetch for non-linear sh_lut access

No need to waste GPU time on the SH_LUT macro and texturing here,
texelFetch turns out to be fas...

63b41e18f927a7e935553de0d80d3febcbef388b authored about 6 years ago by Niklas Haas <[email protected]>
gpu: don't force pl_buf_desc_append to write the output layout

Most of the time this layout is not actually needed.

ddb8476c9492fb1c91c32d2d1f81c75c37cfa826 authored about 6 years ago by Niklas Haas <[email protected]>
colorspace: add enum for canonical channel names

These are used in several contexts, so give them better names.

b69f8ef42c45663377299ca93ca25e0dc693a94a authored about 6 years ago by Niklas Haas <[email protected]>
gpu: clarify comment on pl_pass_params

fb16bf097c5ae9887d066eb9e0156e2fcf52e168 authored about 6 years ago by Niklas Haas <[email protected]>
shaders: add a concept of "failed" shaders

A shader may fail due to any number of error conditions (that previously
resulted in just an err...

1247de7bbfdbf7448cde552fced07e9ab7438e99 authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: improve debug messages

Reword an existing error and also add checking for a new error
condition, previously forgotten.

8efe379edc6b84dc9856be1a1488316ace8bfa47 authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: fix broken shader cache for compute shaders

Since fa9df7d the shader cache actually completely broke for compute
shaders, since the tfmt che...

aa021327afc1ddf3e049c4b5a78422866b5ee8b3 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: improve the documentation on pl_gpu_flush

d850082223e5b09d9b61c43c3e38ad8230cbb919 authored about 6 years ago by Niklas Haas <[email protected]>
demos: improve comments

Fix 1050 -> 1050 Ti, also fix typo and some other improvements

cdd4b8c0e373d105b9208490e3f52717b62ef4cf authored about 6 years ago by Niklas Haas <[email protected]>