Game PC: Difference between revisions

From Lundman Wiki
mNo edit summary
mNo edit summary
Line 1: Line 1:
== Gamer PC ==
=== Clomps-irc ===


Built a small Gamer PC with the kids, so I guess the main goal was small, quiet. I am also pretty "burnt out" on the last PC we had with all the heating problems. Anyway, this is what I learnt:
A separate binary is compiled for the IRC Bot version of clomps. Clomps-irc connects to an IRC server(s), and sits in specified channel(s) to look for "New Release" notifications (or "Completion" messages depending on style).


=== Hardware ===
To define an ircbot to listen to an irc server / irc channel, add the following line:


ASUS F1A75-I Deluxe, Mini-ITX motherboard.
IRC | server=irc.server.com  | port=6667 | pass=ircpass | nick=clomps  | user=clomps@fxp.one | ssl=yes | channel=#bots ''|channel=#another''
AMD A8-3870k CPU (4-core 3GHz CPU, with '''integrated''' Radeon HD6550D)
IRC | server=irc.server2.com | port=6667 | pass=ircpass | nick=clomps2 | user=clomps@fxp.one | ssl=no  | channel=#spew
Corsair memory (2x 4GB sticks at 1866, total 8GB)
JMAX JX-FX500B Mustardseed Mini-ITX case (400W SFX PSU, 12v1 17A, 12v2 16A)
SSD for Windows 7x64
1TB Samsung Green HDD for Games
Radeon HD 6670 PCIx '''discrete''' video card (Dual Graphics / CrossFireX - more on that below)


Optionals are ''port, pass, ssl''. Should we add fishkey?


=== A8-HD6550D ===
You need to defines the sites with SITE lines, for each one you intend to use. In this case, do '''not''' have a '''DIR=''' section.


The initial build was easy, and setup straight forward. You could actually stop here, and just use the Integrated A8-HD6550D graphics for some gaming.
SITE|NAME=ASite1|USESKIP=1|INCTEST=%s-(INCOMPLETE)|NUKETEST=NUKED-%s
SITE|NAME=glftpdsite|USESKIP=1|INCTEST=%s-(INCOMPLETE)|NUKETEST=NUKED-%s


Minecraft-1.2.3: Runs beautifully, all defaults
Modern Warfare 3: Runs beautifully, all defaults
Skyrim: Playable, game picked "High Quality", I would probably lower it if I were to play
NeedForSpeed-TheRun: game looks very nice, but seem to run at half game speed. Audio cuts out at times. Playable, but not ideal.


Add a section:


Did a whole heap of research here to see if I had enough power to run a Radeon HD6670 card, at first on its own, then in CrossFireX (takes more power). Some WWW pages said (33A, 500W!) and others 293W (At least 6A on 12v). So quite conflicting. Luckily the JMAX case had 2 rails for 12V, one goes into the motherboard, and the 2nd to the discrete HD6670 card. Still, why not try:
TRADE | NICK=(?i)thebot | MATCH=\[TV\] New Release: <.*?> (.*) | SRCSITE=ASite1 | SRCDIR=/tv | DSTSITE=glftpdsite | DSTDIR=/tv | ACCEPT=*simpsons* | REJECT=*FINSUB*


'''NICK=''' Is a Regular Expression (RE) match on the nick name. Clomps will ignore other nicks. Here "(?i)" is the PCRE for "case-insensitive", matching on nick "thebot".
'''MATCH''' is Regular Expression to match a release on. This does;


=== Radeon HD6670 ===
* Match only on section "TV" (Since RE started with "[TV]")
* Match on new release message ("New Release", which could also be "Completed" or similar messages), to differentiate to "New racer, New SFV, or Halfway-through announces).
* Match and parse out the release name, ie "(.*)" and place it in "${releasename}". The part that is in parenthesis. This would unfortunately have to be tuned for each ircbot's output.
* If "${releasename}" passes the ACCEPT and REJECT rules, in this case "*simpsons* and *FINSUB*;


I could not get "Dual Graphics" to work initially (CrossFireX) so I just tested the HD6670 card on its own. With monitor attached to the HD6670 (discrete) card, I tried out the games again.
If you need to use "|" in your regex, enclose the whole "MATCH=re" in quotes
TRADE|NICK=Test|"MATCH=.*|New Release|.* (.*?)"|SRC...


  NFS-TheRun: Considerably better, it now became apparent that it was running at half speed before, as it is very fast, very smooth to play. No audio drop-outs.  
