- Feb 20, 2023
-
-
Niklas Haas authored
Current default is to do various funky types of UB.
-
- Feb 19, 2023
-
-
quietvoid authored
-
Niklas Haas authored
This version of the headers adds support for the vulkansc API, which pulls in a bunch of definitions that we don't care about. To properly exclude these, we need to start blacklisting all types not defined in the vulkan environment. Also leverage this to start blacklisting platform-specific crap in a more principled way. This is probably still not the correct way to do it, but it works for now. Fixes: videolan/libplacebo#249 Fixes: https://github.com/haasn/libplacebo/issues/155
-
quietvoid authored
When the RPU is available, we can infer the brightness metadata for now.
-
quietvoid authored
So that we can use simple Dolby Vision RPU buffers to infer whatever metadata that can be useful. Currently used to extract the dynamic scene brightness to be used for tone mapping. Requires `libplacebo` to be linked against `libdovi` dependency, or no-op.
-
quietvoid authored
-
quietvoid authored
As a helper for adding DOVI metadata to a `pl_frame`.
-
-
This provides feedback about renderer state.
-
-
This allows disabling hooks more selectively instead disabling all as a bulk.
-
-
-
This makes it work nicer with color speace hint and dynamic metadata. - Always show nominal min/max and dynamically update it in hint mode - When toggling color space hint reset primaries to one that makes sense for current swapchain configuration
-
-
-
Compositor may resize window if it doesn't like our requested values. For example if it is bigger than display resolution.
-
-
Kacper Michajłow authored
Cosmetic change to make symbol name more descriptive in binary.
-
Kacper Michajłow authored
-
Niklas Haas authored
Fixes: 790e3c78
-
Kacper Michajłow authored
-
Kacper Michajłow authored
-
- Feb 18, 2023
-
-
Niklas Haas authored
A LUT marked dynamic is *expected* to change frequently, no need to nag PL_LOG_DEBUG about it. Drop verbosity in this case.
-
Niklas Haas authored
Inside vk_buf_barrier, we also need to make host-writes available, even for coherent memory, and even after using FlushMappedMemoryRanges. Also include the host_read dependency for completeness' sake, just to be on the safe side.
-
Niklas Haas authored
This needs to be properly defined as well even after removal of the pragma before global includes. Fixes: 82023b9e
-
Niklas Haas authored
Mostly for stylistic reasons, and to avoid drowning in global header includes as libplacebo grows in size. Will help reduce the amount of time needed to re-compile libplacebo when making changes to any header, although ironically, on my end this commit actually makes a clean compilation *slower*.
-
Niklas Haas authored
Allows us to avoid having to include every header file here.
-
Niklas Haas authored
Simple oversight.
-
- Feb 17, 2023
-
-
Niklas Haas authored
Oops..
-
Niklas Haas authored
To avoid constant recompilations due to mixing between frames of different source brightness (before tone-mapping). This is not a good solution long-term, ideally we should move tone-mapping to happen before frame mixing. But it represents the best compromise currently available to us.
-
Niklas Haas authored
This is designed for SDR<->HDR, so prevent using it for HDR<->HDR out of the box.
-
Niklas Haas authored
This has no inverse curve, so don't default `auto` to it.
-
Niklas Haas authored
Infinitely useful during development, no need to constantly NIH this patch or re-invent it ad-hoc.
-
Niklas Haas authored
Instead of having to replicate this logic at every usage site, the number of which is about to grow.
-
Niklas Haas authored
Tests the fallback path for inverse tone-mapping on functions without inverse tone mapping curves.
-
Niklas Haas authored
Especially for the pure BPC GLSL fallback path
-
Niklas Haas authored
It's not that hard to convert to PQ and back in pure GLSL, so we might as well do that for pure BPC. Produces significantly better results (no clipping) than naive/linear black point stretching.
-
Niklas Haas authored
Always do BPC in PQ space instead of the function's native space, because this produces significantly better results (no black clipping).
-
Niklas Haas authored
The D > T branch had a number of fatal issues. One, the `p / N` calculation was accidentally rounded due to performing integer division. Two, the knee point was picked way too high (0.5 / 0.5). And three, even the basis knee was possibly way too bright due to being implicitly scaled up to the target brightness. Solve all three problems with a combination of approaches: 1. Picking a perceptually linear knee that doesn't explode as D > T 2. Constraining the basis knee to ensure we don't raise brightness 3. Mix towards linear slightly more aggressively to reduce the effects of the basis OOTF on the image appearance as D -> T Meanwhile, the D < T branch resulted in very inconsistent behavior as a result of wild deviations in the basis knee function, and also the lack of slope intercept. Fix both problems by a combination of approaches: 1. Make the knee more clip()-like (1:1 mapping) at low luminances, but constrain this to prevent the P[1] slope from exploding 2. Also mix in a linear intercept for P[1] as D -> 0
-