Overview

Request 615434 accepted

- Update to 0.5.0
This release brings with it greatly improved support for HDR (including
HDR-in-SDR emulation, native HDR passthrough and improvements to the
HDR->SDR tone mapping algorithm), as well as support for ICC profiles
and external VkImage interop (needed for e.g. hardware decoding).
Additions:
* Add support for treating an SDR curve as an HDR curve by
overriding/providing the true target peak. This essentially allows you
to calibrate a true HDR device to a typical SDR curve and use it to
display HDR media, at the cost of bit precision
* Add more values to enum pl_chroma_location
* Add a scale factor to struct pl_sample_src, which is useful for e.g.
debanding on bit-shifted inputs
* Add a new function to infer/guess unknown pl_color_space fields
* Add support for 3DLUTs / ICC profiles (via LittleCMS), including
support for assigning ICC profiles to the `pl_render_image` and
`pl_render_target` structs
* Allow enabling optional extra vulkan device/instance extensions, as
well as listing what extensions were actually loaded
* Add an API for VkImage interop with user code, e.g. to wrap mapped
hardware decoding planes into `pl_tex`, plus all synchronization code
and extra metadata necessary to make this interop safe
* Implement support for native HDR output on supported platforms
Changes:
* Separate the texture from the plane data struct in `pl_upload_plane`
* Swapchain FBOs are now guaranteed to be blittable (e.g. pl_tex_clear)
* Tone mapping is no longer done for desaturation steps. Users wanting
high quality desaturation should use ICC profiles
* Change the types of various fields in struct pl_gpu_limits
* Slightly relax the sizing requirements of pl_tex_transfer
* Change the default value for pl_tex_transfer_params.stride_w/h.
Instead of defaulting to the image size, they now default to the rect to
be transferred
* Texture transfer buffer offsets must (now) be aligned to the texel
size, in addition to being a multiple of 4
* Change the API of `pl_color_space_equal` to be consistent with the
rest of the colorspace APIs
* Allow the `pl_upload_plane` helpers to upload from buffers as well
* Switch the type of mapped buffer pointers from char* to uint8_t*
* Rename DCI_P3 to Display_P3, and add DCI_P3 (using the actual DCI white
point)
Fixes and performance improvements:
* Fix some compatibility issues with GLSL 120
* Prevent desaturation from exploding when tone mapping to HDR, or when
tone mapping a very bright HDR scene to SDR
* Implement the fully parametrized BT.2100 (HLG) OOTF in both
directions, based on the tagged/inferred signal peak
* Fix an issue preventing the out-of-gamut feature from working
correctly on HDR displays
* Fix a segfault that occurs when instance creation fails
* Fix an issue where `peak_detect_frames` was sometimes too low
* Allow debanding to take care of implicit bilinear sampling in cases
where no other scaler is requested, thus avoiding an unnecessary FBO
indirection
* Only run the debanding algorithm on the parts of the image we will
actually be displaying. This is relevant when cropping
* Fix an issue where PL_TONE_MAPPINg_MOBIUS could fail in certain
(unrealistic) scenarios involving HDR-in-SDR emulation
* Fix an issue where vulkan could sometimes modify commands after
submitting them, when recreating vertex buffers
* Make an effort to reuse the same vertex buffer when the contents don't
change from the previous invocation
* Fix the glslang locale work-arounds on windows
* Fix an issue where trying to upload from a too-large texel buffer
results in an assertion failure rather than a clean error
* Fix an issue where the usage of VkEvents prevented libplacebo from
working on platforms where they were unsupported (e.g. MoltenVK)
* Support and use vulkan push descriptors where supported. This avoids
having to maintain, update and synchronize descriptor sets
* Correctly disable signal linearization on low-bit depth FBOs
* Prevent a crash on the (pathological) case of a shader with no
descriptors
* Fix a bug in the size limit calculations for 2D/3D LUTs
* Use optimization level "performance" instead of "size" for shader
compilation
* Fix an abort() when trying to render to a non-storable FBO when using
a final pass that requires compute shaders (e.g. HDR peak detection)

Loading...
Request History
Mia Herkt's avatar

lachs0r created request

