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

demos: add results from nvidia systems

Thanks to those who tested (@sfan5, Fruit)

ebe98cb6eab026390fb7eb90890b4a1a9ec1293c authored about 6 years ago by Niklas Haas <[email protected]>
demos: boost FPS by flushing after each work item

While this doesn't help much (and actively hurts) for mostly linear
loads like the swapchain ren...

082e7733a6b79441d91cdfac503e741bcba15ae3 authored about 6 years ago by Niklas Haas <[email protected]>
demos: more misc improvements

Clean up some of the old/redundant size calculations, move the actual
work out to its own functi...

457e1fefb7b11ca2a229183fe9c4e3f33b3d3793 authored about 6 years ago by Niklas Haas <[email protected]>
demos: minor enhancements

Be a bit less wasteful on the VRAM (especially the valuable DMA visible
region), and also warn o...

b92692444c96120cf7a8917b5eec49b3ccc3efcd authored about 6 years ago by Niklas Haas <[email protected]>
demos: fix typo in comment

Meh.

a20b59189f3b05d56358c1dd87d2859e1c5d341b authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix render pass layout for newly created FBOs

This is actually a disturbingly common case, since most of the time the
pass will be created whe...

fc7600b92631a13bae1e48e9305877f2ebee7f21 authored about 6 years ago by Niklas Haas <[email protected]>
demos: add a benchmark/proof of concept to video-filtering.c

This doesn't really serve to do anything particularly useful, but it
demonstrates that the API c...

8d6b6e2af15efe3aec0d90992745cc9f916870bb authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix stall if buf_poll timeout is never > 0

The "optimization" in 223aa09 removed a "needless" flush that was very
much needed if the user s...

420df576b2de1b86fb54234f418df86403183a4d authored about 6 years ago by Niklas Haas <[email protected]>
demos: some misc video-filtering.c fixes

A bit/byte confusion in the stride calculation, also UNORM != UINT (we
want the former). For deb...

6a6121f5cf65aaeeeccf797e68a5b320b4ad5a20 authored about 6 years ago by Niklas Haas <[email protected]>
dispatch: don't re-use passes for different texture formats

If an identical shader is dispatched on a different type of texture
format, we *must* recreate t...

fa9df7de1cf6d4670049f365085725501aa89309 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: fix outdated documentation

This was refactored a long time ago.

29f6ec7a97ee0d91772f7c3549649295475c3e04 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: relax target_dummy compatibility checks

This is actually pointless. We only need the format to be identical,
since that's what's require...

081ee214ed8ce35565e719c69adc34cc72f3abc1 authored about 6 years ago by Niklas Haas <[email protected]>
meson: exclude external libs on supported platforms

This prevents e.g. leaking glslang symbols, which is the main reason we
switched to the linker s...

c33afe782261d6bda9739633559da0f70336ac6a authored about 6 years ago by Niklas Haas <[email protected]>
Revert "meson: use a linker script for symbol visibility"

This reverts commit 6835ae5d2ffb5e8a5257992e0a606d9209721e66.

6e668b4052d43d13813d6048d94fd76298e736b1 authored about 6 years ago by Niklas Haas <[email protected]>
Revert "common: switch to explicit includes"

This reverts commit b6104e121006290f146177e1847ccd7826d2b6f6.

d7c3c98fcb4471bd25eb2c462ddfb0e5ee1a0609 authored about 6 years ago by Niklas Haas <[email protected]>
demos: add new extensive video filtering demo

This outlines multiple possible API styles from "simple and naive" all
the way to a complicated ...

2ee1e9a4c9051c390d41bf9f47196b01bc4cd8df authored about 6 years ago by Niklas Haas <[email protected]>
gpu: add pl_buf_recreate helper

This behaves like pl_tex_recreate, and will resize the buffer only if
strictly needed.

963bd21c81d754a81eaf3d9808675134c5c0b311 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: make pl_tex_recreate public

No idea why this was not the case before. It's super useful.

92fcaf4f32c2580e0fdacd4f60ac778bf08a0f26 authored about 6 years ago by Niklas Haas <[email protected]>
utils/upload: make `out_plane` optional

There's no real reason this needs to be used. Users would do just fine
without it, if they don't...

89196b355d8df8fc41aa7424149dce517d193795 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: re-use pl_buf_params helper internally