If you wish to do groupings, like "(cat|dog)" use the non-capturing (). ie,
  (?:cat|dog)?
which will match either "cat", or "dog".


You can hear the fan on the HD6670 when gaming, but it is not bad. When not gaming, the PC is silent.
Specify '''REQUEUE''' if you wish FXP.One to continue queueing the release until completed. (If incoming to src is slower than src->dst link).
TRADE | NICK=(?i)thebot | MATCH=\[TV\] New Release: <.*?> (.*) | SRCSITE=ASite1 | SRCDIR=/tv | DSTSITE=glftpdsite | DSTDIR=/tv | ACCEPT=*simpsons* | REJECT=*FINSUB* | REQUEUE


Attempting Dual Graphics.




=== A8-HD6550D Dual Graphics ===
The release is then moved from SRCSITE:/SRCDIR/${releasename} -> DSTSITE:/DSTDIR/${releasename}


So there were some fiddling needed here. If I put the monitor on the discrete HD6670 card, I got no signal, or, depending on BIOS setting, I only get the HD6670 card and no integrated HD6550D card.  
Should we add SESSIONS=<int> as well? So clomps-irc can be told to limit the number of sessions? Some cases you only ever want to use SESSIONS=1, so all new releases are added to the end of currently active transfers.


Main GFX-
If we allow SESSIONS=2 or more, should we add balancing? round-robin? least-entries-in-queue?
BIOS Setting    Monitor-Attached    Outcome
---------------------------------------------
PCIx            HD6670              Only sees HD6670
PCIx            HD6550D              No signal
iGXP            HD6670              No signal (Should be this one)
iGXP            HD6550D              Success


But, '''this was a lie'''. More on that in a bit. Finally the [AMD Catalyst Software Suite] (V12.1) added the "AMD Dual Graphics" options to the "Performance Tab". It was odd that the monitor is connected to the A8-HD6550D output, but it did at least work. I fired up NFS again


NFS-TheRun: Running full speed, but with pretty bad slow downs when more cars are around. Some audio drop-outs.
If all you care about is moving Completed releases, you should do the IRC match on the "Completed" message. This means you will wait until it is finished before it starts to move it. So, no racing.


Since I was mainly using the integrated HD6550D, with extra boost from the HD6670 card, it sort of makes sense. It did a little better than just the HD6550D, but not as good as the discrete HD6670 can do on its own.
However, if you want to move it as fast as possible, and participate in the racing, you should match on the "New Release" message. You probably also want to use REQUEUE keyword to make it retry until complete. However, if the source uploading is slower than the clomps trading connection, it might give up in the middle of a release (and leave an incomplete, if nobody else is racing), if this is an issue, it is recommended that you set clomps to match and trigger on '''both''' "New Release" '''and''' "Completed" messages. This ensures one final queuing to complete the release.
 
The AMD Catalyst Software Suite program lets you create profiles for games, where you can disable AMD Dual Graphics for a specific game. But the problem here is, when I do that for NFS, it will only use the integrated HD6550D card, which does not quite cut it. We want to use the HD6670 card as minimum after all, so...
 
 
=== HD6670 Dual Graphics ===
 
