.gear/libplacebo.spec | 101 +++++++++++ .gear/rules | 3 + .../tags/375995d3a036d1ca370aab5a6c44ea5165d926e3 | 37 +++++ .../tags/577d78b64a26485cc693aff0ad2911c7872b6084 | 175 ++++++++++++++++++++ .../tags/593768f25823abe76eb5b60bfce69e75aebd6b09 | 41 +++++ .../tags/6e34c5644755bb9dd8551624aaa9b8f368393fff | 184 +++++++++++++++++++++ .../tags/833e4edbc1b4da89ebdbb3046fefc2c4119b6e91 | 40 +++++ .../tags/91ed8aafdb0fffe84fdcdd184202df42e211c7a4 | 67 ++++++++ .../tags/992ab523edb83f8b840bf8a3c9e148b09977782f | 150 +++++++++++++++++ .../tags/e53e35d1cb5ee1a7b73e9806d155fce1532b99fe | 128 ++++++++++++++ .gear/tags/list | 9 + 11 files changed, 935 insertions(+) diff --git a/.gear/libplacebo.spec b/.gear/libplacebo.spec new file mode 100644 index 00000000..9548dd67 --- /dev/null +++ b/.gear/libplacebo.spec @@ -0,0 +1,101 @@ +%define sover 292 + +Name: libplacebo +Version: 6.292.1 +Release: alt0.1 +Summary: libplacebo is essentially the core rendering algorithms and ideas of mpv turned into a library +Group: System/Libraries +License: LGPL-2.1+ +Url: https://github.com/haasn/libplacebo +Source0: %url/%name/archive/v%version/%name-%version.tar +Patch: %name-%version-%release.patch + +BuildRequires(pre): meson +BuildRequires: libshaderc-devel libvulkan-devel python3-module-jinja2 python3-module-glad2 liblcms2-devel gcc-c++ +%ifnarch %e2k +BuildRequires: libunwind-devel libdovi-devel +%endif + +%description +libplacebo is essentially the core rendering algorithms and ideas of mpv turned +into a library. + +%package -n %{name}%{sover} +Summary: %name is essentially the core rendering algorithms and ideas of mpv turned into a library +Group: System/Libraries + +%description -n %{name}%{sover} +libplacebo is essentially the core rendering algorithms and ideas of mpv turned +into a library. + +%package -n %name-devel +Summary: Development files for %name +Group: Development/C +Requires: %{name}%{sover} = %EVR + +%description -n %name-devel +The %name-devel package contains libraries and header files for +developing applications that use %name. + +%prep +%setup +%patch -p1 + +%build +%meson + +%install +%meson_install + +%files -n %{name}%{sover} +%_libdir/%name.so.%{sover} + +%files -n %name-devel +%_includedir/* +%_libdir/%name.so +%_pkgconfigdir/%name.pc + +%changelog +* Tue Sep 05 2023 L.A. Kostis 6.292.1-alt0.1 +- v6.292.1. + +* Tue Aug 29 2023 L.A. Kostis 6.292.0-alt0.2 +- Rebuild w/ new ffmpeg. + +* Sun Jul 16 2023 L.A. Kostis 6.292.0-alt0.1 +- v6.292.0. + +* Fri May 26 2023 Michael Shigorin 5.264.1-alt0.2 +- E2K: avoid missing BRs + +* Fri May 26 2023 L.A. Kostis 5.264.1-alt0.1 +- v5.264.1. + +* Thu Mar 16 2023 L.A. Kostis 5.264.0-alt0.1 +- v5.264.0. +- BR: added libdovi. + +* Fri Dec 09 2022 L.A. Kostis 5.229.1-alt0.1 +- v5.229.1. +- Update soname. +- Update BR: + - mako -> jinja2 + - libepoxy -> glad2 + + add libunwind support. + +* Mon Oct 03 2022 L.A. Kostis 4.208.0-alt0.1 +- v4.208.0. +- Update soname. + +* Tue Nov 16 2021 L.A. Kostis 4.157.0-alt0.2 +- Use libshaderc instead glslang. + +* Fri Nov 12 2021 L.A. Kostis 4.157.0-alt0.1 +- v4.157.0. +- Update soname. + +* Mon Jun 14 2021 L.A. Kostis 3.120.1-alt0.1 +- v3.120.1. + +* Mon Jul 20 2020 L.A. Kostis 2.88.0-alt0.1 +- Initial build for ALTLinux. diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 00000000..092a2c28 --- /dev/null +++ b/.gear/rules @@ -0,0 +1,3 @@ +tar: v@version@:. +diff: v@version@:. . +spec: .gear/libplacebo.spec diff --git a/.gear/tags/375995d3a036d1ca370aab5a6c44ea5165d926e3 b/.gear/tags/375995d3a036d1ca370aab5a6c44ea5165d926e3 new file mode 100644 index 00000000..2809d1bb --- /dev/null +++ b/.gear/tags/375995d3a036d1ca370aab5a6c44ea5165d926e3 @@ -0,0 +1,37 @@ +object 34314e37306e3d12fe5a0416c9b79eaf268b0cb2 +type commit +tag v5.229.1 +tagger Niklas Haas 1667332874 +0100 + +v5.229.1 + +This minor release fixes a crucial bug in v5.229.0, which caused a +regression when using orthogonal scaler kernels on anything but simple +scaling ratios, as well as other minor fixes. + +Fixes and performance enhancements: +- fix an issue where the pl_shader_sample_ortho refactor broke + orthogonal scalers inside pl_renderer, for anything but very simply + scaling ratios +- fix an issue where pl_shader_sample_ortho2 rejected some scaling + ratios due to floating point inaccuracy +- fix an issue where some extreme 'test' ICC profiles were unfairly + rejected by the gamma detection code +- fix an issue where some oddly-crafted ICC profiles could result in + NaNs propagating into the shader math +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmNhe8oACgkQmgkHZYGy +dAJzcg/+O7WdLwFz1ve/AlpuUqUqIZ/GUaSFOYBcenExw+vsXWWZqPM67IRAU0Zs +Ff5L3dE0xslw2nS5PsVTU1pdg+O0x4kkAFWkWS6LbyWZ8z0up8dG1UKm6c99KLH2 +mq2U/x8BnvbtlGNiXO8cSNjJz7f/WdBk2BM22DTxhLPoe2xe3ydeLICIFyYc7Jcj +vesqoiKB71Zj2ekcwG3lsCWgXAwyIpqv2gciNSk8wteJSJ6kyIpLv2CilXnGu222 +s3a+Z6KCQD5ngzS2cNPjVoadWiRE4/2XamugRNuR3847PyPZD58FjqpFXNwoho/m +QkrvwYiBsZ0PH6UUyrqoUlG87uW/rzAnxB2pAYr4Zu/zkbFJ/2sOSEN/NN46A2T0 +TdmCjAamqmhVNi8t3wbXZOMetqb1HZ7UVxWB2s/5HIZCylc9uC/Wis8de1XL8EhW +SKaHlZpsV2g0thjtZ+pU5JgHqsS8yRREp9l9Ny4gQN8pnDgpbnrbcrSdQMKm6z1c +tg1bg5tHNsMDBsd4Wc6jzKvp8IwpVTnpkgpoiR8OX8f+obXSP1gULusPcarPeUax +I1EvDi3ufS0sWofm4v+rK4ye8hGXSBqVNse7GRvKkxrYG7LN9Psmq9+eL07ewQnq +ay5CPdl2oMBg2KNdc/9/5IxMGY/fr+FY7urMnfE0e9tke60XPXQ= +=Y3Yf +-----END PGP SIGNATURE----- diff --git a/.gear/tags/577d78b64a26485cc693aff0ad2911c7872b6084 b/.gear/tags/577d78b64a26485cc693aff0ad2911c7872b6084 new file mode 100644 index 00000000..5dfb3e1a --- /dev/null +++ b/.gear/tags/577d78b64a26485cc693aff0ad2911c7872b6084 @@ -0,0 +1,175 @@ +object 8ae0648b459d8215bde7772501d5cba17e28bf53 +type commit +tag v5.264.0 +tagger Niklas Haas 1678709293 +0100 + +v5.264.0 + +This release focuses on a major overhaul of HDR tone-mapping, including +support for HDR10+ and PQ CIE Y dynamic metadata (including ST2094-40 +OOTF), an entirely rewritten peak detection shader (using a frame +histogram), a reimagined new default 'spline' tone-mapping function, and +two new debug overlays to visualize the tone-mapping LUT and clipped +pixels. + +In addition, this release offers proper native support for DCI Digital +Cinema Distribution Master (XYZ) decoding, integration with libdovi for +Dolby Vision RPU parsing, native support for planar (YCbCr) vulkan +texture formats, and a major overhaul of the vulkan command scheduling +and synchronization code. + +Additions: +- add PL_COLOR_PRIM_ACES_AP0 and PL_COLOR_PRIM_ACES_AP1 +- add pl_tone_map_params_infer +- add pl_plane_data_from_comps (not restricted to 64-bit formats) +- add pl_hook.parameters and the ability to use //!PARAM directives + inside mpv-style shaders +- add pl_gpu_limits.host_cached to test for host-cached host-mapped + buffer support +- add pl_vukan.get_proc_addr +- add pl_vulkan_sem_create/destroy, to create (exportable) vulkan + semaphores for use with the vulkan image interop API +- add pl_vulkan_hold_ex and pl_vulkan_release_ex +- add pl_vulkan_wrap_params.aspect to wrap individual planes of planar + images +- add support for packed 16-bit formats (rx10, rxgx10 etc.) +- add support for planar textures (pl_fmt.planes and pl_tex.planes), and + introduce planar texture formats (g8_br8_420, gx10_bx10_rx10_444 etc) +- add support for 3-component formats (rgb8, rgb16 etc) to d3d11 +- add PL_COLOR_TRC_ST428 (DCI digital cinema XYZ transfer function) +- add pl_plane_data.swapped to support uploading non-native endian data +- add pl_hdr_metadata.scene_max/avg and pl_hdr_metadata.ootf for HDR10+ + dynamic metadata +- add pl_map_hdr_metadata and pl_frame_map_avdovi_metadata +- add pl_tone_map_params.hdr +- add pl_tone_map_st2094_10 and pl_tone_map_st2094_40 +- add pl_color_map_params.visualize_lut and visualize_rect +- add pl_hook.signature to help identify hooks (for error tracking) +- add pl_renderer_get_errors and pl_renderer_reset_errors to query the + renderer for internal errors +- add for parsing DV RPUs (based on + libdovi) +- add a compile-time option to disable dolbyvision support +- add support for sampling from integer textures on d3d11 +- add pl_color_space_nominal_peak_ex +- add pl_get_detected_hdr_metadata +- add pl_hdr_metadata.max_pq_y and avg_pq_y +- add pl_tone_map_params.input_avg +- add pl_hdr_metadata_type and pl_hdr_metadata_contains, as well as + pl_color_map_params.metadata, to influence the choice of HDR metadata +- add pl_peak_detect_params.percentile +- add pl_color_map_params.show_clipping + +Changes: +- deprecate pl_sync and pl_tex_export (in favor of pl_vulkan_sem_create + and pl_vulkan_hold_ex) +- deprecate pl_vulkan_hold, pl_vulkan_hold_raw and pl_vulkan_release (in + favor of their _ex counterparts) +- improve tone-mapping default function/mode heuristics +- remove pl_swapchain.impl from public-facing struct +- pl_tone_map_spline has been substantially rewritten and replaced by a + similar but different algorithm, with a new tunable parameter + (influencing the desired subjective contrast level) +- pl_color_map_params.lut_size now only affects a 1D LUT, rather than a + 2D LUT, and the default has been increased from 256 to 1024 +- move pl_renderer_params.allow_delayed_peak_detect to + pl_peak_detect_params.allow_delayed +- deprecate pl_get_detected_peak, replaced by + pl_get_detected_hdr_metadata +- deprecate/remove pl_peak_detect_params.overshoot_margin +- move pl_hdr_rescale from to + + +Fixes and performance enhancements: +- correctly accept even very wide ICC profiles +- fix dynamic LUT generation suddenly switching between different tone + mapping functions when using `pl_tone_map_auto` +- correctly report buffer size limits in pl_vulkan.gpu->limits +- fix an issue where zooming into a fullscreen image did not correctly + invalidate the frame cache +- fix building with recent versions of glslang +- fix unintentional sub-pixel distortions when cropping +- fix sampling from GL_OES_EGL_image_external targets on GL ES 3.x +- fix UB when using VK_EXT_full_screen_exclusive +- fix choice of default SDR curves when targetting PL_COLOR_TRC_UNKNOWN +- infer correct color gamut / primaries when using PL_COLOR_SYSTEM_XYZ +- fix corner case when combinig linear input with non-linear scaling +- fix compute shader blit fallback rounding +- optimize blitting from 1 pixel sources +- fix UB when drawing from image formats where alpha was the first + component +- fix pl_vulkan_wrap incorrectly rejecting 1D/3D textures +- fix pl_vulkan_wrap ignoring renderable/host_readable caps +- fix GLSL codegen for non-float samplerBuffer +- adjust precision of whitepoints to match common practice +- fix d3d11 texel buffer initialization +- fix frequent shader recompilation in pl_shader_dovi_reshape +- correctly decode white point of DCI XYZ content +- fix issue where OpenGL shaders with multiple buffer block bindings + (UBOs/SSBOs) were not correctly initialized on older GLSL +- various fixes and improvements to the vulkan memory selection logic +- fix memory leak on d3d11 +- fix possible crash on older OpenGL drivers +- fix texture blit fallback shader on older GLSL +- avoid implementation-defined behavior when using SSBOs on older GLSL +- fix memory leak when pl_mpv_user_shader_parse fails +- fix memory leak when using deinterlaced frames in pl_queue +- fix thread-unsafe array usage in pl_pass_create on vulkan +- fix issue where BT.2446 was unintentionally picked for HDR->HDR + inverse tone mapping +- fix double mutex unlock in vulkan memory allocator +- fix and headers +- fix missing host read/write dependencies vulkan buffers +- fix build on newer vulkan headers +- fix various build issues on 32-bit platforms +- fix issue when shader LUTs fail being created +- fix possible UB in AV1 film grain shader +- substantially rewrite vulkan command/object synchronization to take + full advantage of timeline semaphores, drastically reducing the number + of semaphores and synchronization primitives that were emitted +- properly clean up after old/unused shader cache entries +- fix timing of vulkan uninit debug messages +- correctly prefer mingw vulkan headers over system-wide vulkan headers + when building inside mingw +- improve performance of string concatenation operations when + constructing shaders +- fix vulkan swapchain recreation when swapchain size is unchanged +- fix unnecessary/redundant tone-mapping when drawing overlays +- fix discontinuity when using PL_TONE_MAP_AUTO and the source peak + falls below the target peak +- fix overly aggressive saturation when using PL_TONE_MAP_LUMA for small + range conversions +- various fixes for using libplacebo from C++ +- always go through full tone-mapping LUT even when performing only + black-point-compensation +- performance improvement (LUT bypass) for pl_tone_map_linear +- improve debugging of vulkan leak detection and out-of-memory errors +- fix possible segfault when vulkan/d3d11 context creation fails +- avoid deprecated features when compiling SPIR-V for newer vulkan +- fix various issues caused by a poor choice of color mixing space when + using pl_render_image_mix and HDR sources/displays +- correctly invalidate frame cache when rendering single frames with + updated parameters/dimensions +- correctly reset peak detection state when params change +- fix unintentional RGB hard-clip before luma-based tone-mapping +- correctly enable vulkan validation features extension when using + pl_vk_inst_params.debug_extra +- emit correct texture barrier when pl_pass_params.load_target is true +- various fixes and improvements to the test framework +- various fixes and improvements to demos/plplay +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmQPEpwACgkQmgkHZYGy +dAKATA//eKXCd1T3poUi61qtUQgZVITAgLxVKg8wzuYrfDUoftiYq6q20qUU9b4d +rNBLSHP6Vp6cYNhx4TL9hN5q1ZV8jI5K6eNAwWhkMqLDohioXvmgcIkA77C+Id31 +zk/LE8xEhlxxVBz78/Sog2J40qnBZC692Ib86Jee5EzDsZdo6bVFPGgu8rE6+90a +nB8veijyxjcLGprujSXxTI39oFGtHBvh9W/AZ93pPGZloekGkq1kLxLAbHXB3gmN +687RAptPqMASoRfVl37BKNSqcHtSCz18ztbzTEdtG0cYe9rAmuBtPUll7+NGla6X +N96kkb/ETwxM8bOJ5+ISOGaobFzSk+jV8TIJunSgwa7LSpwAY0GUxpdOveqMZ/xs +OCLj5UFludtGk07TpDgGYhq4TuZvtR2SQ80nxqmxyUgfkbKH4/ElyMZKcnpyjxMR +M33zQFDeX8xfda512VCBSQr4MsGc6G74IKZYYPwGpqFASgv68k9N+BXPL0ovZE/O +YlpAiRvFPXbzyK1JG4WnIlvobyYf+yVYXjEpDcwoN3XVSTs/4mlpl54s2mahMzXH +aT+UqUBxOQWolhyIvjTeEIfv+lW2SDmOWFPBynG4AmDSfsKG/R+n9cDVWpKA+RsV +o3bFfneykpPopE0X7K16YXQL+UTRVxkusiKRcW4Rs0SpMv0HEwI= +=hcfj +-----END PGP SIGNATURE----- diff --git a/.gear/tags/593768f25823abe76eb5b60bfce69e75aebd6b09 b/.gear/tags/593768f25823abe76eb5b60bfce69e75aebd6b09 new file mode 100644 index 00000000..99f7074c --- /dev/null +++ b/.gear/tags/593768f25823abe76eb5b60bfce69e75aebd6b09 @@ -0,0 +1,41 @@ +object ec69102ed35e4af1dd6f14f01cf648bd78757c32 +type commit +tag v3.120.1 +tagger Niklas Haas 1617691673 +0200 + +v3.120.1 + +This hotfix release fixes a number of minor issues with the v3.120.0 +release, and also modularizes the included demo programs to cut down on +the number of compiled binaries. + +Changes: +- hexadecimal strings in custom shaders may now include whitespace +- added 16-bit half float formats to the dummy pl_gpu +- significantly reduced verbosity of the included demo programs +- merged all of the demo program variants into a single binary that + picks the best windowing system / graphical API at runtime +- install `plplay` when demos are enabled + +Fixes and performance improvements: +- fixed an integer overflow in a texture bounds check +- fixed a false positive error in the test framework on 32-bit platforms +- fixed some minor issues with various outdated comments +- fixed a potential use-after-free in the `plplay` demo program when + playing files containing embedded ICC profiles +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmBsBYAACgkQmgkHZYGy +dAJXyg//Rblbc5pce5oBKCc0ff/s+Nn3dRQ+ccTS2y61zVOuDThCF0asSNuMEtDd +lTBC+OWVrYa4a3yJ3u6cDmWbufJpwX/tKE7XWWQ3ys98RnGJu4EEPcD5ge4X02e4 +7bMMkNxrHo7nSCoJUoVTlZv2sj0hMvlvY5uQ1A9Zdqp69Q8DsVovpSMsFGzOytlr +uFkRBCdQ9nABNL7HVG6Qgmq+FEYL+zyxAKKpv9vluPiIvX7LvK0geLVaPgfk1mEw +BT736Ev0XfBMNCYlAT85mAvvzSfoxZ3xD0PjYaMHSBwxFAqdcKE67Z+Xfc08sXFg +vSFgP/CJ2igOmPZ/OW5A/MsNY9IBqHo2KCSFDtIl+RLb+KHa561Q7EiuaCORXdU1 +sXhIJPhSADsadreKmEofiU8D6fSaSOc1rFb6zums9KCbHAJpCLGh3B57z0SisEPV +xGUUfZyAgXS8rWpmuTQg8ucQEjxw7nGJpBGezC8S6csHwcAibxbrz+h/dSTdnEdf +Nvx1c3HyUX7K+i75zXc5SgiVmWLkMMyB7KrKxHP14CvZCLZdfJa7JLhI/OD6lSh5 +uO0RNHCemRHtXpbA7RQhCkoGVAhybr7gNyyrZq7/Nm0i6f79/6s5UjP5gRqIwDVA +oNAoGGnZKPtLmy+P05CH9cad2kEGuFvn7NaN6glVEUFaI01okQE= +=hFV2 +-----END PGP SIGNATURE----- diff --git a/.gear/tags/6e34c5644755bb9dd8551624aaa9b8f368393fff b/.gear/tags/6e34c5644755bb9dd8551624aaa9b8f368393fff new file mode 100644 index 00000000..b0930209 --- /dev/null +++ b/.gear/tags/6e34c5644755bb9dd8551624aaa9b8f368393fff @@ -0,0 +1,184 @@ +object b98c997220ca956acc8a9f36273722984a40256e +type commit +tag v4.157.0 +tagger Niklas Haas 1631005290 +0200 + +v4.157.0 + +This is a major new release involving a significant overhaul of the +public API, full thread safety, support for Direct3D 11 / Win32 / +MSVC, native HDR output, and more. + +The primary way of accessing most libplacebo objects has been revamped. +Rather than writing e.g. `const struct pl_tex *image`, users now simply +write `pl_tex image`. In addition, the `struct pl_context *ctx` was +universally refactored and replaced by `pl_log log`, with no concern +besides logging. + +Direct3D 11 is now natively supported by libplacebo, and compiling on +Windows in general has been made more straightforward. + +The entire API was revamped to be thread safe by default, even when +using OpenGL (assuming the user provides the appropriate context binding +callbacks). Accompanying this change, the `pl_queue` has been rewritten +with multi-threaded decoding loops in mind. See the accompanying +`plplay` demo for an illustration. + +Finally, this release brings with it a lot of features for feature +parity with mpv, such as the ability to get pass stats / timings, +oversample scaling, and more. + +Additions: +- add a `void *user_data` field to `pl_frame`, with no further + interpretation by libplacebo +- add `pl_queue_push_block`, useful for multi-threaded decoding loops +- add a `uint64_t timeout` to `pl_queue_update`, allowing it to + block until frames are available even when not using a `get_frame` + callback +- make `pl_queue_update` also return valid data when failing with + PL_QUEUE_MORE, allowing access to partial/incomplete mix outputs +- allow calling `pl_render_image` on `image == NULL`, to render overlays + only +- add `pl_get_buffer2`, API-compatible with AVCodecContext.get_buffer2 +- add support for blitting from/to several obscure formats such as + a1rgb5 or 64-bit integer formats +- add `pl_tex_clear_ex` to support clearing integer textures +- add `pl_render_params.ignore_icc_profiles`, for debugging +- add `pl_queue_params.interpolation_threshold`, to allow disabling + frame mixing when the source FPS approximately matches the display FPS +- always accept DRM_FORMAT_MOD_INVALID for texture imports +- add extra windowing functions to +- add the `pl_fmt.gatherable` capability +- add `pl_shader_sample_oversample`, a variant of nearest-neighbour + that preserves pixel aspect ratios - good for pixel art +- add `pl_scale_filters` alongside `pl_frame_mixers` +- add support for compile-time specialization constants (`pl_constant`), + and use them to speed up recompilation of shaders with hard-coded + constants +- add `pl_render_params.dynamic_constants`, which lifts hard-coded + constants to dynamic variables - useful for scenarios in which render + parameters are expected to change very frequently +- add more PL_COLOR_TRC_GAMMAxx definitions +- implement full black point adaptation, even when not using ICC + profiles, and infer this black-point-adapted BT.1886 instead of gamma + 2.2 as the default gamma curve for SDR files. +- add `pl_shader_res.description` and `pl_shader_res.steps`, containing + more friendly names for shaders plus a detailed list of operations + that shader is performing +- add callbacks to `pl_dispatch` and `pl_renderer` for informing users + of executed passes and their execution times +- add support for the Direct3D 11 graphics API +- add `pl_swapchain_colorspace_hint`, replacing + `pl_swapchain_hdr_metadata` as the new way to update swapchain + colorspace metadata at runtime. This can be used to e.g. switch + between HDR and SDR mode, for supported swapchains +- add `pl_peak_detect_params.minimum_peak`, allowing users to constrain + the detected peak values to only be sensible (e.g. above 1.0) + +Changes: +- simplify the `shaderc` pkg-config check - rather than querying for + `shaderc_shared.pc`, `shaderc_combined.pc` etc, simply check for + `shaderc.pc`, matching upstream +- make almost everything thread-safe, and document the parts that + aren't. In particular, almost all GPU state access is now thread safe, + freeing up users to access `pl_gpu` instances from multiple threads, + even when the underlying API is OpenGL +- deprecate `disable_overlay_sampling`, now effectively always true +- `struct pl_overlay` has been refactored completely to allow for + overlays with more than one part per texture. The only way of using + this struct is deprecated +- prefix `enum pl_queue_status` members by `PL_`, fixing an oversight in + the previous version of this API +- make `pl_renderer` automatically clear the target image, freeing users + from the responsibility of calling `pl_frame_clear` themselves. This + can be controlled via three new fields in `pl_render_params`: + `background_color`, `background_transparency` and `skip_target_clearing` +- rename `pl_context` to `pl_log`, and make its use optional. The old + names have been deprecated. It now lives inside +- add `typedefs` to all public-facing object types, o make them shorter + to reference. For example, `const struct pl_tex *tex` is now simply + `pl_tex tex`. This change affects almost every type of object in + libplacebo. The old way of referencing these objects is still + possible, but considered deprecated. Note that due to C++-specific + reasons, C++ users *must* upgrade their codeto the new API style +- remove PL_PRIM_TRIANGLE_FAN +- remove support for 64-bit float formats, which probably don't work on + any Vulkan implementation +- stop contrast-limiting ICC profiles, instead assuming perceptual + profiles have infinite contrast +- remove `pl_shader_signature` for being necessarily unsafe +- require Vulkan 1.1 as the minimum vulkan version +- rename `pl_oversample_frame_mixer` to `pl_filter_oversample`, and + allow using it for image scaling as well +- change `pl_color_space_monitor` from PL_COLOR_TRC_GAMMA22 to UNKNOWN +- change the signature of `pl_shader_(de)linearize` slightly +- significantly increase the default strengths of the desaturation + settings in`pl_color_map_params`, to mimic the hollywood feel +- refactor `pl_glsl_desc` and `pl_gpu_caps` completely, in favor of the + new structs `pl_glsl_version` and `pl_gpu_limits`, with new members. + The old API is still available for the time being, but deprecated + +Fixes and performance improvements: +- fix possible use-after-free in `plplay` +- don't explode `pl_queue` on NaN/Infinity/weird PTS values +- fix edge case involving plane merging for cropped images +- improve `plplay` by using threaded libplacebo APIs +- several fixes for edge cases in helpers +- several fixes for 32-bit platforms (e.g. integer overflows) +- fix blending edge cases involving overlays and alpha channels +- skip some unnecessary matrix multiplications for RGB content +- allow for some small backwards PTS jumps in `pl_queue_update` +- fix drawing overlays to subsampled targets +- `pl_dispatch` now garbage collects old, unused passes to free up RAM +- various improvements to debug/diagnonstic printouts +- allow blitting from e.g. 2D to 3D textures +- slightly improve small texture transfers in some emulated edge cases +- fix several possible hash collisions for generated shaders, making the + shader dispatch mechanism significantly more robust +- properly allow building against vulkan headers without linking to the + vulkan loader +- C++ compatibility for public headers +- improve performance of textureGather-based polar sampling, especially + for radius 2 and 4 +- fix vulkan texture handle capabilities check, again +- don't include superfluous pNext chains, fixes undefined behavior +- fix crash on edge case when shader compilation fails +- infer unsampled alpha channels as 1.0, rather than 0.0 +- properly infer `target->color` in `pl_render_image` +- properly tag the OpenGL swapchain as pl_color_space_monitor +- fix possible crash in pl_get_detected_peak +- fix several edge cases in pl_render_image_mix relating to LUTs, + 3DLUTs, HDR peak detection and so on +- fix sig_peak inferral for HLG content +- several compatibility fixes for older GLSL, and GLES 2.0 +- fix possible use-after-free in pl_shader_custom +- fix `pl_color_map_params.gamut_clipping` for HDR targets +- reduce the number of redundant color space transformations required + for frame mixing +- fix edge case in pl_dispatch_save for some ancient GL drivers +- several fixes for LLVM/MinGW/MSVC +- fix bug where pl_pass_run incorrectly invalidated/accessed + `params->target` even for compute shaders +- add windows compatibility to several demo programs +- fix the pl_fmt <-> DRM fourcc format mapping table +- fix inappropriate texture access function for generated samplers with + the sampler2D API +- avoid generating spurious EGL errors when probing for EGL format + modifiers +- fix various typis in the documentation +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmE3KxcACgkQmgkHZYGy +dAK9yBAAtPl8inJpwOyqp+0WXhJnSSQPVPH0hmSgxxU8ceovaUSVVrD9gfHWrqzj +wyfUZAIgPRIy3sU6COeew+YSBSUNwg4u8Aam6ncFNQ1La52Fv/eKlJq5Drh+HRUE +E/m5/jjBpjH9rhH0UyeDfGmk+pxyufGEpO9mMiPmn61y1M4PZcHhubInIQTFWKoR +8h4td9h+28SaG2VCyeQMmrId6SBLz/0igwBW4go4UsdpyRYzywA6QmMug189mXTF +pgERd0E1R0AII1SITPRNzDPzz1PQysgqJMhJ0tEo+1DO3qjdhd/oK8oB8qRDtPAE +eDZkSw53faEAGLbnRkYtBIC5DQcJM6LbajDJNTcqeGDe9puZmNPuqS1zb1V7GG6R +hO7ppH3fkZL+4QH6TpXyQ8FVfsKMIHgZOKGcy2gBRYf6l7/JBKVTGbC5jRBAN7/c +SrmmkS6ZwuWyDqitwp8BQWYh2mOGCxCxQyl6H6Uvp9H/9WJdPJDuv3JGX+bcwGOE +5/TQ2qG6y2zosLHD/Ran426FF+MWJBHzrT8DYxY24yWTSPCy/p783P4nJs2K+Bpp +gOq2JKL8wcp8dJfHaYyTRsU/AZQ/ne0HEF3jWpkq17RGyapjHzpCEWF/H8TgBk5W +fb5/AiG0xEsRledsblXmpqO6o4jw+YlZZnF/ePTTPXGTjnWFpVA= +=G4Ew +-----END PGP SIGNATURE----- diff --git a/.gear/tags/833e4edbc1b4da89ebdbb3046fefc2c4119b6e91 b/.gear/tags/833e4edbc1b4da89ebdbb3046fefc2c4119b6e91 new file mode 100644 index 00000000..66d55234 --- /dev/null +++ b/.gear/tags/833e4edbc1b4da89ebdbb3046fefc2c4119b6e91 @@ -0,0 +1,40 @@ +object ed29e541a55acf28022738440b2a925386292551 +type commit +tag v5.264.1 +tagger Niklas Haas 1679583198 +0100 + +v5.264.1 + +This bugfix release fixes a major regression in the v5.264.0 +tone-mapping redesign which resulted in garbage pixels (and unnecessary +tone-mapping) when using an ICC output profile, as well as other minor +miscellaneous fixes. + +Fixes: +- fix linear tone mapping resulting in garbage pixels appearing in and + around black and near-black regions +- fix ICC profiles incorrectly resulting in tone-mapping being enabled +- fix minimum meson version being incorrectly set +- fix HDR10 static metadata minimum brightness not being sent when using + HDR passthrough +- fix left-over debug junk that could possibly cause a shader + miscompilation on older GLSL +- fix a possible memleak in pl_renderer +- fix several hypothetical sources of UB inside internal code +- various minor fixes to misleading or missing log messages +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmQcZ98ACgkQmgkHZYGy +dAKTtA/9FDZShxgyWqpmS1AI7EowQcLCfIR2UHWuV7eRtjhQqWGG0K/sZaSe+lVn +4lXz9xELEv6Cc725mbi/fkSfzyeWJtHdWoxEAywTFzqptk3kQlB9PQgkj+BdXbT9 +GUFNCRYjlE+hnwk3nb5XmcsXTp5c7wIquXeHjKfB8PoK+By0cKVedacnSn2pkciA +XUlM/erDg0BEQc7Y1RmvVxMywUsV9oOZz8VFcdzd7shMnKuuJOEEL8fThZIpjynV +km29SYRYLeDXWQSRH7yV9xewNryfeIzIwC1iFIywSCEe5c+7AEBAazTGQVzC16zf +9ij1v1LF+Nd6aP914Oq1lDiMvphVvz8G9WNQNcpzo+tKKYWTD4iz8irqHW0NsOiR +3hTkXkY5JG9PUlWXLyHZ7WNodUvP+KeA+Xx9esQG8ticpNfEozbIQfK6njqLvgIv +we4pyEz/xgj+c6IpULtL5W+lX45WXcnNfHSeZRu36pfJ7WKkWMImBR4bXt5ydNKX +cE8BbKEOR4ySOGRt6zUE/wfkkGSNAqoq5OtCDYM+iERZgYje5eUzaz+0F1t/Hz5D +SYWFixUH7Z/1yYv+VSMZNKjKcfwrgZwsv0uAnN1zNs1TqBb/+zlbtttWT44wsn8K +WtDhPFB7BkeUQTR5768azIdbwPyV6No1clgKzMDqkXY/1aa5QfE= +=mKIu +-----END PGP SIGNATURE----- diff --git a/.gear/tags/91ed8aafdb0fffe84fdcdd184202df42e211c7a4 b/.gear/tags/91ed8aafdb0fffe84fdcdd184202df42e211c7a4 new file mode 100644 index 00000000..e41257db --- /dev/null +++ b/.gear/tags/91ed8aafdb0fffe84fdcdd184202df42e211c7a4 @@ -0,0 +1,67 @@ +object 06b51c6c1bc8be6153823929496eed255dd76e69 +type commit +tag v6.292.1 +tagger Niklas Haas 1691092175 +0200 + +v6.292.1 + +This minor release includes several important bug fixes to downscaler +kernels, a new and improved default perceptual gamut mapping mode, and +an overhaul of the `plplay` demo program's core timing loop. It also +drops the requirement for VK_KHR_synchronization2, which was +unnecessarily and prohibitively strict in practice. + +Note that because this minor release does not change the public API, +several new options related to the above changes are not yet exposed as +part of this release. + +Fixes and other enhancements: +- improve the quality of fallback tone-mapping (without state object) +- implement fast path for saturation mapping +- don't clip overlays during tone mapping / gamut conversion +- enhance gamut 3DLUT visualization +- fix aliasing when antiringing during downscaling +- fix aliasing when downscaling with polar (EWA) filters +- revert requirement for VK_KHR_synchronization2 +- fix possible queue underrun bug on very high fps sources +- correctly support displays above 200 Hz +- improve timing loop of plplay +- add CPU metrics and frame statistics to plplay +- fix build errors on 32-bit windows +- correctly flush when submitting frame on opengl +- fix bug when using contrast recovery with bilinear sampling +- fix compilation warning on some platforms +- properly handle interpolation on single frame files +- fix memory leak of d3d11 helper buffer +- fix vulkan debug_extra not being respected +- remove unusable rxgxbxax10/12 formats +- various fixes to the test framework +- fix compute shaders being incorrectly enabled at too-low GLSL versions +- fix capability masking when limiting max GLSL version +- fix HLG source peak tuning logic when display luminance is known +- fix unintended tone-mapping from SDR sources with embedded ICC + profiles on unknown SDR displays +- fix ICC profile luminance metadata being ignored on redraws when using + pl_render_image_mix +- improve quality of perceptual gamut mapper, and vastly decrease time + to compute +- increase default 3DLUT precision +- fix numerical accuracy of pl_primaries_superset +- disable gamut mapping if either colorspace does not describe a normal RGB + colorspace (e.g. swapped channels from synthetic test ICC profiles) +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmTMCKYACgkQmgkHZYGy +dALNMxAAw40GpDxz3tWHN/9dq5BqX2NHNaSkaLJZDZEPDeMVQtOaeqTL5JgKVf9f +wyhWhgPXe+qKIovA7V6bVtNGx1Hi1CQLnXlNFNTSirBcSFMjp3/A3cRwxZ+YtMwO +qXDZ51gQDIdG5rWrz1SCE0tTV3/HLGhQgF9VJ7VvHhmK5DJzCnBj6N4QhgFqPbN5 +8RF++y5BEYzw7vyPpsnrQ1oFLHS3HCsjj6Zu/NOjkU0cfPyd8+D777IfP+ijfdQE +F1lhizAmLv9pOwwH0+bjao+aTUgcYKRpb5fJk1siTZk3dljyzDy/eIjsGpDqux88 +F4D5c5MTIY3vIkZ80+qu+uJYrxwXLw2IS9tMICdaflW4U+gtuan9QyHudjzB6g3t +YlN1i2V2cV0r+zfB3W2N/eQXKzBA5tyy5ikf/VcnpMaX2VbrKLiPHxzDUNme+K6K +0LZDlhUGVsmF5BfboFM4rkRE96WUudyVRA5cky1KXMW724mcYJlTSF+7mx4RpgRP +OHOaFPJ7qpQA3LRyfG9xE1rZZhLVVbw2Ho+gmIr9AfpC7uZ9Hfinb20P0FSF+u3g +uHi5jC4ZkiUgFdBn3zS/6JuxIhO0Lizn9y9Pq6mGEVqrVCbfTJhHURT91wccTYqb +E8LYROTOTAUGl0qZWHK8y6y5XSu5Pv6K12K4E/PBr2kD5XWdZRY= +=m8M9 +-----END PGP SIGNATURE----- diff --git a/.gear/tags/992ab523edb83f8b840bf8a3c9e148b09977782f b/.gear/tags/992ab523edb83f8b840bf8a3c9e148b09977782f new file mode 100644 index 00000000..493f9201 --- /dev/null +++ b/.gear/tags/992ab523edb83f8b840bf8a3c9e148b09977782f @@ -0,0 +1,150 @@ +object ef202bcff8cce0e208e244e453d62dcad4c350ca +type commit +tag v6.292.0 +tagger Niklas Haas 1688679064 +0200 + +v6.292.0 + +This release focuses on a major overhaul of gamut mapping, including an +all-new perceptual colorspace (IPTPQc4) and related set of 3DLUT +generation primitives. The new default gamut mapping has been replaced +by a perceptual soft-clip operation which attempts mapping primaries +onto primaries while preserving a balance of both intensity and +chromaticity. The old bespoke tone mapping modes have been replaced by a +single colorimetric (IPTPQc4) tone mapping scheme. Lastly, a new HDR +contrast recovery option helps preserve detail in very bright +tone-mapped regions. + +In addition, this release focuses on major performance improvements to +the shader generation system, considerably reducing CPU overhead in +release builds. + +Finally, full support has been added for libavutil Vulkan hwcontexts, +allowing libplacebo to work directly with Vulkan Video decoding without +any memory copy overhead. + +Additions: +- add `pl_shader_info` +- add `pl_ipt_lms2rgb/rgb2lms and pl_ipt_lms2ipt/ipt2lms` +- add +- add `pl_color_map_params.visualize_hue/theta` to visualize gamut 3DLUT +- add `pl_vulkan_required_features` +- add `pl_get_mapped_avframe` to retrieve AVFrame from mapped pl_frame +- add `linear` frame mixer to pl_frame_mixers +- add `pl_render_params.corner_rounding` +- add `pl_matrix2x2_scale/invert` and `pl_transform2x2_scale/invert` +- add `pl_shader_distort` and `pl_render_params.distort_params` to + enable arbitrary affine distortions (e.g. arbitrary rotation, shear, + flip/scale) as a final output post-processing step +- add PL_HOOK_PRE_OUTPUT +- add `pl_shader_color_map_ex` and `pl_color_map_args` as a more + flexible API variant of `pl_shader_color_map` +- add `pl_color_map_parms.contrast_recovery/smoothness` settings, plus + `pl_color_map_args.feature_map` and `pl_shader_extract_features` +- add `pl_transform2x2_bounds` to compute bounding box of transform +- add `PL_COLOR_HDR_BLACK`, `PL_COLOR_SDR_CONTRAST` and + `PL_COLOR_HLG_PEAK` to replace previously-hardcoded magic constants +- add `pl_peak_detect_high_quality_params` and + `pl_color_map_high_quality_params` + +Changes: +- drop public APIs deprecated for libplacebo v4 +- require vulkan 1.3 headers at compile time +- require vulkan 1.2 as a minimum runtime version +- require a minimum version of GLSL 130 (GL/ES 3.0+) +- require a mininum version of meson 0.63 to build +- `pl_dispatch_info.shader` has been changed from `pl_shader_res` to + `pl_shader_info`, which may require updating some code (the fields + should be mostly backwards compatible) +- complete refactor of `pl_color_map_params` gamut mapping settings +- reduce default tone-mapping LUT size from 1024 to 256 +- deprecate `pl_vulkan.queues` +- add `pl_vulkan_params.extra_queues` to enable more queue types +- users are no longer required to use extension-specific vulkan feature + structs, and may freely mix and match them with vulkan 1.x + meta-structs - additionally, both types of structs are reported in + `pl_vulkan.features` +- `pl_vulkan_wrap_params.aspect` can now be left as 0 when not mapping + individual planes of planar images +- also enable subgroup clustered and quad operations in shaders +- change type of `pl_vulkan.(un)lock_queue` to uint32_t, to match Vulkan + API and libavutil vulkan hwcontext +- enable peak detection (sans histogram) by default in + `pl_render_default_params` + +Fixes and performance enhancements: +- drop various backwards compatibility paths for GLSL 110 +- fix clipping artefacts when using textureless linear tone-mapping +- fix source black point determination when using ICC profiles +- vastly improve CPU overhead of shader (re-)generation on release + builds, at the cost of less friendly variable names +- significantly improve CPU overhead of pl_shader-related internal + temporary allocations and various other related operations +- fix HDR passthrough minimum luma value being ignored +- minor fixes and performance improvements on internal allocator +- fix various possible sources of minor memory leaks +- various fixes and improvements to the meson build scripts +- work-around nvidia-specific swapchain resizing bug, at the cost of + performance when resizing the window +- fix frame queue FPS estimation for non-monotonic PTS +- fix negative inputs edge case in pl_hdr_rescale +- clamp detected HDR peak to legal PQ range +- avoid unnecessary tone-mapping LUT regeneration on static content +- minor optimizations to the fast bicubic shader +- minor theoretical overhead reduction by forcing LOD level +- fix pl_map_avframe_ex data buffer handling +- various improvements and bug fixes to the `plplay` demo program +- correctly handle v4 perceptual ICC profiles +- fix memory leak of vulkan queue locks +- fix theoretical UB in vulkan memory barrier ordering semantics +- relax unnecessarily strict / redundant host memory barriers +- improve debug logging to understand where VRAM is being allocated +- reduce fragmentation of large VRAM allocations (>= 64 MB) +- fix edge case where DRM format modifier was incorrectly checked on + export +- correctly find vulkan SDK headers via VULKAN_SDK env var +- correctly init d3d11 monitored fences +- various fixes to d3d11 error reporting and logging +- fix extension loading on pl_vulkan_import +- various fixes to d3d11 register allocation +- fix edge case when encountering incomplete interlaced streams +- fix pl_queue_update with explicitly provided "extreme" vsync ratios +- properly hold last interpolated frame for an extra 1/fps duration +- fix off-by-one in interpolation EOF semantics +- fix discontinuity in black point handling of st2094-40 +- fix possible double-acquire in pl_renderer frame acquisition logic, as + well as a possible use-after-unacquire +- correctly handle mistagged YCbCr AVFrames (e.g. tagged as RGB) +- fix incorrect clamping in pl_render_image(..., NULL) path +- fix crash when effectively rendering to blank/empty target crop +- fix alpha blending output +- significantly speed up mathematical opeations on mingw builds +- fix ICC profile gamma estimation for very strange synthetic test + profiles +- fix excessive saturation when using black point compensation, + inverse tone mapping, or tone mapping very bright videos +- fix edge case where pl_frame_queue returned frames too early +- various fixes to `pl_color_space_nominal_luma_ex` +- fix issue when using peak detection on older GPUs +- substantially improve performance of peak detection shader, especially + when measuring a frame histogram +- correctly hook PL_HOOK_SCALED even when using free/bilinear sampling +- peak detection is now performed after downscaling, when viewing + high-res HDR content on a low-res monitor/window +- fix clipping of overlays on targets with HDR metadata +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmSnMusACgkQmgkHZYGy +dAKJhRAAvNleEey2pvaRTobvYvrbTlRAiUzGXd69MoYVmI8lMkGRc6DHbzGDYSbG +Vp5fYdYMbPAVpDYIz5cHN/nLk67e5Us58M9QtkthG6yBIUASkKUjhjjJhP524cBK +mwAmAxMj5RamP0RvsoagOQDaOZ30bW0VScyiMe6HYLcjNVijovH8zIEBlABSc7/M +fxiIM6p2oHDsokT3vPSAHDFSWhITMQEwsvZE5AdPM7pzW6gJObS9P/7hHYGkU9ap +ntgHymThon70UaQCG8Q/buoe2PrnXAJbj0Qwi2yLbsewc+HsALBOcsyx4chMn6BX +xKBZAa2sW/OB/O1Do7tAgyDrtA0HLcGXnSTiGjxv504znJFWMCwcALbGmHYWrugU +tZGo6pIRGum2YpMF+WhLT/+9Y4fxnrWFt5PG8QguDeZXjQ/m613uWw//jqp0t24+ +MgVObIQ0UiJf4Hs6bRtFsXiZOQJBmp9XbrtuKzHC+5wg0bU/EfQ9/M8A+iGhf/e2 +WyJ6NzckiuAcqOt7f+YTwfBmC/9/gMHk44Pd19vUjuZx6S8E+K1j0oNtybTKoExC +kmdnN2FywjK7KcPzKLxELSjXRSO28+E9/0yz6gex2JTiQh+tCzGemBjTOd/e8Yvu +cmVHVI5yxdN/oBXrGxbVAywYq7I8OEz0E7zNGkwq4UBLVjzdTRQ= +=P7oN +-----END PGP SIGNATURE----- diff --git a/.gear/tags/e53e35d1cb5ee1a7b73e9806d155fce1532b99fe b/.gear/tags/e53e35d1cb5ee1a7b73e9806d155fce1532b99fe new file mode 100644 index 00000000..6517e097 --- /dev/null +++ b/.gear/tags/e53e35d1cb5ee1a7b73e9806d155fce1532b99fe @@ -0,0 +1,128 @@ +object 12d55df496aa473296b180318b3132fdceb068fe +type commit +tag v4.208.0 +tagger Niklas Haas 1657927741 +0200 + +v4.208.0 + +This major release brings with it a number of fixes and changes for +compatibility with both upstream and downstream projects, native HDR +output on D3D11, and a complete redesign of the way ICC profiles are +handled. + +Additions: +- add helper macros linearize() and delinearize(), expanding to the + definition of the gamma function in use for the video signal +- add various new helper functions relating to colorspaces and + primaries, see the API change log for a more comprehensive list +- add `pl_render_params.force_low_bit_depth_fbos` for + debugging/performance tweaking purposes +- add `pl_plane.flipped`, to allow representing individual flipped + frames in a way that semantically decouples from the presentation rect + (e.g. for OpenGL framebuffers, or planes with negative stride) +- add '%' and '=' as operators to custom shaders, matching mpv +- add `pl_vulkan.(un)lock_queue` for interop with other libraries +- add `pl_frame.acquire/release` for better interop with hardware + decoders. These are only called on an as-needed basis immediately + before and after a frame is actually used for rendering, with only one + frame being acquired at any given time +- add `pl_film_grain_from_av` helper function +- add support for configuring the swapchain color space on D3D11, using + the existing pl_swapchain_colorspace_hint mechanism +- add an entirely new ICC profile shader API, allowing ICC profiles to + be persistently opened (pl_icc_open) and their metadata exposed, + with explicit `pl_icc_decode` and `pl_icc_encode` operations instead + of a single monolithic decode+apply step +- add `pl_render_params.plane_up/downscaler`, allowing to override the + upscaler/downscaler for subsampled chroma planes in particular +- add `pl_filter_function/config.name` for debugging/logging purposes + +Changes: +- pl_log_create is no longer an exported symbol, instead becoming + versioned by the compiled API version. `pl_log_create` is now a macro + expanding to the name of this versioned function +- `pl_overlay_part` has been refactored, adding the new field `coords` + to control the coordinate system relative to which the part is placed + on-screen, as well as being generalized to support floating point + positions +- deprecate PL_HOOK_PRE_OVERLAY, as a result of overlays no longer being + applied during the rendering pipeline +- default `pl_color_map_params.gamut_mode` to PL_GAMUT_CLIP, replacing + PL_GAMUT_DARKEN +- DRM modifiers are now required for vulkan dmabuf interop +- `pl_vulkan.queue_*` are now *always* set to valid queues for that + operation type, even if it means including duplicates +- `pl_render_image` with NULL image now reports itself as a blend pass + (blending 0 frames) instead of a frame pass to the info callbacks +- completely refactor/remove the old ICC/3DLUT shader API + (`pl_icc_update`, `pl_icc_apply` etc.) +- is now installed unconditionally, with + `pl_icc_open` simply failing when built without lcms2 +- versions of glslang before the new versioning scheme (10.x.x) are no + longer supported + +Fixes and performance enhancements: +- fix pl_tone_map_reinhard.param_min to prevent division by zero +- fix left-over asserts preventing misaligned buffer uploads via + pl_upload_plane +- fix bug where emulated rgb textures had alpha incorrectly + preinitialized to 0 instead of 1 +- overlays are now always rendered onto the final blended image, solving + various bugs and unexpected edge cases due to image overlays being + blended in the middle of the rendering pipeline +- fix a bug where tone-mapping without a state object resulted in broken + behavior +- allow `pl_shader_sample_polar` to work with external samplers or + flipped textures without incurring a performance penalty +- fix the behavior of pl_shader_sample_oversample, which was previously + producing very wrong results +- fix an issue where the dither depth was incorrectly picked in a number + of edge cases +- fix a number of issues with the H.274 film grain shader +- fix a bug where grayscale images were slightly too green +- fix a bug where `pl_vulkan.queue_transfer` was never set +- fix possible UB in pl_opengl_wrap_tex on some drivers with broken + texture channel depth queries +- fix issue where some shader LUTs were being regenerated on every + single frame rather than properly cached +- fix shader compilation error on older GLSL +- fix bug where images were sometimes undesiredly being scaled in linear + light +- fix SDR<->SDR tone-mapping to properly be a no-op (linear stretch) +- fix use-after-free in pl_get_buffer2's error path +- fix d3d11 build issues on older versions of the SDK +- fix edge case where auto-detected vulkan in the absence of + glslang/shaderc caused the build to fail +- fix build issues with up-to-date vulkan SDK +- fix issue where non-coherent buffer imports were used in ways not + adhering to the non-coherent memory atom size +- fix various issues and undefined behavior when flushing mapped + buffers, especially for non-coherent memory +- avoid some validation warnings about improper pipeline barriers +- fix runtime error with up-to-date MoltenVK +- fix issue where some pl_frame_mix structs resulted no frames being + mixed, triggering an assertion +- fix bug where overlays were drawn flipped onto flipped planes when + rendering a NULL image +- fix allocation alignment issues on some platforms (notably win32 i686) +- fix compatibility issues with older macOS +- fix error handling in pl_cond_timedwait +- fix build issues with older vulkan versions +- fix build issue of demos/sdlimage in some configurations +- reduce VRAM consumption of ICC 3DLUTs by 50% +-----BEGIN PGP SIGNATURE----- + +iQIzBAABCgAdFiEEoc3UUHu5wgxZzCwzmgkHZYGydAIFAmLR+EQACgkQmgkHZYGy +dAL8Rw//RAbuxPcCTYZ4WhoA3U8krFEsws2mWmsKyRwSx9O8N3gUS29Whpc7ZsrR +D+5BcQ27HheXSJqebGGVPqrjGuPk+ZGOJHmsWkEGVONL5O4rjHL4Nupr6ug4RwtF +XeL84zKn9FWKNiVGxEbmOj9m+arQt52RrmGr2KVCMtlFeJlM1bIhoTW8AlgW+fZp +d2KKNV9oUU4JVxBlSR5jkXSe6mTdgm1y+3lJsbQzgPR4NdTbkOfyBsPGr1Tf9Bhq +8rK87fFZ87GfAFeTkc5j8ilHhTlYV6jrKn8uPiwKfy8L+4QuTsMKhI2ITSvRLsLz +Bfe61LVXT5LC43200bnST6whhcxcwvWHAnQ4FB6etfy9IRIV6ZPW70syLK4NmQYV +NxJM0zLUsZccBuFJfk5d0WjRgJ7T7BgsIuK2SX6PlqKsflizU0DdyeoN87KQlCCO +EJgG7qJ9G4WtaFpAyt4oN1hUdvI6oxmrACYfytCEdYxs2C/4iyw1ubgM014Eziaw +Dr/TUptehxhyYhIm+XccMsGPPzX4DoL91h+XoBjwiSN2hsJmJ5q/8oQ1WARECT21 +5rURe3VTvvNNljdWXj10hdjWj5+vgUfVM5brgRJii5Yts6djn+k5CHsCa97avBAN +tD5xJfrv9gZKdaDufk7Gno1ZEsmH+U/qOmR7uS6zbHPfvEhPMZY= +=5j/q +-----END PGP SIGNATURE----- diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 00000000..693de5f8 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1,9 @@ +c8bfe3450d3a95a5aaa18be11e15691086c828dd v2.88.0 +593768f25823abe76eb5b60bfce69e75aebd6b09 v3.120.1 +6e34c5644755bb9dd8551624aaa9b8f368393fff v4.157.0 +e53e35d1cb5ee1a7b73e9806d155fce1532b99fe v4.208.0 +375995d3a036d1ca370aab5a6c44ea5165d926e3 v5.229.1 +577d78b64a26485cc693aff0ad2911c7872b6084 v5.264.0 +833e4edbc1b4da89ebdbb3046fefc2c4119b6e91 v5.264.1 +992ab523edb83f8b840bf8a3c9e148b09977782f v6.292.0 +91ed8aafdb0fffe84fdcdd184202df42e211c7a4 v6.292.1