Not only was this redundent, the old helper was also incomplete (missing
`format`) and too aggre...

7ef0ab0d5b3cfb26b5a6ea86496a8cb659875c04 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: fix typo in warning

38af79bbda3b630f95676fe9e44ac0a47431cb4a authored about 6 years ago by Niklas Haas <[email protected]>
tests: benchmark improvements

- Use the new pl_gpu_finish instead of depending on pl_buf_poll to
force GPU execution. This m...

05de8b495e6e35db5c0ca35fdb458993911a8307 authored about 6 years ago by Niklas Haas <[email protected]>
gpu: add pl_gpu_finish

Much like glFinish, this can be useful when you want to force all GPU
work to be completed (for ...

2e742f537d4b388ac34d6fa6c92fb856de6a9a0e authored about 6 years ago by Niklas Haas <[email protected]>
shaders: fix variable collision in sh_prng

In 6875a9c a new variable was added here, which is not namespaced
correctly - leading to a poten...

dea26b01d471f9cebdf8a71664d7509f480af811 authored about 6 years ago by Niklas Haas <[email protected]>
spirv: suppress compiler warning

This can fail to write a null byte under some circumstances, so do the
safe thing and just subtr...

fc26243dd225a5fa5940d26c71f60a38454c9fd1 authored about 6 years ago by Niklas Haas <[email protected]>
vulkan: avoid needless flush in buf_poll

No need to flush if we aren't actually blocked.

While it's unlikely this impacted performance m...

223aa09aeba35536a405bb507209a4ed8ccd246f authored about 6 years ago by Niklas Haas <[email protected]>
README: update old wording

The note to distributors is no longer really relevant, so drop it. Also,
the API is no longer as...

9f6853243b215de97d623a2f4001a9afde1371a2 authored about 6 years ago by Niklas Haas <[email protected]>
common: switch to explicit includes

Since we no longer need the GCC pragma for symbol visibility, there's
also no more reason to hav...

b6104e121006290f146177e1847ccd7826d2b6f6 authored over 6 years ago by Niklas Haas <[email protected]>
meson: use a linker script for symbol visibility

This prevents us from re-exporting e.g. glslang symbols, thereby
properly fixing #42.

6835ae5d2ffb5e8a5257992e0a606d9209721e66 authored over 6 years ago by Niklas Haas <[email protected]>
meson: build C++ with -fvisibility=hidden as well

1484190ce490dbd277cd55b586e1952dd4d1d0d0 authored over 6 years ago by Niklas Haas <[email protected]>
tests: add test cases for std140/std430 packing

To avoid introducing regressions in the future, now that I'm sure it
works as it's supposed to.

de715031efe61d9399b8ad8468364e6798c5a11f authored over 6 years ago by Niklas Haas <[email protected]>
gpu: add clarifying comment on pl_var_layout

e6e7be86e8d7585f8178544a2fc3c4eaca5b336e authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: add VK_NVX_raytracing boilerplate

6c5c652a7a2baeb1fb8be74ca8794ce510b86ac2 authored over 6 years ago by Niklas Haas <[email protected]>
dispatch: fix std140/std430 packing rules

Actually, turns out our rules were wrong after all: vec3 only consumes 3
words even though it's ...

e6a3f6f06fa62bd8eeb542ae82f34666f6b1c05e authored over 6 years ago by Niklas Haas <[email protected]>
dispatch: use explicit offsets for push constants

In the distant past this was a compile error, but it seems that has been
fixed in glslang etc.

...

792a21f9027af1d529d44b3a463c2b90ab38b451 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: fix compilation on clang

Clang doesn't like using sqrt in a constexpr, so just hard-code the
constant. Whatever.

693b346e2a10d7e33104da8e00173c9224cc94d6 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: improve the seeding

Seeding by gl_FragCoord was very bad since the PRNG seed generation
performs horribly for large ...

6875a9c833f93bf803ca35a5115c2116e91e61d5 authored over 6 years ago by Niklas Haas <[email protected]>
glslang: update for new glslang version

This adds some new members to this struct. I still have zero clue why
they don't provide this st...

5278a77eacb35559b65aca656c060b42c1fe5926 authored over 6 years ago by Niklas Haas <[email protected]>
meson: require version 0.47

Type 'feature' for get_option was introduced in meson 0.47, so require
it.

2345f60b9350c1ff5d64a682bbd0144cbf7f92f9 authored over 6 years ago by Sebastian Ramacher <[email protected]>
vulkan: treat empty device name like NULL

Right now, an empty device name would reject all devices except one
that's literally empty. This...

17ded744c2459294fc900a4309645b90f0296fc8 authored over 6 years ago by Niklas Haas <[email protected]>
travis: avoid meson 0.48.0

This breaks the test suite

cf. mesonbuild/meson#4248

cc394dd0aa0f72ab530164150e70e8c4b3f56d3a authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: document the ability to "counteract" color blindness

This is very limited but it can work to a degree.

c31666b1ac5efa75dd85795469f1ec20b6c059ba authored over 6 years ago by Niklas Haas <[email protected]>
meson: update version

352da3c7c0a3f45fe795dd96b04a72e80e368d06 authored over 6 years ago by Niklas Haas <[email protected]>
dispatch: rework the shader identification mechanism

Rather than having the uint8_t be public, which makes little sense with
no public way to merge s...

5cbcbcec984c3e01f20cca6557022c84122d99e2 authored over 6 years ago by Niklas Haas <[email protected]>
renderer: add comment on pl_image lifetime

8649604a5b2ac36d0d82cdafafbcc8c950a0e9dd authored over 6 years ago by Niklas Haas <[email protected]>
renderer: don't automatically use bicubic for built-in scaling

Using bicubic is actually a bad idea in the general case since it's not
only significantly slowe...

7d764b0e841b72f4d2660a7688bc362f9a01f1a6 authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: fix the config.h include path

Using an absolute path here breaks during building.

76aeb6263aecb8c5f7a9fafb553c71db46b2f87b authored over 6 years ago by Niklas Haas <[email protected]>
renderer: expose cone parameters

This allows simulating color blindness in the renderer as well.

16bc01a7d51d00746d7be89744821963d8712593 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: allow a tiny bit of slop in the tone mapping cutoff

ffe52281ec0d6cc78cb6483d7d40dc0bf87e2aba authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: add LMS-based color blindness models

These can be used to simulate various common / less common forms of
color blindness.

1f457583deec2d0078fd7231138604c213168383 authored over 6 years ago by Niklas Haas <[email protected]>
shaders/colorspace: make gamut warning work again

In 7aa14ac3 we made the tone mapping code hard-clip the output color
before passing it on down t...

3ebe44ded17a53ee6c869795b7a6f04939f4d3fc authored over 6 years ago by Niklas Haas <[email protected]>
shaders/colorspace: correctly disable peak detection if set to 0

The documentation claims that 0 disables this behavior, and that's also
the expected/correct beh...

93183dfe84e3f2bc07c59d8ad118cf61dad9952b authored over 6 years ago by Niklas Haas <[email protected]>
meson: switch to using feature options

Annoyingly, this requires using =enabled/disabled instead of
=true/false, but it's less boilerpl...

cc03351abb2fd9373311555f6b2531cd0ab72208 authored over 6 years ago by Niklas Haas <[email protected]>
meson: use terser syntax for dict access

Just noticed this also works

696f8bab4df79a37b8807f0c14cd77e8dd7b54bb authored over 6 years ago by Niklas Haas <[email protected]>
meson: switch to dict objects

No more hacky arrays needed, wooh!

5708e91e2a1c49f41f41494f306c01a42042eac8 authored over 6 years ago by Niklas Haas <[email protected]>
meson: adjust C/C++ opts

Some of these are C-exclusive

8ae325291c4d426867831b821128d8052045659c authored over 6 years ago by Niklas Haas <[email protected]>
meson: cosmetic changes

790e18061f6a6ef02046140be738b03a1c22b29c authored over 6 years ago by Niklas Haas <[email protected]>
meson: use std=c++11 for glsl/glslang.cc

Since glslang cxx headers need it.

7f8a3aae705605415ef86d318e03905002b5837b authored over 6 years ago by Thomas Guillem <[email protected]>
vulkan: handle VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR

5939db04250e8961643dcf81d4cc70a7ee9599f7 authored over 6 years ago by Thomas Guillem <[email protected]>
vulkan: guard against VK_EXT_swapchain_colorspace

This *should* fix #39.

260d82c39991d58ac91a0d69c3f4acf60d6c46ba authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: fix colorspace selection with user-specified format

This code path was using the wrong struct member.

aece873353256aee6fd838b5937bab698341a69b authored over 6 years ago by Niklas Haas <[email protected]>
meson: cosmetic change

Makes the logic slightly more readable IMHO. YMMV

7145f2f0c55954f9a554320a73d4a5b2376bec2a authored over 6 years ago by Niklas Haas <[email protected]>
renderer: fix reference to out-of-scope struct

`fixed` goes out of scope, but `src` is still used later in the
function.

Closes #38

81679a8d26ca751f484bb116b7a291ae1fe64d93 authored over 6 years ago by Niklas Haas <[email protected]>
meson: add some sanity checks for the configuration

Make sure users know they're about to do something that might not be
what they want.

0bf60f194094a4982b2aa60b6d4c9642e39054b3 authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: #error in vulkan.h if built without vulkan

This prevents potentially confusing linking errors for functions that
can't even exist.

f42bc8469a4406f011dc8736a7a9467b6fa20672 authored over 6 years ago by Niklas Haas <[email protected]>
README: add note on dependencies

46edcbc6241a91105a3aea5ada50fb4c2a95c637 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: explicitly default pl_dither_params.lut_size

This was left as a default of 0, but we can/should set it to 6 as
indicated by the comment / int...

5af68d4a9793a288844a60d0abb459ecee7af63d authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: clarify comment on pl_color_adjustment.hue

This is used as a parameter to cos/sin, and is therefore specified in
radians.

1ae1b4450a1baa54f94388b5ee2709f2431535aa authored over 6 years ago by Niklas Haas <[email protected]>
meson: improve glslang version detection

Instead of testing if something compiles, we can use cxx.get_define(),
which is a slightly clean...

1175138e3a50f22da9e5870e5539a90932efd46f authored over 6 years ago by Niklas Haas <[email protected]>
spirv: add support for glslang

We can now use glslang directly instead of relying on libshaderc for
everything. This requires a...

654a6d3fb2895038f3620474af6b61c342a08fbc authored over 6 years ago by Niklas Haas <[email protected]>
spirv: get rid of locale hacks

This was fixed upstream in https://github.com/KhronosGroup/glslang/pull/1385

4d43189e55ccbdcc1edc95984aa08ed7e66bf041 authored over 6 years ago by Niklas Haas <[email protected]>
meson: update version

b94421ac05e00657a90f6f44f61132a03abb26ed authored over 6 years ago by Niklas Haas <[email protected]>
renderer: force caching to intermediate FBO on non-computable targets

This fixes an issue where you can't directly do texture storage on
swapchain images on some vulk...

c8bd58761ad43a75c29af423afaa28af6fc08a0f authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: support VK_EXT_swapchain_colorspace

Partially addresses #11.

Still needs testing on any suitable platform. scRGB support would also...

6314864bfa447479832331c7837d904dfb911958 authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: don't confuse DCI-P3 and Display-P3

Make these separate color spaces, with DCI-P3 mapping to actual DCI P3
by default.

0689deea5f6dcc3dbf2dd7deb43dc96672bec1cf authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: fix segfault when using multiple extensions

This was broken in 316bfbc

8bab1622a7a72e0a04dd17c9405479fc2dea5e37 authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: add external VkImage interop API

This is essentially the same interface that's used between pl_gpu and
the vulkan swapchain imple...

e101617956463762e0078518f9bef4dacf29d583 authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: allow enabling optional instance/device extensions

This is needed so that eventual users will be able to load e.g. dmabuf
interop extensions.

316bfbc74a7f217d1f6e85693c59a17363b59f88 authored over 6 years ago by Niklas Haas <[email protected]>
gpu: switch from char* to uint8_t* for buffer data

Seems like the more common/sane choice

43781df52ac9d92c8fc7e637e8e4cdbae7025e7b authored over 6 years ago by Niklas Haas <[email protected]>
utils: make the upload helpers work with buffers too

6323302799bfd24125187da0e8c80c5adb27abaa authored over 6 years ago by Niklas Haas <[email protected]>
spirv: switch to optimization level performance

Upstream has this in the meantime. It didn't really make a difference
for me except for the pola...

bcb73f3ae243f515d5c60b5d72db5e386987ef8e authored over 6 years ago by Niklas Haas <[email protected]>
meson: fix lcms2 dependency

This was supposed to be dependency(), not cc.find_library().

0dee5e2560f874bb706ec14d99be9a911f0947e3 authored over 6 years ago by Niklas Haas <[email protected]>
renderer: cosmetic fixes

Suppress a warning, improve the readability of the comments

6897ebe1dc49bcba9db4897492cf3de954c7e931 authored over 6 years ago by Niklas Haas <[email protected]>
gpu: cosmetic fix (whitespace)

a37af73855d0fcf445c587fcc36be963656059ae authored over 6 years ago by Niklas Haas <[email protected]>
demos/sdl2: add support for ICC profiles

For testing purposes

ed05dfdeadc8bc6b54a9b0142b3b47e80146a67b authored over 6 years ago by Niklas Haas <[email protected]>
tests: test 3DLUT generation/application

Doesn't really test whether the result is correct, though - just whether
or not it succeeds at all.

6f6eb1c519fb660d1d591c5b35889f8c0c0fd170 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: add support for ICC profiles and 3DLUTs

Code taken from mpv, with some modifications. The shader stuff is from
scratch, but lcms.c draws...

eb14d3bdf22605263a9b6025ed6280eb1515a89a authored over 6 years ago by Niklas Haas <[email protected]>
renderer: implement support for ICC profiles / 3DLUTs

Closes #23

c630e1541dd817065a6cedf07bac7f2da2037830 authored over 6 years ago by Niklas Haas <[email protected]>
shaders: correctly compute the texture limits for 2D/3D textures

This was based on the total size rather than the size per dimension, but
compared against the li...

cdfceb1a90effed32a862e73a7ebc402f6fc7dbf authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: use pointers for pl_color_space_equal

For consistency with the other functions.

c48bb659441e4eef07ce3cbf3bc28938552a66d2 authored over 6 years ago by Niklas Haas <[email protected]>
spirv: assert the existence of bytes

Just in case..

also includes a cosmetic change

d27ed954a417d6bced2c328e10a5fccda102fcdf authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: allow shaders with no descriptors

These seem like pathologically useless anti-shaders, but it's not
difficult for us to not crash ...

88acf5e99436741f9d6f067a84ee5a0694adb5da authored over 6 years ago by Niklas Haas <[email protected]>
shaders: desaturate after brightness adjustment

On very bright sources, desaturating before a big slope adjustment can
lead to the entire image ...

d23f15c1c9fb22dbbea439c7443aa989523dedca authored over 6 years ago by Niklas Haas <[email protected]>
colorspace: infer the reference HLG peak, not the nominal peak

Also clarify the meaning of `pl_color_transfer_nominal_peak` and its
relation to scene/display-r...

4d27d25bddd0f6bf0adbbfcb260dffffcd00416a authored over 6 years ago by Niklas Haas <[email protected]>
tests/bench: measure wall time instead of clock()

This solves an issue where the numbers were way off for AMDVLK.

84b908bfc203019543de84a8f95631309b39f36e authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: correctly align texture transfer buffer offsets

These need to be aligned to the texel size as well, rather than just
being a multiple of 4. Docu...

94e0ba67721ed2dc3100d1d69e30f53dffd52ccb authored over 6 years ago by Niklas Haas <[email protected]>
vulkan: only enable push descriptors when supported

There was a corner case in the existing code when the
max_push_descriptors count was set to 0, w...

c485a780de3c3e8e8715865c5588ec89805518b3 authored over 6 years ago by Niklas Haas <[email protected]>
renderer: update the WIP documentation for temporal frame mixing

38393cf0dd630b205c33cc5a1152b62682ad7180 authored over 6 years ago by Niklas Haas <[email protected]>
renderer: correctly disable linearization

If the FBO format does not have the required bit depths.

9279d5c5c2324dfa5c535f1889a44806b6d3101d authored over 6 years ago by Niklas Haas <[email protected]>
shaders: fix comment

The other way made no sense anyway, but best avoid confusion.

b85016170c1e98236965af8077e0dcbb70e9fde6 authored over 6 years ago by Niklas Haas <[email protected]>