Skip to content

Compiler performance, do we want to build the release with a specific compiler? #12

Description

@illwieckz

On the same hardware and operating system:

  • CPU: AMD FX 9590
    performance profile, 8 cores, 4.4GHz (a bit underclocked from stock 4.7GHz for stability), Piledriver architecture
  • RAM: 16 GB, 1600 MHz, DDR3
  • GPU: AMD R9 390X
    high performance profile, 44 compute units, 1050MHz, GCN2/Grenada XT architecture, PCIe 2.0
  • VRAM: 8GB, 1500 MHz, GDDR5
  • OS: Ubuntu 20.04.2 LTS “Focal Fossa” with Mesa radeonsi 21.0.3

I tested the /devmap plat23 ; delay 100f setviewpos 1893 1920 0 0 0 scene (a scene with many animated models) with 640×480 resolution and lowest preset to minimize GPU computation and r_vboVertexSkinning 0 to use the CPU code path to animate models and then stress test a lot the CPU.

I built the game with RelWithDebInfo build profile and ran the game with .nexe.

Here is the performance I get:

Compiler FPS Note
GCC 9.3.0 42 Ubuntu 20.04.2 default GCC
GCC 9.3.0 + LTO 46 Ubuntu 20.04.2 default GCC
GCC 10.3.0 10 Ubuntu 20.04.2 alternate GCC
GCC 10.3.0 + LTO 10 Ubuntu 20.04.2 alternate GCC
Clang 10.0.0 47 Ubuntu 20.04.2 default Clang
Clang 12.0.0 48 Ubuntu 20.04.2 alternate Clang
Clang 12.0.0 + LTO 49 Ubuntu 20.04.2 alternate Clang

Here are details for 20 second capture (1 line is the average FPS in a second) for those compilers, such line print is produced by setting LIBGL_SHOW_FPS=1 environment variable on Mesa:

GCC 9

libGL: FPS = 43.00
libGL: FPS = 42.00
libGL: FPS = 43.00
libGL: FPS = 42.00
libGL: FPS = 42.00
libGL: FPS = 42.29
libGL: FPS = 42.00
libGL: FPS = 42.29
libGL: FPS = 42.00
libGL: FPS = 42.29
libGL: FPS = 43.00
libGL: FPS = 42.29
libGL: FPS = 42.29
libGL: FPS = 43.00
libGL: FPS = 42.00
libGL: FPS = 42.00
libGL: FPS = 42.29
libGL: FPS = 43.00
libGL: FPS = 42.00
libGL: FPS = 42.00
libGL: FPS = 42.29

GCC 9 + LTO

libGL: FPS = 46.00
libGL: FPS = 46.00
libGL: FPS = 46.00
libGL: FPS = 46.00
libGL: FPS = 45.24
libGL: FPS = 46.23
libGL: FPS = 46.00
libGL: FPS = 45.00
libGL: FPS = 46.00
libGL: FPS = 45.24
libGL: FPS = 46.00
libGL: FPS = 45.00
libGL: FPS = 45.00
libGL: FPS = 46.00
libGL: FPS = 46.00
libGL: FPS = 45.24
libGL: FPS = 46.00
libGL: FPS = 45.24
libGL: FPS = 46.00
libGL: FPS = 46.00

GCC 10

libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 11.00
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 10.64
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.64
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 10.64

GCC 10 + LTO

libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 10.48
libGL: FPS = 10.82
libGL: FPS = 11.00
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.64
libGL: FPS = 10.82
libGL: FPS = 10.64
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.64
libGL: FPS = 10.82
libGL: FPS = 10.82
libGL: FPS = 10.82

Clang 10

libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.21
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 46.00
libGL: FPS = 47.00
libGL: FPS = 46.23
libGL: FPS = 46.23
libGL: FPS = 47.00
libGL: FPS = 46.23
libGL: FPS = 47.00
libGL: FPS = 47.00
libGL: FPS = 46.23
libGL: FPS = 47.00

Clang 12

libGL: FPS = 48.00
libGL: FPS = 49.00
libGL: FPS = 48.19
libGL: FPS = 48.19
libGL: FPS = 48.19
libGL: FPS = 48.19
libGL: FPS = 48.19
libGL: FPS = 48.19
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 47.00
libGL: FPS = 48.00
libGL: FPS = 47.21
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 48.00
libGL: FPS = 47.21

Clang 12 + LTO

libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 48.19
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 48.00
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 48.19
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 48.00
libGL: FPS = 49.00
libGL: FPS = 49.00
libGL: FPS = 48.00
libGL: FPS = 49.18
libGL: FPS = 49.00

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions