Skip to content
Snippets Groups Projects
  1. Aug 08, 2023
  2. Jun 30, 2023
  3. Apr 24, 2023
  4. Feb 26, 2023
  5. Feb 25, 2023
  6. Feb 19, 2023
  7. Nov 03, 2022
  8. Jul 29, 2022
  9. Apr 25, 2022
  10. Nov 18, 2021
  11. Oct 16, 2021
    • Niklas Haas's avatar
      libplacebo: switch to new params struct style · a34a8ebe
      Niklas Haas authored
      Applies the new style introduced in the previous commit throughout the
      codebase of libplacebo, excluding some tricky/unimportant files (like
      gpu_tests.h)
      
      Special care needed to be taken in exactly one case, where
      pl_vulkan_params gained its implicit default fields in the new
      implementation and therefore async_transfer had to be disabled
      explicitly (rather than implicitly).
      a34a8ebe
  12. Sep 14, 2021
  13. Jul 19, 2021
  14. Jul 16, 2021
  15. Jul 02, 2021
    • James Ross-Gowan's avatar
      d3d11: add initial implementation · be32ca68
      James Ross-Gowan authored
      Add a pl_gpu implementation that uses Direct3D 11. This uses SPIRV-Cross
      to translate shaders from GLSL to HLSL. In its current state, plplay
      works and the test suite passes with feature level 10_0 and up. (9_x is
      unlikely to ever pass due to runtime-enforced shader complexity limits.)
      
      Missing features include emulated texture formats, cached_program,
      `pl_gpu_limits.thread_safe`, and HDR/high bit depth support in
      pl_swapchain, though these shouldn't be too hard to implement.
      
      This also updates the GLFW demos to be able to use Direct3D 11 through
      GLFW_NO_API.
      
      Closes #18
      be32ca68
  16. May 17, 2021
    • Niklas Haas's avatar
      demos: avoid depending directly on vulkan · bc9dab5e
      Niklas Haas authored
      GLFW and SDL both provide their own platform-specific vulkan function
      loading mechanisms. We should use these, instead of requiring the user
      to have a linkable libvulkan at compile time.
      bc9dab5e
  17. May 10, 2021
  18. Apr 30, 2021
    • Niklas Haas's avatar
      vulkan: properly support -Dvulkan-link=false · 803c531b
      Niklas Haas authored
      When compiling with vulkan linking disabled, we define `vulkan_headers`
      as a dependency object that only includes vulkan.h, rather than linking
      against libvulkan, and use this for the main libplacebo library. This
      allows libplacebo itself to avoid linking against libplacebo altogether
      when this option is enabled, as was clearly the intent. The test
      framework and demos still use the regular, linked libvulkan.
      
      Supporting this, make sure we compile with VK_NO_PROTOTYPES in this
      case, and also fix a bug where we accidentally still directly called the
      linked vkCmdCopyImage, and another bug where we forgot to forward
      `get_proc_addr` to `pl_vulkan_choose_device`.
      
      Finally, scan for the presence of `vulkan.h` itself and use that as a
      fallback for `vulkan_headers`.
      803c531b
  19. Apr 21, 2021
    • Niklas Haas's avatar
      libplacebo: provide typedefs for all object types · dd755a09
      Niklas Haas authored and Niklas Haas's avatar Niklas Haas committed
      Apart from significantly cutting down amount the typing the user needs
      to perform, I decided the past justification for keeping these as `const
      struct` rather than typedef'd names no longer makes sense due to the way
      libplacebo objects tend to have private parts hidden from the user.
      
      Bite the bullet and refactor all the things. Should be backwards
      compatible, but I decided to bump the major version to signal the
      significance of this API change.
      dd755a09
    • Niklas Haas's avatar
      log: rename from pl_context · 2459200a
      Niklas Haas authored and Niklas Haas's avatar Niklas Haas committed
      Over the past few years, the use case of `pl_context` has increasingly
      shrinked, finally dwindling to "nothing other than logging" with the
      introduction of thread safety (and thus the loss of the "thread safety
      guard") As such, this being called `pl_context` is really unnecessarily
      confusing. It's just a glorified logging subsystem.
      
      Rename it, and make it optional in the process. Also introduce a typedef
      to make the new name shorter, as part of a new convention that I will be
      switching to moving forwards.
      
      This technically breaks the auto-cleanup behaviour of `pl_shader` and
      `pl_filter` but I really don't think those were all that useful or
      justified, and I don't think anybody relied on it.
      2459200a
  20. Apr 19, 2021
  21. Apr 06, 2021
    • Niklas Haas's avatar
      demos: modularize windowing backend · 34decaab
      Niklas Haas authored
      Instead of compiling all variants of all demos, load the best backend at
      runtime. Also split off the nuklear implementation into a separate
      library to avoid excessively recompiling it, something that should have
      been done ages ago.
      
      This is technically a functionality downgrade, since it doesn't allow
      users to choose which backend to use (Vulkan or OpenGL), instead always
      picking the "best" backend. But that's mostly interesting for
      developers, not users, I think.
      
      I'll probably implement some mechanism for making that selection at
      runtime, when I actually need it.
      
      As an aside, I also renamed 'image' to 'sdlimage' since I think the name
      fits better - the only reason I didn't in the past was to avoid
      confusion with the suffix.
      34decaab
  22. Apr 01, 2021
  23. Mar 31, 2021
    • Niklas Haas's avatar
      demos: add support for file drag&drop · 287684ab
      Niklas Haas authored
      I've decided this is by far the easiest way to avoid having to implement
      a file picker dialog, which would be significantly harder.
      
      Ideally we should support loading new files in plplay itself this way,
      but I couldn't be bothered implementing this yet.
      287684ab
  24. Mar 26, 2021
    • Niklas Haas's avatar
      demos/plplay: add UI with settings integration · 20a0b9b3
      Niklas Haas authored
      This is actually insanely useful for testing.
      
      Still missing some way to load custom shaders / 3DLUTs / ICC profiles,
      unfortunately. Also missing ICC-related settings, for reasons which may
      require an API change.
      20a0b9b3
  25. Mar 18, 2021
  26. Mar 17, 2021
    • Niklas Haas's avatar
      demos: refactor components and integrate into build system · c6f9fb97
      Niklas Haas authored
      Major refactor of the demos/ directory, accomplishing a number of goals:
      
      1. Allowing easy switching between OpenGL and Vulkan variants.
      2. Supporting both GLFW and SDL2, chosen at compile time. The window
         management itself was made entirely modular for this purpose.
      3. Refactor all of the demo programs atop these new abstractions.
      4. Building them correctly and automatically (via meson).
      
      I also plan on factoring out the nuklear code to its own helper, but I
      avoided making that part of the same commit to prevent it from blowing
      up any further.
      c6f9fb97
Loading