Skip to content
Snippets Groups Projects
  1. Nov 21, 2024
  2. Mar 13, 2024
  3. Feb 26, 2024
  4. Jan 31, 2024
  5. Jan 10, 2023
    • Simon McVittie's avatar
      pv-wrap: Accept LD_AUDIT and LD_PRELOAD as delimited lists · 48e44b34
      Simon McVittie authored
      
      This makes it easier to set them up in the wrapper shell scripts without
      making use of bash-specific features, which are not completely portable.
      
      For LD_PRELOAD, the separator is either a colon or a space; for LD_AUDIT,
      the separator is a colon. There is no facility for escaping the
      separators. This matches the behaviour of the environment variables in
      glibc ld.so, as implemented in elf/rtld.c.
      
      The usual reason to prefer separate command-line arguments over parsing
      is that a single merged argument either requires an escape mechanism or
      cannot represent certain data (for instance loadable modules with a colon
      in their filenames), but there is no need to try to support things that
      glibc doesn't, and glibc doesn't support loadable modules with the
      separator in their filenames anyway.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      48e44b34
  6. Nov 03, 2022
  7. Oct 28, 2022
  8. Mar 31, 2022
  9. Mar 15, 2022
    • Simon McVittie's avatar
      pressure-vessel: Set both VK_DRIVER_FILES and VK_ICD_FILENAMES · 7d2dfe16
      Simon McVittie authored
      
      VK_DRIVER_FILES was added to recent Vulkan-Loader versions, and takes
      precedence over VK_ICD_FILENAMES, which is now deprecated. Set both,
      so that both old and new Vulkan-Loader versions will work as expected.
      
      Similarly, remove VK_ADD_DRIVER_FILES from the environment: we assume
      that its contents will have been subsumed into VK_DRIVER_FILES when
      we built our modified search path.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      7d2dfe16
  10. Jul 21, 2021
  11. Jul 05, 2021
  12. Apr 27, 2021
    • Simon McVittie's avatar
      pv-runtime: Use threads to enumerate graphics drivers in parallel · 94699abd
      Simon McVittie authored
      
      SrtSystemInfo is not thread-aware, but can safely be handed off from
      one thread to another, and caches its results internally; so we can use
      a thread per architecture, plus an extra thread for cross-architecture
      Vulkan and EGL ICDs, to enumerate graphics drivers and populate the
      cache in parallel with any other container setup. We join the threads
      just before looking at their results, to maximize the length of time
      for which we're running in parallel.
      
      On slow hardware (Lenovo T520 circa 2011, with 500G 7200rpm HDD) this
      cuts something like 20% off the setup time with a cold cache
      (`echo 3 | sudo tee /proc/sys/vm/drop_caches`). It also has a benefit
      (more like 15%) with a warm cache, immediately after a previous
      pressure-vessel run.
      
      This does make it somewhat harder to profile pressure-vessel, because
      when two I/O-bound operations run in parallel, they both take longer
      than they otherwise would, even though the overall task finishes sooner;
      this makes it hard to attribute I/O cost to particular actions. The
      new --single-thread option can be used to get a better idea of where
      the time is really going.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      94699abd
  13. Mar 01, 2021
  14. Feb 22, 2021
  15. Feb 18, 2021
  16. Jan 05, 2021
  17. Dec 10, 2020
    • Simon McVittie's avatar
      pressure-vessel-wrap: Remove --host-fallback option · 22a1aa68
      Simon McVittie authored
      
      We are not going to be able to do this from within Flatpak, and it is
      unsuitable for running runtimes other than Steam Runtime 1 'scout',
      for which the LD_LIBRARY_PATH runtime mostly already works.
      
      If we need an automatic fallback to running on the host for scout games,
      we can do that better by running `pressure-vessel-wrap --test`.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      22a1aa68
  18. Nov 30, 2020
  19. Nov 24, 2020
  20. Oct 01, 2020
    • Simon McVittie's avatar
      launcher: Always set PWD to the command's actual working directory · e71023ff
      Simon McVittie authored
      
      pressure-vessel-wrap unsets PWD, but we don't want the command to inherit
      a value of PWD from the launcher. In particular, when running in session
      mode, the launcher's $PWD is the Steam installation, typically
      ~/.local/share/Steam, and the setup commands are also run with that
      working directory, but the actual game is run with the current working
      directory set to its own game directory (which we didn't necessarily
      even know at the time that the launcher was started).
      
      Consumers of $PWD should really check that it is equivalent to the
      actual current working directory and ignore it if it does not, like
      GNU get_current_dir_name(3) and our pv_get_current_dirs() do, but
      blindly believing $PWD is a common shell-scripting mistake, and I
      wouldn't be surprised if there are some games whose launcher scripts
      will believe $PWD even when it doesn't coincide with the real working
      directory.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      e71023ff
  21. Sep 30, 2020
  22. Sep 09, 2020
  23. Sep 08, 2020
  24. Sep 07, 2020
  25. Aug 19, 2020
Loading