Skip to content
Snippets Groups Projects
  1. Jul 11, 2022
  2. Jul 08, 2022
  3. Jul 06, 2022
    • Niklas Haas's avatar
      pl_thread: use gettimeofday() for back-compat · 55500b52
      Niklas Haas authored
      Some older platforms (particularly macOS) do not support
      clock_gettime(). Fortunately, this is identical to gettimeofday in the
      case of CLOCK_REALTIME.
      
      These systems also do not have pthread_condattr_setclock, so we can
      re-use this check.
      
      Also add proper error handling to this function.
      55500b52
  4. Jul 05, 2022
  5. Jul 03, 2022
    • Niklas Haas's avatar
      vulkan/utils_gen: also check datadir for vk.xml · 19aee6c4
      Niklas Haas authored
      This is useful in cases where users build the vulkan-headers (and thus
      place vk.xml) inside their custom prefixes, in which case it makes sense
      to look there as well.
      
      Do this with highest priority - if a user is building against custom
      vulkan headers, we probably want to use them. (They might be pinned to
      known-good versions)
      19aee6c4
  6. Jun 25, 2022
  7. Jun 24, 2022
  8. Jun 23, 2022
    • Niklas Haas's avatar
      shaders/icc: reimplement custom gamma estimation method · b9fcede8
      Niklas Haas authored
      This avoids a dependency on upstream cmsDetectRGBProfileGamma. It's
      slightly less precise, using only 256 sample points instead of 4096, but
      this difference barely seems to matter in practice, as this is only a
      rough estimate anyway.
      
      The main motivation of this change is to avoid a dependency on the
      relatively high lcms2 2.13, but it also brings with it the other upside
      of allowing us to tune the algorithm to our needs (e.g. not filtering
      out linear sections, because we care more about estimating the overall
      response to minimize LUT error, and less about finding the technical
      gamma).
      b9fcede8
  9. Jun 20, 2022
  10. Jun 19, 2022
  11. Jun 12, 2022
    • Niklas Haas's avatar
      vulkan: hold on to coherent buffers while synchronizing · 61f2de1c
      Niklas Haas authored
      Even for a coherent buffer, we technically have no guaranteed thet
      'vkCmdPipelineBarrier' has completed yet until the command callbacks are
      fired. To solve this issue, take the reference unconditionally, and
      instead move the coherency conditional to `invalidate_buf`.
      
      As an aside, checking for `buf_vk->mem.data` here is redundant, as this
      code will only ever be hit in any of the host readable/writable
      conditions.
      61f2de1c
    • Niklas Haas's avatar
      ci: use variables for image URLs · 65e6cc49
      Niklas Haas authored
      Avoid having to update a billion URLs
      65e6cc49
    • Niklas Haas's avatar
      vulkan: stop using implicit layout transitions · a646c2c0
      Niklas Haas authored
      This makes the vk_tex_barrier code unnecessarily buggy. In particular,
      the way the code is currently written, we omit pipeline barriers here
      *anyway*. And trying to reason about when the synchronization scope can
      be ignored and when not gave me a headache so just get rid of this
      implicit layout transition business and use the same pipeline barrier
      that we use for everything else.
      
      The overhead is negligible anyway.
      a646c2c0
    • Niklas Haas's avatar
      shaders/icc: msan robustness · 530804b5
      Niklas Haas authored
      Don't trigger MSAN on uninstrumented lcms2.
      530804b5
    • Niklas Haas's avatar
      vulkan: require VK_KHR_timeline_semaphore for Vulkan 1.1 · 5bdd1ed7
      Niklas Haas authored
      The feature check is insufficient to check for timeline semaphore
      support because it doesn't get updated if we don't actually enable the
      corresponding extension also.
      5bdd1ed7
    • Niklas Haas's avatar
      alloc: fix struct size check error · 2d694cdc
      Niklas Haas authored
      Recent compilers complain about this being UB
      2d694cdc
  12. Jun 10, 2022
  13. Jun 09, 2022
  14. Jun 08, 2022
    • Niklas Haas's avatar
      meson: don't error on auto vulkan without spirv/glslang · 79a658d2
      Niklas Haas authored
      When vulkan is autodetected but spirv/glslang is not available, this
      currently triggers an error(). This is undesirable behavior especially
      because it can randomly regress existing libplacebo installations merely
      due to pulling in the vulkan headers.
      79a658d2
  15. Jun 05, 2022
  16. May 23, 2022
  17. May 20, 2022
    • Niklas Haas's avatar
      shaders/icc: completely refactor · 1956dbb5
      Niklas Haas authored
      Rewrite all of the ICC profile handling code, fundamentally getting rid
      of the 'ICC->ICC transform' design and representing each profile as an
      independent object that can be either decoded or encoded, at separate
      stages in the pipeline.
      
      This is only an initial version, and serves to establish the API. It is
      not yet fully optimized, but optimizations can and will be applied
      transparently underneath the hood of this API (e.g. skipping the full
      3DLUT when not required, implementing support for fixed function
      profiles, natively applying matrix+shaper profiles, etc.)
      
      This design brings with it a number of advantages, most notably allowing
      support for using libplacebo-native tone mapping together with ICC
      profiles, by properly forwarding the actual contrast values detected
      from the profile.
      
      In addition to a redesign of the core logic, also changes things so that
      the ICC.h header is always installed, even if non-functional -
      `pl_icc_open` will simply always return NULL.
      1956dbb5
    • Niklas Haas's avatar
      tone_mapping: use linear stretching for SDR<->SDR · 232fcd94
      Niklas Haas authored
      SDR<->SDR conversions are best done with simple linear light stretching,
      because everything else introduces too many distortions.
      232fcd94
    • Niklas Haas's avatar
      renderer: suppress linear scaling when not desired · 80e917d1
      Niklas Haas authored
      Even if the image has either already been linearized somehow, e.g. if
      the image came in linear light to begin with.
      80e917d1
    • Niklas Haas's avatar
      common: fix include style consistency · 62ee7d4e
      Niklas Haas authored
      Ignoring the ICC profile header for now because it's about to be
      refactored entirely.
      62ee7d4e
    • Niklas Haas's avatar
      colorspace: add more helper functions · 13e6eafb
      Niklas Haas authored
      And also fix the wrong signature of pl_cie_xy_equal. Decided to split
      this off to prevent ballooning the following commit (and its API change
      log entry).
      13e6eafb
  18. May 18, 2022
    • Jan Ekström's avatar
      d3d11/swapchain: make initial color config logging less confusing · 81d5a54e
      Jan Ekström authored
      d3d11_sw_colorspace_hint is utilized both for runtime hints as well
      as the initial swap chain configuration to enable consistency
      between received swap chains and newly created ones.
      
      Thus, add an internal function which contains the argument of whether
      this call was internal or not. In the colorspace hint call, it is
      set to false, and during swap chain initialization it is set to true.
      Thus when hints are passed, logging will talk about received hints
      and when the function is called during initialization, logging will
      talk about initial configuration.
      81d5a54e
  19. May 01, 2022
Loading