Revisions of libplacebo
buildservice-autocommit
accepted
request 859747
from
Mia Herkt (mia)
(revision 37)
baserev update by copy to link target
Mia Herkt (mia)
committed
(revision 36)
- Update to version 3.104.0 This is a major release, introducing many new features and modifications. Most importantly, libplacebo now interoperates well with FFmpeg's libav* abstractions. This is primarily exposed via a new set of helpers, <libplacebo/utils/libav.h>, implemented as a single header library. In addition to this, a number of other supporting changes have been made to the API, most notably the unification of `pl_image` and `pl_render_target` into a single `pl_frame` concept, similar in spirit to AVFrame. As such, libplacebo now supports **rendering to planar targets**, including subsampled YCbCr. Besides the libav* compatibility changes, this release also brings with it a new feature for custom shaders: buffer blocks, and persistent storage. This can be used by third parties to implement stateful shaders (e.g. motion interpolation or temporal deinterlacing), or be leveraged to speed up some shaders by combining multiple passes into one. Finally, various import/export procedures have been expanded, including the ability to import host pointers and real-world DMABUFs. Additions: * add `pl_memory_qualifiers`, plus a corresponding `pl_shader_desc.memory`, to allow attaching GLSL memory qualifiers (coherent, volatile etc.) to shader descriptors * add functions `pl_dispatch_save` and `pl_dispatch_load` to allow saving/restoring the contents of an entire `pl_dispatch`'s cache * add functions `pl_renderer_save` and `pl_renderer_load` to allow saving/restoring the contents of an entire `pl_renderer`'s cache
buildservice-autocommit
accepted
request 849913
from
Mia Herkt (mia)
(revision 35)
baserev update by copy to link target
Mia Herkt (mia)
committed
(revision 34)
- Update to version 2.72.2 This hotfix release fixes an additional glslang linking/build issue that was missed in v2.72.1. Bug fixes: * fix linking issue with some installations of glslang >= 11.0.0 Changes for 2.72.1: This release backports a number of bug fixes from master affecting the v2.72.0 release, most notably extending the range of supported glslang versions, as well as fixing the 3DLUT/ICC generation code. Bug fixes: * compatibility with glslang >= 8.13.3743 * compatibility with new glslang semantic versioning scheme * fix broken shaders on some versions of GLES by defaulting to 32-bit precision for floating point math * fix the vulkan API version passed to shaderc * fix the extension check for glInvalidateTexImage * fix pl_tex_create on older GLES versions * fix OpenGL logging thread safety * fix undefined memcmp() in pl_shader_av1_grain * fix pl_render_target.repr being ignored by pl_render_image * fix 3DLUT generation code (generated corrupt LUTs in all cases) * fix symbol visibility on some versions of GCC * fix potential overflow in BT.2390 shader * properly restrict pl_shader_sample_polar to GLSL >= 130 * fix vulkan function loading of promoted core functions Other changes: * tiny performance gain in 3DLUT generation * pl_opengl_create now logs GL_EXTENSIONS * log some additional VkResult enum members * improve several vulkan log messages by using friendly names of
buildservice-autocommit
accepted
request 814574
from
Mia Herkt (mia)
(revision 33)
baserev update by copy to link target
Mia Herkt (mia)
committed
(revision 32)
- Update to version 2.72.0 This is a major release with several key additions, most notably being the support for custom, mpv-style "user shaders" (.hook), giving us access to a large variety of pre-existing user shaders such as RAVU, FSRCNNX, Anime4K, SSimSuperRes, KrigBilateral, NNEDI3, and more. In addition to this, major additions include a completely refactored and fixed AV1 grain generation shader, support for Vulkan versions higher than 1.0, support for GPU-based timers, and improved interop APIs for both Vulkan and OpenGL, and new and improved aspect ratio handling. Finally, this release also brings with it a major change to the way HDR and SDR content are mapped between each other, including a new tone-mapping function based on the industry-standard ITU-R BT.2390 EETF. Additions: * add pl_swapchain_hdr_metadata, to set HDR metadata on supported swapchains (currently only vulkan with VK_EXT_hdr_metadata) * add support for vulkan versions higher than 1.0, communicated via the new fields api_version and max_api_version * add support for GPU-assisted validation and best practices layers, via the new field pl_vk_inst_params.debug_extra * add helper functions for working with pl_rects, including new aspect ratio handling helpers (pl_rect2df_aspect_*) * add field pl_vulkan_params.device_uuid to allow choosing the vulkan device by its UUID * add function pl_vulkan_hold_raw, to hold images without actually transitioning its layout and access mode * add function pl_vulkan_import, to allow directly re-using an existing VkDevice rather than creating a new one; this requires
buildservice-autocommit
accepted
request 800533
from
Mia Herkt (mia)
(revision 31)
baserev update by copy to link target
Mia Herkt (mia)
committed
(revision 30)
- Update to version 2.43.1 This release backports a number of bug fixes from master affecting the v2.43.0 release, and also slightly extends the range of backwards compatibility with respect to vulkan-headers versions. (This change is not on master, so this can be seen as a compatibility release) Bug fixes: * fix GLSL version checks when overriding GLSL versions with pl_shader_params.glsl * fix minor order-of-operations issue in AV1 grain synthesis * fix glInvalidate* backwards compatibility issue * fix compilation with older vulkan-headers (e.g. ubuntu 18.04) * fix a bug where pl_shader_encode_color sometimes uploaded and applied an identity matrix unnecessarily * work around upstream issues with MSL shader compilation by ensuring all buffer elements are sorted by offset * fix hypothetical edge case with swapchain image usages forbidden by the swapchain image format * fix an issue where blending overlays caused the rest of the image to be discarded Other changes: * log the vulkan surface selection choices * log the overall library version on initialization * add a few more pl_gpu validation checks * significantly reduce the CPU consumpation of blocking texture downloads
buildservice-autocommit
accepted
request 796364
from
Mia Herkt (mia)
(revision 29)
baserev update by copy to link target
Mia Herkt (mia)
committed
(revision 28)
- Enable test suite
Mia Herkt (mia)
committed
(revision 27)
- Add libepoxy to BuildRequires - Update to version 2.43.0 The major highlight of this release is the introduction of a new OpenGL backend, documented in <libplacebo/opengl.h>, which is also the reason for the major version bump. Apart from the addition of OpenGL support, this release brings with it a large number of fixes for backwards compatibility with older versions of GLSL and GLES, allowing libplacebo to be used to generate legal shaders for virtually any GLSL version in existence. Supporting these changes, the test framework has been expanded considerably to allow for automated testing of older OpenGL context versions and older GLSL versions. Additions: * add pl_gpu.pci, containing the PCI address of the underlying GPU * add pl_image.av1_grain, allowing pl_renderer to add AV1 grain * add pl_opengl backend (see <libplacebo/opengl.h>) * add pl_color_levels_guess, to infer color levels from pl_color_repr * pl_shader_encode_color now handles non-linear color systems * add pl_render_params.force_dither, to force use of the dither code * add pl_render_params.disable_fbos, to forcibly disable FBOs * add pl_vk_inst_params.layers, to allow loading extra vulkan layers * add a way to restrict the maximum GLSL version provided by the various pl_gpu backends, for testing purposes Changes: * load all vulkan function pointers indirectly, using a user-provided vkGetInstanceProcAddr function
buildservice-autocommit
accepted
request 759132
from
Mia Herkt (lachs0r)
(revision 26)
baserev update by copy to link target
Mia Herkt (lachs0r)
committed
(revision 25)
- Update to version 1.29.1 This is a minor bug fix follow-up, to address one major and two minor issues with the v1.29.0 release. Fixes: * segfault in the test framework on platforms without vulkan * error message spam when rendering to minimized/hidden windows * compilation on certain glslang versions
buildservice-autocommit
accepted
request 758911
from
Mia Herkt (lachs0r)
(revision 24)
baserev update by copy to link target
Mia Herkt (lachs0r)
committed
(revision 23)
- Update to version 1.29.0 The key highlights of this release are the change of pl_gpu API semantics to use explicit erroring instead of implicit undefined behavior, and several important bug fixes related to swapchain resizing (in particular, handling of suboptimal swapchains); as well as other minor utility changes, bug fixes and performance improvements. The new pl_gpu API allows clients to duplicate less code related to checking parameters and capabilities, as long as they're fine with the resulting error messages they might receive. In particular, libplacebo no longer aborts on invalid parameters - which helped during initial development, but is now suffocating clients more than it's helping. Additions: * add a new field pl_fmt.internal_size, which can differ from texel_size for emulated formats * add 16f / 64f texture formats with host-emulated 32f representation * expose a pl_vulkan_choose_device helper function * add a mechanism for allowing the user to explicitly resize suboptimal swapchains rather than having libplacebo take care of it Changes: * make pl_gpu log and error gracefully on illegal parameters rather than doing undefined behavior (i.e. aborting) * creating a host_mapped buffer now requires PL_GPU_CAP_MAPPED_BUFFERS * drop priv fields from public structs Fixes and performance improvements: * make libplacebo slightly less log spammy in general
buildservice-autocommit
accepted
request 741633
from
Mia Herkt (lachs0r)
(revision 22)
baserev update by copy to link target
Mia Herkt (lachs0r)
committed
(revision 21)
- Update to version 1.21.0 This is a minor / house-keeping release, mostly to get some important fixes into distros while also getting support for iGPUs requiring non-coherent memory into a "stable" release. Additions: * shaders.h API users can now override the GLSL version * add support for vulkan platforms with non-coherent memory (e.g. iGPUs) Changes: * default GLSL version is now 130 unless otherwise specified * signature of pl_shader_alloc now uses a params struct * PL_FIX_VER / PL_VERSION are no longer header constants * the renderer will now automatically adjust deband grain scale for HDR Fixes and performance improvements: * on GLSL < 130, shaders now correctly use texture2D etc. * fix a bug where async transfer was never actually used, due to incorrect alignment checks * fixed some issues that could lead to symbol conflicts * don't require large vertex buffers be host-visible (usually impossible) * correctly detect swapchain image feature flags * turned a few 1ms busy loops into infinite waits * fix compilation on some platforms that require SPIRV-Tools * fix vkCreateEvent error spam on MoltenVK * bump queued command limit from 64 to 1024
buildservice-autocommit
accepted
request 679082
from
Mia Herkt (lachs0r)
(revision 20)
baserev update by copy to link target
Mia Herkt (lachs0r)
committed
(revision 19)
- Build with (preferred) shaderc now that it’s packaged in TW - Update to version 1.18.0 The major changes of this release include a new and completely overhauled HDR tone mapping algorithm, support for importing backing memory for textures and buffers (such as via dmabuf fds), as well as a swapchain resizing API that, among other benefits, allows libplacebo to function properly on Wayland. There is also now support for generating CPU-backed "dummy resources" for things like lookup tables or convolution kernels, for users who prefer managing their own GPU resources. This allows pl_shader-level API users to access the full host of libplacebo shaders without being restricted the lack of a pl_gpu. Additions: * pl_color_space now has a sig_scale field, which allows modifying the signal range without affecting the transfer function's shape. (Effectively, by "stretching" it). This can be useful when dealing with HDR material encoded in a non-HDR curve such as linear light. * Add support for importing handles (including pl_sync objects and pl_shared_mem). Currently, only memory can be imported. * Add partial support for dmabuf fd interop. Currently does not support dma layout modifiers, so the usefulness of this feature is limited. * Allow importing external memory when creating textures. * Add a way to overexpose HDR material to bring its brightness up to more easily viewable levels. * Add pl_var_int to go alongside the other gpu.h helpers. * Add a way to create CPU-backed "dummy" instances of pl_gpu. These are not capable of compiling or executing any shaders, so they're only useful for users who want to generate and
Displaying revisions 41 - 60 of 78