Rockbox Technical Forums

Third Party => Unsupported Builds => Topic started by: G4Oblivion on April 25, 2016, 07:17:55 PM

Title: GGC5 ARM Builds and Codec Benchmarks
Post by: G4Oblivion on April 25, 2016, 07:17:55 PM
Summary:
This topic is mainly meant as an info dump for developers. Interested users can test these builds with daily use, benchmark codecs on their devices (http://www.rockbox.org/wiki/CodecPerformanceComparison#Requirements) and report the results.
I have no plans on attempting to debug any issues related to the new toolchain or benchmarking further. Again, this topic is mostly meant as an info dump.

I've been using a custom GCC5 build on my Clip+ without issues for normal use. The only major regression so far is decoding APE files compressed with c3000 and lower compression.

The codec optimization patch simply changes all -O1 to -O2 for ARM. I did not benchmark other flags nor did I benchmark codecs that Rockbox doesn't provide sample files for.
libffmpegFLAC and libmad were tested at -O1, -Os, -O2 and -O3. libffmpegFLAC was changed from -O2 to -O3 along with libmad from -O1 to -O2 due to small gains.

I know little to nothing about GCC so I'm not sure if the multilibs changes need to be updated nor do I know if it's still necessary to be as aggressive with -fno-exceptions.

Builds:
  https://www.mediafire.com/folder/tdio0hpa4qixv/ARMGCC5 (https://www.mediafire.com/folder/tdio0hpa4qixv/ARMGCC5)

  All builds are based on 18fecd9 (https://github.com/Rockbox/rockbox/commit/18fecd9461cda3eb0bf65b9f00a77a9f2ff79689) and include test plugins.
  If your ARM device is not listed, you can post a request and I'll upload a build.

Decoder benchmarks (there's multiple files in the gists):
  Clip+ (AMSv2) GCC4.4 vs GCC5: https://gist.github.com/anonymous/5785e4ebd338aca26a8d1da0e0d7a094 (https://gist.github.com/anonymous/5785e4ebd338aca26a8d1da0e0d7a094)
  Clip+ (AMSv2) GCC4.4 vs GCC5 vs GCC5 w/ optimized codecs: https://gist.github.com/anonymous/6eb0bc382364415ec09c409b08ef4ef3 (https://gist.github.com/anonymous/6eb0bc382364415ec09c409b08ef4ef3)

Per codec optimization flag benchmarks on Clip+:
  APE Tests (https://gist.github.com/anonymous/6c38bc7eb6c7483e58f71d0ccf700e55)
  FLAC Tests (https://gist.github.com/anonymous/fe0828f288cdb73c1c2716911a772666)
  MP3 Tests (https://gist.github.com/anonymous/8c1e40f1b2e61bf76e6b5e34735f9e2b)

Patches:
  rockbox-multilibs-noexceptions.patch (https://gist.github.com/anonymous/d5b5515557b7f9fbdfbbb07c8b209abd)
  optimize-codecs.patch (https://gist.github.com/anonymous/97ca39252ee863ff2c05c08b681693aa)

Toolchain information:
  Using the Arch Linux arm-none-eabi toolchain:
      arm-none-eabi-newlib  2.4.0-1
      arm-none-eabi-binutils  2.26-1
      arm-none-eabi-gcc  5.3.0-1 w/ rockbox-multilibs-noexceptions.patch (https://gist.github.com/anonymous/d5b5515557b7f9fbdfbbb07c8b209abd) & GCC5-20160419 snapshot