Skip to content
Snippets Groups Projects
  1. Jul 27, 2021
  2. Jul 23, 2021
  3. Jul 19, 2021
  4. Jul 16, 2021
  5. Jul 15, 2021
  6. 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
    • Niklas Haas's avatar
      glsl: refactor spirv compilation · 480dc28f
      Niklas Haas authored
      Rather than fixing/determining the pl_glsl_version at compiler creation
      time, this is now taken dynamically as a compilation parameter. In
      addition to this, the exact API / target version to compile against will
      be inferred from the GLSL description, rather than set explicitly. This
      allows us to take into account some of these limits during shader
      compilation.
      
      Move stuff into the common glsl/ subdir, mostly to allow the creation of
      glsl/utils.h which contains shared helpers between C and C++ that can't
      be placed into spirv.h directly due to C99/C++ incompatibility.
      
      Finally, rename some usage sites for consistency, enabling `stage` to
      always refer to the shader stage, `shader` to refer to the shader
      itself, and `glsl` to refer to the pl_glsl_version struct.
      
      Requires bumping the shaderc dependency. Fortunately, none of the usual
      candidates (debian stable etc.) even *package* ubuntu, so we're fine.
      480dc28f
  7. Jun 27, 2021
    • James Ross-Gowan's avatar
      gpu: only invalidate pl_pass_run_params.target in a raster pass · 7acd201d
      James Ross-Gowan authored and Niklas Haas's avatar Niklas Haas committed
      `pl_pass_run_params.target` should only be used for PL_PASS_RASTER and
      ignored for PL_PASS_COMPUTE, however pl_pass_run was invalidating the
      texture for both types of passes.
      
      This was found because `pl_dispatch_finish` unconditionally sets
      `target` for both types of passes. That should be harmless, but since
      `load_target` only gets set for raster passes, it resulted in
      `pl_dispatch_params.target` always being invalidated for compute passes.
      7acd201d
    • Niklas Haas's avatar
      tests/libav: explicitly test only LE variants · 58de4668
      Niklas Haas authored
      Since our libav helpers rejects BE formats, using the NE-dependent
      aliases here is wrong. This makes the test framework pass on BE
      platforms. Though I'm not very convinced that the code actually works
      correctly, it's probably impossible to test in the absence of BE GPUs to
      test against.
      
      Closes #160
      58de4668
  8. Jun 15, 2021
  9. Jun 14, 2021
    • Niklas Haas's avatar
      demos/plplay: add pass stats · e341dad3
      Niklas Haas authored
      Not entirely happy with the presentation, but I also can't particularly
      be bothered to prettify it. It serves its purpose of illustrating this
      functionality.
      e341dad3
    • Niklas Haas's avatar
      renderer: add info callback mechanism · b3a910f0
      Niklas Haas authored
      Forwards the information from the dispatch to the renderer API user, in
      the most transparent way, while also adding metadata about what "kind"
      of operation we're performing (frame rendering or blending).
      
      Closes #156
      b3a910f0
  10. Jun 13, 2021
  11. Jun 10, 2021
  12. Jun 05, 2021
  13. Jun 03, 2021
    • Niklas Haas's avatar
      vulkan: add checks for per-stage descriptor count limits · 7553c7a1
      Niklas Haas authored
      This prevents undefined behavior in the hypothetical case of these
      limits being very low.
      
      Technically this omits some limits such as checking against
      maxPerStageDescriptorSamplers for PL_DESC_SAMPLED_TEX, but I'm going out
      on a limb here and assuming that maxPerStageDescriptorSampledImages will
      never be lower than maxPerStageDescriptorSamplers.
      7553c7a1
    • Niklas Haas's avatar
      vulkan: suppress MSAN warning · 1777dc18
      Niklas Haas authored
      CI doesn't catch this patch because CI doesn't have DRM modifiers.
      1777dc18
Loading