Official Daily Builds vs Additional Snapshot Builds?

Ask for help with ScummVM problems

Moderator: ScummVM Team

Post Reply
EstelRandir
Posts: 24
Joined: Thu Mar 16, 2017 6:02 pm

Official Daily Builds vs Additional Snapshot Builds?

Post by EstelRandir »

It was commented recently that the Windows snapshots from the Downloads page are built separately from the Buildbot ones and have optimizations enabled for the build. I am curious about what is the difference between the two. What kinds of optimizations exactly are we talking about? Do these optimizations ultimately get passed on to the official releases?

I compared the latest daily build vs the latest Windows snapshot to see if it resolved a sound emulation issue I was having. There was a substantial improvement in the snapshot vs the daily build. So there are differences.
User avatar
rootfather
ScummVM Team Member
Posts: 96
Joined: Tue Mar 31, 2015 11:59 am
Location: Germany
Contact:

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by rootfather »

I have to admit that the wording really is not optimal here, and there surely are ways to better distinguish between the different version.

For all platforms, we provide what we call "daily builds" via our automated build system. Usually, these builds are not optimized (in terms of compiler optimization flags) since their main purpose is for debugging issues. These builds are accessible via https://buildbot.scummvm.org/#/snapshots.

The "Windows snapshots" are additional special builds provided by myself using the same toolchain (compiler, libraries, settings, build environment...) that's used for building the final Windows releases. So for Windows users, these additional snapshots are as close to upcoming "official" ScummVM release as possible.

I already have an idea on how to update the description of the snapshot builds. I'll update the website shortly and ask for feedback here again. So far, thanks for your input!
User avatar
Praetorian
ScummVM Developer
Posts: 385
Joined: Tue May 08, 2007 8:54 am
Location: Greece
Contact:

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by Praetorian »

rootfather wrote: Sun Jun 13, 2021 7:04 am I have to admit that the wording really is not optimal here, and there surely are ways to better distinguish between the different version.

For all platforms, we provide what we call "daily builds" via our automated build system. Usually, these builds are not optimized (in terms of compiler optimization flags) since their main purpose is for debugging issues. These builds are accessible via https://buildbot.scummvm.org/#/snapshots.

The "Windows snapshots" are additional special builds provided by myself using the same toolchain (compiler, libraries, settings, build environment...) that's used for building the final Windows releases. So for Windows users, these additional snapshots are as close to upcoming "official" ScummVM release as possible.

I already have an idea on how to update the description of the snapshot builds. I'll update the website shortly and ask for feedback here again. So far, thanks for your input!
rootfather, could you clarify if your snapshots are built with --enable-release too (or just --enable-optimizations), so that the assert checks are disabled?
User avatar
rootfather
ScummVM Team Member
Posts: 96
Joined: Tue Mar 31, 2015 11:59 am
Location: Germany
Contact:

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by rootfather »

Praetorian wrote: Sun Jun 13, 2021 8:00 am rootfather, could you clarify if your snapshots are built with --enable-release too (or just --enable-optimizations), so that the assert checks are disabled?
Sure!

The snapshots are built with the following config flags:

Code: Select all

	--enable-all-engines
	--enable-optimizations
	--enable-tts
	--enable-updates
	--enable-opl2lpt
	--enable-discord
	--disable-eventrecorder
	--disable-debug
Additionally, I run the

Code: Select all

strip
command afterwards to reduce the file size. Honestly, I never really checked about the asset checks and stuff. In case you recommend different configure flags here, just let me know :-)
User avatar
Praetorian
ScummVM Developer
Posts: 385
Joined: Tue May 08, 2007 8:54 am
Location: Greece
Contact:

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by Praetorian »

rootfather wrote: Sun Jun 13, 2021 8:06 am Sure!

The snapshots are built with the following config flags:

Code: Select all

	--enable-all-engines
	--enable-optimizations
	--enable-tts
	--enable-updates
	--enable-opl2lpt
	--enable-discord
	--disable-eventrecorder
	--disable-debug
Wouldn't it make sense to use the --enable-release option explicitly too? So as to have NDEBUG defined and skip the assert checks.
Edit: Although, I might be wrong on that it actually defines NDEBUG. There was a recent-ish PR where such issues were discussed about these options.
Edit 2: Right, it is still open:
https://github.com/scummvm/scummvm/pull/2486
User avatar
rootfather
ScummVM Team Member
Posts: 96
Joined: Tue Mar 31, 2015 11:59 am
Location: Germany
Contact:

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by rootfather »

Sure, I could adapt to the configflags I use for the actual releases:

Code: Select all

	--enable-release
	--enable-tts
	--enable-opl2lpt
	--enable-discord
	--disable-eventrecorder
	--disable-debug
I wonder if (especially for the release builds) "--disable-debug" is necessary or implicitly declared by "--enable-release".

EDIT: Oh, right, I totally forgot about the ongoing discussion on GitHub. :D
User avatar
criezy
ScummVM Developer
Posts: 822
Joined: Sat Sep 23, 2006 10:41 am
Location: West Sussex, UK

Re: Official Daily Builds vs Additional Snapshot Builds?

Post by criezy »

rootfather wrote: Sun Jun 13, 2021 9:13 am I wonder if (especially for the release builds) "--disable-debug" is necessary or implicitly declared by "--enable-release".
That is indeed no longer needed: https://github.com/scummvm/scummvm/commit/6f1a119263
That being said, I am not sure it is a good idea to use --enable-release for snapshot builds. This would for example add a warning about the game being unsupported for games that are in testing phase.
Post Reply