Pages: 1
  Print  
Author Topic: Benchmark mode  (Read 25077 times)
Offline (Male) retep998
Posted on: May 14, 2010, 02:46:50 pm

Member
Location: Where else?
Joined: Jan 2010
Posts: 248
MSN Messenger - retep998@charter.net AOL Instant Messenger - retep998 Yahoo Instant Messenger - retep998
View Profile Email
Since processors have lots of fancy extensions like SSE and 3DNow! which can really speed code when optimized to use them, I have the following suggestion:
Add a benchmark mode to enigma where gcc will compile the game to make as much use of the extensions on your processor as it can.
This will allow the developer to see just how fast their code can go, and if they have a shitty dev machine, compensate for the lack of power so they can at least experience their own game closer to how the hardcore gamers would.
Just a suggestion.
Logged
Offline (Unknown gender) luiscubal
Reply #1 Posted on: May 14, 2010, 03:15:18 pm
Member
Joined: Jun 2009
Posts: 452

View Profile Email
SSE is available ever since Pentium III. In 1999. Is anyone lacking these instructions nowadays?
Sure, SSE2 and 3 are more recent and, therefore, less widely available, but I still think ENIGMA could safely enable the first generation SSE by default.

As for 3DNow! and newer SSE, I think it's just a GCC flag, so I don't think Josh would have too much trouble implementing them.
(make ENIGMA enable_3dnow=true, perhaps?). That is, if GCC supports 3DNow!.
Logged
Offline (Male) Josh @ Dreamland
Reply #2 Posted on: May 14, 2010, 04:20:04 pm

Prince of all Goldfish
Developer
Location: Pittsburgh, PA, USA
Joined: Feb 2008
Posts: 2950

View Profile Email
At first it crossed me as a good idea, but I see a few problems.
I'm not sure about GCC's support for 3DNow!, but there's a problem with having ENIGMA make specific choices like that for the user; the user isn't the end user. Or rather, there's an end, end user.  Offering an assortment of optimization flags is by all means a good idea and relatively effortless, yes, but a mode to determine them should only be used as a diagnostic tool for the benefit of the user; ENIGMA shouldn't act on the results of it.

Basically, it should be up to the user to decide that the end users must have X, Y, and Z extension. Not every ENIGMA game is going to have the dependencies of even typical well-endowed games like Portal, for instance. Portal requires pixel shader 1.0; it works on three computers of the seven in this house. But most GM games are more closely akin to Click the Clown, and so shouldn't be set to require more modern extensions just because the user (but not necessarily end user) has a $400 card.

And yes, that's a gross exaggeration, but we're talking about a user base whose cards don't support post-WWII extensions. Okay, another exaggeration. But seriously, integrated Intel chips don't support extensions from 1985. Just not a great idea to put a button for "Use my PC's extensions as the minimum requirement" at the hands of people with more money than wit... that button would basically never be a good idea.

Anyway, as a diagnostic tool, I'll consider such a test program and settings for restricting, possibly based somehow on the results.
Logged
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble
"I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
Offline (Male) retep998
Reply #3 Posted on: May 14, 2010, 05:12:32 pm

Member
Location: Where else?
Joined: Jan 2010
Posts: 248
MSN Messenger - retep998@charter.net AOL Instant Messenger - retep998 Yahoo Instant Messenger - retep998
View Profile Email
Of course it'll be merely for debugging purposes.
It's called benchmark mode, which is intended for making stuff as fast as possible to test stuff, not to actually release it like that.
Then again, a person could release multiple exe versions, some with only the basics and some with the latest and greatest extensions to hit the market.
But I was primarily thinking of this for testing purposes so worries about the pathetic end user don't apply.
Logged
Pages: 1
  Print