1. 18 Mar, 2021 2 commits
  2. 17 Mar, 2021 1 commit
    • 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.
  3. 16 Mar, 2021 1 commit
  4. 12 Mar, 2021 1 commit
    • Niklas Haas's avatar
      renderer: fix memory leak · 2d2aafff
      Niklas Haas authored
      Introduced by 8ef0f369, the `psh` plane shader needs to be aborted
      even on a successful subpass merge.
      Maybe this API should be redesigned. Oh well.
      Fixes #130
  5. 11 Mar, 2021 1 commit
  6. 09 Mar, 2021 9 commits
  7. 07 Mar, 2021 1 commit
  8. 03 Mar, 2021 11 commits
    • Niklas Haas's avatar
      ci: reorganize CI jobs · 5b0ef42d
      Niklas Haas authored
      - don't execute llvmpipe jobs if compiling fails
      - don't execute *san jobs if test-gpu fails
      - rename everything to make it clearer what's being tested
    • Niklas Haas's avatar
      tests: fix/improve REQUIRE() failure output · a5a2b35d
      Niklas Haas authored
      Missing newline, also make it more easily searchable
    • Niklas Haas's avatar
      demos: add nuklear UI example · da42e00d
      Niklas Haas authored
      Mostly a shitty proof concept, but it runs.
      I plan on expanding this demo in the future, but for now it works as a
      sufficient stand-alone example, so I want to get it merged.
    • Niklas Haas's avatar
      dispatch: add support for dispatching custom vertices · df960521
      Niklas Haas authored
      This is actually easier accomplished than expected. Hugely useful for
      the `nuklear` demo I'm working on, and in theory also allows stuff like
      VR integration using custom vertices, although it does prevent the use
      of e.g. sampling shader functions (though this can be mitigated by using
      the custom shader sampler signature stuff).
      Also builds off the previous commit by allowing vertex shaders to access
      _all_ shaders descriptors/variables, even though the vast majority of
      our vertex shaders don't care.
      As an aside, also expose a good blending mode to use for typical alpha
      blending. Didn't feel like making a separate ABI bump for this.
    • Niklas Haas's avatar
      vulkan: allow vertex shaders to access descriptors / constants · 71a228dc
      Niklas Haas authored
      This doesn't really come with a performance penalty, and enabling them
      can be useful when using the pl_pass_run API directly, in which case
      vertex shaders might want to access descriptors or push constants.
    • Niklas Haas's avatar
      gpu: add support for indexed draw calls · 2f49f699
      Niklas Haas authored
      This is needed for nuklear, in particular. Not really a huge hassle for
      us to support, so we might as well.
      This commit also adds support for `pl_pass_run_params.buf_offset` to
      both vulkan and opengl, which was previously completely forgotten.
    • Niklas Haas's avatar
      demos: factor common GLFW code out of demos · 565a532b
      Niklas Haas authored
      This simplifies the demos to focus on their specific logic rather than
      the window creation boilerplate, and also allows me to expand the amount
      of demos without needing to re-duplicate this logic over and over again.
    • Niklas Haas's avatar
      opengl: fix #includes in opengl.h · aff33f5f
      Niklas Haas authored
      1. Use global include, rather than relative, like everything else
      2. Also include the swapchain headers, for consistency with vulkan.h
    • Niklas Haas's avatar
      opengl: ensure FBO format uniqueness · d88b3371
      Niklas Haas authored
      This avoids invalidating the pl_pass cache every time the FBO gets
      reinitialized, by making sure that the FBO format pointer remains the
      same unless the actual format changes in a detectable way.
      Probably not the most elegant solution here (maybe there should only
      always be one FBO format per swapchain?), but it works.
    • Niklas Haas's avatar
      gpu: drop redundant parameter validation · 5d2ab4d3
      Niklas Haas authored
      This is already covered by the index test, since that cap is required to
      create passes with variables.
    • Niklas Haas's avatar
      gpu: improve wording on target validation · 5f2b93d8
      Niklas Haas authored
      This variable being called `tex` makes it a bit misleading.
  9. 23 Feb, 2021 4 commits
  10. 22 Feb, 2021 9 commits