1.29.0 changelog:
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
- skip the creation/use of semaphores for single-queue usage
- fix several bugs related to swapchain recreation and image acquisition
- fix creation of non-renderable but storable vulkan textures
- fix several bugs related to emulated texture downloads
- fix pl_fmt capabilities for some emulated formats
- fix stride/alignment of std430 vectors/matrices
- use push constants more aggressively, whenever possible
- slightly improve accurate of BT.2100 matrices
- fix overzealous rotation of vulkan queues
- fix dangling validation layer suppression in rare cases
- fix possible swapchain deadlock on VK_SUBOPTIMAL_KHR
- handle VK_SUBOPTIMAL_KHR more gracefully / efficiently
1.29.1 changelog:
Fixes:
- fix a segfault in the test framework on platforms without vulkan
- fix error message spam when rendering to minimized/hidden windows
- hackily fix compilation on certain glslang versions