In trying to solve this, I noticed the driver version for integrated HD6550D (in Device Manager) was a lower version than the discrete HD6670 card I just added. So you really have to uninstall the old card's drivers after all. I clicked Uninstall on the HD6550D, (with 'delete files', or they just got picked again). '''Then''' I installed the [AMD Catalyst Software Suite] drivers again. Now device manager confirmed both cards with identical driver version.
 
Set BIOS to iGXP (otherwise the integrated card gets disabled). Attach monitor to discrete HD6670 card. Making sure to unplug the integrated video connectors. Boot.
 
There is no BIOS prompt (that goes to the integrated feed) so you are booting 'blind'. But once it boots to the Windows login screen, the discrete HD6670 video pops up. Bonus, the AMD Dual Graphics option is now available. Hurrah!
 
NFS-TheRun: Runs beautifully again, no slow downs or audio drop-outs.
 
It is '''at least''' as good as just using the discrete HD6670 card. Probably faster, but I would need to run actual benchmarking to confirm that.
 
Now if I were to disable AMD Dual Graphics for a game, it would then use just the discrete HD6670 card, which is what we want. I have not found any reason to do so. (Since NFS runs better than ever). Skyrim changed to "Ultra High" settings and it '''flies'''. Mass Effect 3 = gorgeous.
 
PSU is still holding on, the system is at 23C when idle, and 45C when gaming.
 
 
 
 
Final problem;
 
After enabling AMD Dual Graphics from the HD6670 card, the machine no longer completes [Shutdown]. That is to say, Windows cleans up and blanks the screen, but at the point where power should be cut, it just sits there. Holding 6s on the power buttons turns it off fine. I can live with that.

Revision as of 02:39, 12 March 2012

Clomps-irc

A separate binary is compiled for the IRC Bot version of clomps. Clomps-irc connects to an IRC server(s), and sits in specified channel(s) to look for "New Release" notifications (or "Completion" messages depending on style).

To define an ircbot to listen to an irc server / irc channel, add the following line:

IRC | server=irc.server.com  | port=6667 | pass=ircpass | nick=clomps  | user=clomps@fxp.one | ssl=yes | channel=#bots |channel=#another
IRC | server=irc.server2.com | port=6667 | pass=ircpass | nick=clomps2 | user=clomps@fxp.one | ssl=no  | channel=#spew

Optionals are port, pass, ssl. Should we add fishkey?

You need to defines the sites with SITE lines, for each one you intend to use. In this case, do not have a DIR= section.

SITE|NAME=ASite1|USESKIP=1|INCTEST=%s-(INCOMPLETE)|NUKETEST=NUKED-%s
SITE|NAME=glftpdsite|USESKIP=1|INCTEST=%s-(INCOMPLETE)|NUKETEST=NUKED-%s


Add a section:

TRADE | NICK=(?i)thebot | MATCH=\[TV\] New Release: <.*?> (.*) | SRCSITE=ASite1 | SRCDIR=/tv | DSTSITE=glftpdsite | DSTDIR=/tv | ACCEPT=*simpsons* | REJECT=*FINSUB* 

NICK= Is a Regular Expression (RE) match on the nick name. Clomps will ignore other nicks. Here "(?i)" is the PCRE for "case-insensitive", matching on nick "thebot". MATCH is Regular Expression to match a release on. This does;

  • Match only on section "TV" (Since RE started with "[TV]")
  • Match on new release message ("New Release", which could also be "Completed" or similar messages), to differentiate to "New racer, New SFV, or Halfway-through announces).
  • Match and parse out the release name, ie "(.*)" and place it in "${releasename}". The part that is in parenthesis. This would unfortunately have to be tuned for each ircbot's output.
  • If "${releasename}" passes the ACCEPT and REJECT rules, in this case "*simpsons* and *FINSUB*;

If you need to use "|" in your regex, enclose the whole "MATCH=re" in quotes

TRADE|NICK=Test|"MATCH=.*|New Release|.* (.*?)"|SRC...

If you wish to do groupings, like "(cat|dog)" use the non-capturing (). ie,

(?:cat|dog)?

which will match either "cat", or "dog".

Specify REQUEUE if you wish FXP.One to continue queueing the release until completed. (If incoming to src is slower than src->dst link).

TRADE | NICK=(?i)thebot | MATCH=\[TV\] New Release: <.*?> (.*) | SRCSITE=ASite1 | SRCDIR=/tv | DSTSITE=glftpdsite | DSTDIR=/tv | ACCEPT=*simpsons* | REJECT=*FINSUB* | REQUEUE


The release is then moved from SRCSITE:/SRCDIR/${releasename} -> DSTSITE:/DSTDIR/${releasename}

Should we add SESSIONS=<int> as well? So clomps-irc can be told to limit the number of sessions? Some cases you only ever want to use SESSIONS=1, so all new releases are added to the end of currently active transfers.

If we allow SESSIONS=2 or more, should we add balancing? round-robin? least-entries-in-queue?


If all you care about is moving Completed releases, you should do the IRC match on the "Completed" message. This means you will wait until it is finished before it starts to move it. So, no racing.

However, if you want to move it as fast as possible, and participate in the racing, you should match on the "New Release" message. You probably also want to use REQUEUE keyword to make it retry until complete. However, if the source uploading is slower than the clomps trading connection, it might give up in the middle of a release (and leave an incomplete, if nobody else is racing), if this is an issue, it is recommended that you set clomps to match and trigger on both "New Release" and "Completed" messages. This ensures one final queuing to complete the release.