1. 07 Dec, 2020 1 commit
  2. 05 Oct, 2020 1 commit
  3. 11 Sep, 2020 1 commit
  4. 01 Sep, 2020 5 commits
  5. 28 Aug, 2020 1 commit
  6. 21 Aug, 2020 1 commit
  7. 18 Aug, 2020 1 commit
  8. 11 Aug, 2020 1 commit
  9. 05 Aug, 2020 3 commits
  10. 02 Aug, 2020 1 commit
  11. 30 Jul, 2020 2 commits
  12. 17 Jul, 2020 1 commit
    • Emma Anholt's avatar
      meson: Enable GCing of functions and data from compilation units by default. · 33f33bb7
      Emma Anholt authored
      
      
      Normally, the linker will pull in any compilation unit (aka .c file) from
      a static lib (such as our shared util code) that is depended on by the
      code linking against it.  Since that code is already compiled, the .text
      section is allowed to jump anywhere in .text, and the compiler can't
      garbage collect unused functions inside of a compile unit.
      
      Teasing callgraphs apart so that normal compilation-unit-level GCing can
      reduce driver size hurts the logical organization of the code and is
      difficult.  As an example, once I'd split the format pack/unpack tables, I
      had to split out util_format_read/write() from util_format.c to avoid
      pulling in pack/unpack.  But even then it didn't help, because it turns
      out turnip's pack calls pull in util_format_bptc.c for bptc packing, but
      that file also includes the unpack impls, and those internally call
      util_format_unpack, and thus we pulled in all of unpack.  Splitting all of
      this to separate files makes code harder to find and maintain, and is a
      waste of dev time.
      
      By setting these compiler flags, the compiler puts each function and data
      symbol in a separate ELF section and the linker can then safely GC unused
      text and data sections from a compile unit that gets pulled in.  There's a
      bit of a space cost due to having those separate sections, but it ends up
      being a huge win in disk space on my personal release driver builds:
      
      - i965_dri.so -213k
      - x86 gallium dri.so -430k
      - libvulkan_intel.so -272k
      - aarch64 gallium dri.so -330k
      - libvulkan_freedreno.so -783k
      
      No difference on iris drawoverhead -compat -test 1 on my skylake (n=60)
      
      Effect on debugoptimized build times (n=5)
      touch nir_lower_io.c build time (bfd)        +15.999% +/- 3.80377%
      touch freedreno fd6_gmem.c build time (bfd)  +13.5294% +/- 4.86363%
      touch nir_lower_io.c build time (lld)        no change
      touch freedreno fd6_gmem.c build time (lld)  +2.45375% +/- 2.2383%
      Reviewed-by: Eric Engestrom's avatarEric Engestrom <eric@engestrom.ch>
      Acked-by: Adam Jackson's avatarAdam Jackson <ajax@redhat.com>
      Part-of: <!5739>
      33f33bb7
  13. 14 Jul, 2020 3 commits
  14. 10 Jul, 2020 3 commits
  15. 02 Jul, 2020 1 commit
  16. 01 Jul, 2020 1 commit
  17. 30 Jun, 2020 1 commit
  18. 28 Jun, 2020 1 commit
  19. 16 Jun, 2020 1 commit
    • Jan Beich's avatar
      meson: unbreak sysctl.h detection on BSDs · 63b81c99
      Jan Beich authored
      Code:
       #include <sys/sysctl.h>
      Compiler stdout:
      
      Compiler stderr:
       In file included from testfile.c:1:
      /usr/include/sys/sysctl.h:1184:40: error: unknown type name 'size_t'
      int     sysctl(const int *, u_int, void *, size_t *, const void *, size_t);
                                                 ^
      /usr/include/sys/sysctl.h:1185:40: error: unknown type name 'size_t'
      int     sysctlbyname(const char *, void *, size_t *, const void *, size_t);
                                                 ^
      /usr/include/sys/sysctl.h:1186:42: error: unknown type name 'size_t'
      int     sysctlnametomib(const char *, int *, size_t *);
                                                   ^
      3 errors generated.
      
      Checking if "sys/sysctl.h" compiles: NO
      
      <drm@1f8ada80>
      <drm@4083e8f2
      
      >
      Reviewed-by: Niclas Zeising's avatarNiclas Zeising <zeising@daemonic.se>
      Reviewed-by: Eric Engestrom's avatarEric Engestrom <eric@engestrom.ch>
      Cc: mesa-stable
      Part-of: <!5462>
      63b81c99
  20. 02 Jun, 2020 1 commit
  21. 01 Jun, 2020 5 commits
  22. 23 May, 2020 1 commit
  23. 21 May, 2020 1 commit
  24. 15 May, 2020 1 commit
  25. 24 Apr, 2020 1 commit