Skip to content

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
- 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)