Skip to content

- Add a public "renderer" API. This is currently very WIP, and not ready
  for stable usage yet. Both the API and the implementation are in flux,
  but the general goal is to make it easier to use libplcaebo to just
  render some data in the optimal way.
- Add pl_deband_default_params
- Expand shader system to support shader merging. This is not directly
  publicly useful yet, but it's used internally in the renderer.
- Allow dispatching to sub-rects of the render target
- Expand the scaling API to allow disabling antialiasing
- Add high quality dithering algorithms (blue noise, arbitrary size bayer
  matrix). This uses a new, genearlized shader LUT mechanism which
  allows the LUT to manifest itself either as a texture, a uniform
  float[] or as an in-line constant array depending on
  environment/hardware capabilities. As such, this can be used to enable
  dithering even without the use of a RA.

- Minor RA API changes here and there (e.g. signed -> unsigned stride)

- Improved check logic for various shaders
- More descriptive variable names in some of the generated shaders
- Fix overflow when dithering to bit depths greater than 32
- Fix the RA format finding logic in some cases
- Make the scalers correctly support flipped scaling rects
- Fix some incorrect vulkan texture barriers
- Fix some locale issues on BSD
- GLSL 120 compat fix with the dithering algorithm
- Fix vulkan command polling logic to avoid blocking for longer than