- Aug 16, 2022
-
-
Clang 15 made "incompatible pointer to integer conversion" an error instead of a plain warning. This fixes errors like these: ../src/vulkan/gpu_pass.c:208:59: error: incompatible integer to pointer conversion passing 'VkPipeline' (aka 'unsigned long long') to parameter of type 'const void *' [-Wint-conversion] vk_dev_callback(vk, (vk_cb) destroy_pipeline, vk, *out_pipe); ^~~~~~~~~ ../src/vulkan/command.h:36:52: note: passing argument to parameter 'arg' here const void *priv, const void *arg); ^ ../src/vulkan/gpu_pass.c:209:19: error: incompatible pointer to integer conversion assigning to 'VkPipeline' (aka 'unsigned long long') from 'void *' [-Wint-conversion] *out_pipe = NULL; ^ ~~~~
-
Niklas Haas authored
The current ICC profile handling had a number of limitations: 1. Parts of the 3DLUT range were wasted in unrepresentable sub-blacks. 2. V2 profiles with black points not matching the V4 perceptual black target completely broke when using perceptual intent, causing black distortions. 3. We (intentionally) did not do any black point compensation. 4. Our approximation profiles were a poor fit for BT.1886-style technical gamma functions. Improve the status quo by making two important changes: 1. Tune the approximation profile to use a BT.1886-style technical gamma curve tuned to the exact measured black point of the display. 2. Enable black point compensation This should allow owners of broken colorimetric V2 profiles to rely on perceptual mapping tables with black point compensation instead, Closes: videolan/libplacebo#210 See-Also: https://github.com/mpv-player/mpv/issues/10442 See-Also: https://github.com/mm2/Little-CMS/issues/328
-
Niklas Haas authored
cmsDetectDestinationBlackPoint simply does not work in absolute colorimetric intent. Work around by using relative colorimetric. This is fine because this function only needs to produce approximate results, only meant to inform upstream tone-mapping code - we generate the 3DLUT with black point compensation either way. Fixes https://github.com/mpv-player/mpv/issues/10532
-
- Aug 12, 2022
-
-
Niklas Haas authored
Fixes: https://github.com/haasn/libplacebo/issues/136
-
Niklas Haas authored
Also bump the API version. Do this after updating all of the public-facing headers, so users can put a dependency on it. (For reverse dependencies, just use <5) If only there was an actual way to mark macros as deprecated..
-
Niklas Haas authored
This turned into quite the accidental epic. But oh well, not worth the effort to try and split it up again now.
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
- Jul 30, 2022
-
-
Niklas Haas authored
Building fails if the user only has glad1 installed, but not glad2, with this error: argument --api: Invalid api-string: "gl:core,gles2,egl" And if the user has neither glad1 nor glad2, it just fails with the unhelpful "module not found". Improve both by explicitly testing for this in the build system.
-
- Jul 29, 2022
-
-
Niklas Haas authored
Doing things the right way (tm)
-
Niklas Haas authored
This finally gives users complete control over the GL loading mechanism, and also makes libdl optional. Mirror the vulkan-link option by making the opengl-loader option non-mandatory.
-
Niklas Haas authored
We need to interface with the glad loader manually for this test.
-
Niklas Haas authored
This re-enables all EGL functionality.
-
Niklas Haas authored
-
Niklas Haas authored
It's worth pointing out that this commit temporarily disables GLES2/EGL support (and thus also the test framework) - to be re-added in the next commit. Closes videolan/libplacebo#208
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
Also introduces a new helper to facilitate accessing this dispatch table in a "standardized" way from any sort of pl_gpu-based code.
-
Niklas Haas authored
-
Niklas Haas authored
-
Niklas Haas authored
For now, just use the global loader. I will add a `get_proc_addr` callback to `pl_opengl_params` in a later commit. Note: We don't really need to care about cleanup, because by default, the `--mx` glad loader will simply dlclose() after returning from the loader. (Though, confusingly, it still does so in a quite race-y way, since it temporarily stores it inside a static variable for no reason whatsoever)
-
Niklas Haas authored
In preparation for the migration to an implementation entirely based on glad2, build against both glad and epoxy. To facilitate the transition, import both headers, and suppress the check designed to prevent this.
-
Niklas Haas authored
No integration yet, but this links glad (+ dependencies) into the repository.
-
Niklas Haas authored
This design basically mirrors Vulkan's. This is pretty much the best place to stick the dispatch table. In theory we could just make the dispatch table itself a separate type of internally exposed object (e.g. by overloading it on `struct priv` somehow`, but there's really little point in hiding these internal struct members.
-
- Jul 28, 2022
-
-
Jan Ekström authored
This adds the compilation and link flags for things such as Vulkan, enabling building with not everything being under a single sysroot.
-
Niklas Haas authored
This should fix the sporadic CI failures.
-
- Jul 24, 2022
-
-
Niklas Haas authored
This argument is normally a void*, intended for things such as an X11 display handle, and so on. But EGL_MESA_platform_surfaceless specifically requires it to be set to EGL_DEFAULT_DISPLAY, an integer constant. Make this cast to void* explicit to suppress errors on some platforms.
-
Niklas Haas authored
-
Niklas Haas authored
This needs a GLAPIENTRY to get the right calling convention on win32.
-
Niklas Haas authored
-