Skip to content

Add OS distribution, C/C++ compiler and linker version to benchmark results#124

Open
Calinou wants to merge 1 commit intogodotengine:mainfrom
Calinou:add-os-compiler-linker
Open

Add OS distribution, C/C++ compiler and linker version to benchmark results#124
Calinou wants to merge 1 commit intogodotengine:mainfrom
Calinou:add-os-compiler-linker

Conversation

@Calinou
Copy link
Member

@Calinou Calinou commented Oct 3, 2025

This information is now stored for new benchmarks.

Note that it's calculated at run-time using the same compiler/linker as used in production, since this information isn't stored at compile-time in the binary. (godotengine/godot#98845 implements this feature.)

Currently, existing benchmarks will display Linux for the OS and (unknown) for the compiler/linker. I could modify the existing result files to update the distro/compiler/linker information based on the run dates (to roughly match the latest Fedora version available at the time, as well as GCC/LD from its repositories). That said, doing so would be an approximation so it may be best to leave things as-is, especially since I don't remember the exact dates at which I upgraded the server.

Preview

Screenshot_20251003_164730

…esults

This information is now stored for new benchmarks.

Note that it's calculated at run-time using the same compiler/linker
as used in production, since this information isn't stored at compile-time
in the binary.
Copy link
Member

@Ivorforce Ivorforce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given that the information how the binary is built is most available in the build script, I'd like to propose passing it to the engine somehow from there. It might be possible to ask SCons to hand this information out.
While it's less convenient, it's also more correct, since the .gd file doesn't really know how the engine that's currently running was built (unless we do add an API for it).

@Calinou
Copy link
Member Author

Calinou commented Oct 7, 2025

Given that the information how the binary is built is most available in the build script, I'd like to propose passing it to the engine somehow from there. It might be possible to ask SCons to hand this information out. While it's less convenient, it's also more correct, since the .gd file doesn't really know how the engine that's currently running was built (unless we do add an API for it).

This is what godotengine/godot#98845 implements, but I don't know when it'll be merged.

What I could do in the meantime is make run-benchmarks.sh write a file next to the binary that the benchmarks project reads. That said, if godotengine/godot#98845 is going to be merged soon, it might not be worth the trouble.

@Ivorforce
Copy link
Member

Ivorforce commented Oct 30, 2025

Your second suggestion is what I meant (pass the information explicitly from run-benchmarks.sh).
But I suppose it also doesn't matter that much since the benchmark join script is only executed on the benchmarking server anyway, where the information should be correct.

Copy link
Member

@Ivorforce Ivorforce left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll leave it up to you. As mentioned, the scripts are highly tailored to the benchmarking server anyway, so as long as it's correct, it should be fine.

Code looks good to me.

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

Projects

None yet

2 participants