- Update to 0.5.0
This release brings with it greatly improved support for HDR (including
HDR-in-SDR emulation, native HDR passthrough and improvements to the
HDR->SDR tone mapping algorithm), as well as support for ICC profiles
and external VkImage interop (needed for e.g. hardware decoding).
Additions:
* Add support for treating an SDR curve as an HDR curve by
overriding/providing the true target peak. This essentially allows you
to calibrate a true HDR device to a typical SDR curve and use it to
display HDR media, at the cost of bit precision
* Add more values to enum pl_chroma_location
* Add a scale factor to struct pl_sample_src, which is useful for e.g.
debanding on bit-shifted inputs
* Add a new function to infer/guess unknown pl_color_space fields
* Add support for 3DLUTs / ICC profiles (via LittleCMS), including
support for assigning ICC profiles to the `pl_render_image` and
`pl_render_target` structs
* Allow enabling optional extra vulkan device/instance extensions, as
well as listing what extensions were actually loaded
* Add an API for VkImage interop with user code, e.g. to wrap mapped
hardware decoding planes into `pl_tex`, plus all synchronization code
and extra metadata necessary to make this interop safe
* Implement support for native HDR output on supported platforms
Changes:
* Separate the texture from the plane data struct in `pl_upload_plane`
* Swapchain FBOs are now guaranteed to be blittable (e.g. pl_tex_clear)
* Tone mapping is no longer done for desaturation steps. Users wanting
high quality desaturation should use ICC profiles
* Change the types of various fields in struct pl_gpu_limits
* Slightly relax the sizing requirements of pl_tex_transfer
* Change the default value for pl_tex_transfer_params.stride_w/h.
Instead of defaulting to the image size, they now default to the rect to
be transferred
* Texture transfer buffer offsets must (now) be aligned to the texel
size, in addition to being a multiple of 4
* Change the API of `pl_color_space_equal` to be consistent with the
rest of the colorspace APIs
* Allow the `pl_upload_plane` helpers to upload from buffers as well
* Switch the type of mapped buffer pointers from char* to uint8_t*
* Rename DCI_P3 to Display_P3, and add DCI_P3 (using the actual DCI white
point)
Fixes and performance improvements:
* Fix some compatibility issues with GLSL 120
* Prevent desaturation from exploding when tone mapping to HDR, or when
tone mapping a very bright HDR scene to SDR
* Implement the fully parametrized BT.2100 (HLG) OOTF in both
directions, based on the tagged/inferred signal peak
* Fix an issue preventing the out-of-gamut feature from working
correctly on HDR displays
* Fix a segfault that occurs when instance creation fails
* Fix an issue where `peak_detect_frames` was sometimes too low
* Allow debanding to take care of implicit bilinear sampling in cases
where no other scaler is requested, thus avoiding an unnecessary FBO
indirection
* Only run the debanding algorithm on the parts of the image we will
actually be displaying. This is relevant when cropping
* Fix an issue where PL_TONE_MAPPINg_MOBIUS could fail in certain
(unrealistic) scenarios involving HDR-in-SDR emulation
* Fix an issue where vulkan could sometimes modify commands after
submitting them, when recreating vertex buffers
* Make an effort to reuse the same vertex buffer when the contents don't
change from the previous invocation
* Fix the glslang locale work-arounds on windows
* Fix an issue where trying to upload from a too-large texel buffer
results in an assertion failure rather than a clean error
* Fix an issue where the usage of VkEvents prevented libplacebo from
working on platforms where they were unsupported (e.g. MoltenVK)
* Support and use vulkan push descriptors where supported. This avoids
having to maintain, update and synchronize descriptor sets
* Correctly disable signal linearization on low-bit depth FBOs
* Prevent a crash on the (pathological) case of a shader with no
descriptors
* Fix a bug in the size limit calculations for 2D/3D LUTs
* Use optimization level "performance" instead of "size" for shader
compilation
* Fix an abort() when trying to render to a non-storable FBO when using
a final pass that requires compute shaders (e.g. HDR peak detection)


Saul Goodman's avatar

licensedigger accepted review

ok


Factory Auto's avatar

factory-auto added opensuse-review-team as a reviewer

Please review sources


Factory Auto's avatar

factory-auto added repo-checker as a reviewer

Please review build success


Factory Auto's avatar

factory-auto accepted review

Check script succeeded


Jan Engelhardt's avatar

jengelh accepted review


Staging Bot's avatar

staging-bot added as a reviewer

Being evaluated by staging project "openSUSE:Factory:Staging:adi:85"


Staging Bot's avatar

staging-bot accepted review

Picked openSUSE:Factory:Staging:adi:85


Repo Checker's avatar

repo-checker accepted review

cycle and install check passed


Staging Bot's avatar

staging-bot accepted review

ready to accept


Staging Bot's avatar

staging-bot approved review

ready to accept


Yuchen Lin's avatar

maxlin_factory accepted request

Accept to openSUSE:Factory

openSUSE Build Service is sponsored by