Maintenance for the week of January 20:
• PC/Mac: No maintenance – January 20
• NA megaservers for maintenance – January 22, 4:00AM EST (9:00 UTC) - 9:00AM EST (14:00 UTC)
• EU megaservers for maintenance – January 22, 9:00 UTC (4:00AM EST) - 14:00 UTC (9:00AM EST)

CPU & GPU.

Yarrx
Yarrx
Hey guys, I wanted to discuss about my gaming performance with you.
Here are my specs:
- AMD Radeon HD 7800 Series
- i7 4770k @3.40GHz (8 CPUs)
- 8GB RAM

I was wondering, I get like 50-60 fps on medium-small sized fights in PvP, for some reason I think I should have a higher fps, perhaps you could help me out here and tell me what to do?
Thanks.
Edited by Yarrx on April 9, 2014 10:52AM
  • Yarrx
    Yarrx
    Added some details.
  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    Open up task manager, set it to 'Always on top' (in menu options), go to Performance -> CPU, right click the graph and select to see a graph per processor. Then double click the inside of the window to hide the nonsense, and resize it to fit on your screen in top right hand corner. Launch Elder Scrolls Online, and check out the usage during PVP.

    What you will very likely see if that one CPU core is loaded way more heavily than the rest. This is a game engine fault. This causes slowness talking to GPU, which slows the game down.
  • Seroczynski
    Seroczynski
    ✭✭✭
    What you will very likely see if that one CPU core is loaded way more heavily than the rest. This is a game engine fault. This causes slowness talking to GPU, which slows the game down.
    Wouldn't unparking your CPU cores improve this?

    “To alcohol! The cause of, and solution to, all of life's problems.” ― Homer J. Simpson
  • Yarrx
    Yarrx
    http://imgur.com/sYy0fRm ((ESO wasn't running))
    Is this the one you were talking about?
    Anyways, I'll go and check it IG right now, how can I 'split' it into different cores so I can get a higher fps?
    Edited by Yarrx on April 9, 2014 12:04PM
  • Yarrx
    Yarrx
    Updated with a pic.
  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    Yarrx wrote: »
    http://imgur.com/sYy0fRm ((ESO wasn't running))
    Is this the one you were talking about?
    Anyways, I'll go and check it IG right now, how can I 'split' it into different cores so I can get a higher fps?

    Yes, that's the one. You can't change which cores run which part of the engine, that's down to Zenimax developers optimizing the engine.
  • raglau
    raglau
    ✭✭✭✭✭
    You cannot. I did a deep dive on this game with Perfmon and found some interesting stuff out:

    30-32 threads are spawned
    2 threads do any real work - threads 0 (75% of the work) and 7 (20% of the work). The other 30 odd do very little and comprise the remaining 5% work effort, if that
    Thread 7 often waits for thread 0
    Thread 0 often waits for user input, this must be the UI etc
    The eso.exe process and all threads spawn at the correct priorities and their priorities rise correctly when the app is in the foreground
    There are no memory leaks or other weaknesses in the app. It is essentially well written and works correctly in terms of MS standards for processes etc.

    From this, I deduce the game was optimised for dual core CPU. Their thinking was probably that the Windows Executive (schedules threads in a round-robin way considering workload) would load up Core 1 with Thread 0, Thread 7 would go to Core 2 and the remaining threads (which do very little) would be evenly spread about the two cores. Sound thinking, for a system built a few years back.

    So perhaps dev started quite some time ago and they never updated it to take account of more modern CPUs.

    Just a theory, but there is evidence to back it up.
    Yarrx wrote: »
    http://imgur.com/sYy0fRm ((ESO wasn't running))
    Is this the one you were talking about?
    Anyways, I'll go and check it IG right now, how can I 'split' it into different cores so I can get a higher fps?

    Edited by raglau on April 9, 2014 1:09PM
  • Yarrx
    Yarrx
    Great great information squicker and Gossi, too unfortunate it's up to them and not to us. Kinda sucks to roam around and get lower fps although you have a good computer build.
    BTW, what's a 'round-robin' way?
    Edited by Yarrx on April 9, 2014 1:20PM
  • raglau
    raglau
    ✭✭✭✭✭
    Oh sorry, round-robin is literally to put one thread on core 1, the next on core 2, the next on 3, the next on 4 and then back to 0 (for quad core). It's a method of load-balancing in that, all things being equal, all cores should have the same amount of threads.

    Now, the Windows Executive (thread scheduler) knows how busy each core is, so it will in fact move threads about outside of that simple model if it has to. But basically, in a two core system, it would probably have been the case that thread 0 (the busy one) ended up on Core 1 and thread 7 and all the other very lights ones, on Core 2. Also Windows itself is of course always doing something, as are the things you always have running like anti-virus etc, so basically Windows will try to balance these threads as best it can, starting with round-robin as it's default position.

    I personally don't get any issues and I have Core i7 with 4 real cores, but I was very interested to see only one core was doing any real work, which is when I thought I'd take a deeper look at it.
    Yarrx wrote: »
    Great great information squicker and Gossi, too unfortunate it's up to them and not to us. Kinda suck to roam around and get low fps.
    BTW, what's a 'round-robin' way?

    Edited by raglau on April 9, 2014 1:27PM
  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    You can increase your FPS by increasing your clock speed through overclocking, basically. If you have a higher power CPU, you will get less bottleneck.

    Zenimax Online Studio was setup almost 7 years ago, and this is their first game. So you can tell how long they've been developing, hence why 'Low' graphics mode supports really, really old systems.

    They could definitely optimise better, however it's a massive engineering task. To put it in perspective, you could move the networking code to run on other threads (and so cores) -- however if you need to interact with any other thread of the engine (e.g. to draw graphics) you start to bottleneck. EVERYTHING has to run well, or you can't render a graphics frame. If you want to achieve 60fps you have to have a frame rendered every 16ms, and that's a huge technical challenge.

    I think, to be honest, because the game has now launched it would be very risky to try to rewrite core parts of the engine (think of all the new bugs).
  • raglau
    raglau
    ✭✭✭✭✭
    I think, to be honest, because the game has now launched it would be very risky to try to rewrite core parts of the engine (think of all the new bugs).

    Yes, it will not happen. There are many ways to break multithreaded code and the risk would be huge to start redoing it on a live game that does essentially work.

    I personally get 120FPS - now I have removed the 100FPS cap in the ini file - indoors and 70 outdoors. I have a 3770K @ 4.4GHz and a GTX780 EVGA SC ACX. But it's quite apparent only one core is doing any real work, so the game is essentially capped by the clockspeed of that core (ie CPU clock speed).

  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    Do you PVP with large fort assaults, squicker?
  • raglau
    raglau
    ✭✭✭✭✭
    Ah no. And there is a long conversation re this very point in another forum thread.

    I am told that most certainly I would not see anywhere near that frame rate if I did do PvP!

    Now, I tried to get into PvP as I wanted to run some Perfmon captures on that to try to see why it's performing so badly. But it kept crashing and when I tried to get back in, it sat on the Loading screen forever. When I finally got back in, I teleported my precious character out of Cyrodiil. After reading all the empty bank and other glitches here, I was concerned it may corrupt my char.

    So, once these guys have stabilised the game, I shall try again...

    What results do you get and on what kit?
    Do you PVP with large fort assaults, squicker?

  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    I did testing against PVP. It takes a serious performance hit. If you run towards a fort under a big siege (100 or so players) I was seeing regular, sustained 15fps rendering as an average, down to 10fps as a low. I had GPU monitoring running, and found the GPU usage would drop down to below 40% during these moments.
  • raglau
    raglau
    ✭✭✭✭✭
    What was the CPU doing at those times?
    I did testing against PVP. It takes a serious performance hit. If you run towards a fort under a big siege (100 or so players) I was seeing regular, sustained 15fps rendering as an average, down to 10fps as a low. I had GPU monitoring running, and found the GPU usage would drop down to below 40% during these moments.

  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    You can guess. Almost everything concentrated on one core.
  • raglau
    raglau
    ✭✭✭✭✭
    Yeah, so basically that core (running Thread 0 no doubt) topped out, preventing the timely sending of geometry data to the GPU. So the GPU sat about twiddling its thumbs, reminding you how expensive it was but how little it was working to earn its keep ;-)

    The last game I played that behaved liked this is Rift and they actually ended up doing some optimisation to get away from the problem of their pseudo-multithreaded app (same thing, 30 odd threads, one main thread overloading one core) because the player base was quite frustrated.

    So basically, of you play PvE, lovely experience, you go into PvP, slideshow...
    You can guess. Almost everything concentrated on one core.

  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    Pretty much. I mean, in my case I have a fairly crap CPU (AMD 6300 overclocked to 4ghz, 6 core). I suppose crap could be called budget. So I'm not too worried about myself as I know I should just get an Intel i7 CPU. But I also know a significant portion of the player base won't understand any of that and will just struggle with performance in PVP.

    But whatever. You can actually prove the issues easily enough by going to PVP, finding a large fort battle and stand near it, then tilt the camera to display just the sky. FPS will be terrible at that moment still. Heh.
  • raglau
    raglau
    ✭✭✭✭✭
    Because of the AMD architecture 2 'cores' sharing resource like FPU, cache etc in a module, you might get better performance if you play with CPU affinity for eso.exe. The intent would be to try to make sure that the threads get scheduled on separate modules, not just cores. So you might set affinity at 0,2,4 and 6. Or disable cores 1,3,5,7 in the BIOS. Some people in Rift reported much better performance when I suggested this to them on Bulldozer\Piledriver as it prevents contention for FPU, cache and memory bus etc.

    What OS are you using also? Win7 there is a hotfix for Bulldozer and Piledriver, it's natively supported in Win8.x (basically better scheduling once the CPU is recognised).

    You may have already tested this, so sorry if so.
    Pretty much. I mean, in my case I have a fairly crap CPU (AMD 6300 overclocked to 4ghz, 6 core). .

    Edited by raglau on April 9, 2014 2:06PM
  • GossiTheDog
    GossiTheDog
    ✭✭✭✭✭
    Windows 8.1 Update 1. And no need to apologise :)

    Like I say, I'm not too worried myself. I'm just curious from a technical point of view.
  • Yarrx
    Yarrx
    I guess we'll have to wait for the engineers to do their trick, all we gotta do is try to improve our fps a little bit on the meanwhile, eh.
Sign In or Register to comment.