Access to variable number of cores according to game state on Xbox One

Discussion in 'Console Technology' started by hesido, May 31, 2013.

  1. hesido

    Regular

    Joined:
    Mar 28, 2004
    Messages:
    553
    Likes Received:
    85
    According to this:

    http://kotaku.com/the-five-possible-states-of-xbox-one-games-are-strangel-509597078

    ...Xbox One will have different game states. Programmers will have to be aware of which state your game is. That's absolutely vital for the game to react accordingly, most games will probably opt to pause the game when user switches to the dashboard etc.

    However, one thing caught my mind, that may be problematic to handle for games that cannot pause itself:
    In "Running mode" you have access to 6 cores, 90% of GPU.

    In "Constrained mode" you have access to 4 cores, and there's no user interaction, with variable amount of access to GPU resources (45% if game is visible, 10% if not)

    Most GPU tasks are scalable so I don't think it would be very hard to handle. But what puzzles me is losing cores. If the game is switched to 4 cores, what happens to the threads on the lost 2 cores? I'm guessing each of those 2 cores will be reduced from different 4 core set that share the L2 cache, so the threads aren't moved between different 4 core sets to avoid trashing the L2 caches.

    In any case, the programmer is only ever guaranteed 4 cores, those extra two cores will only be made use of when there's user interaction with the game. Doesn't this complicate things, and prevent "to the metal" approach that makes console programming more efficient than otherwise? Also, doesn't this cause programmers to depend on 4 cores more often than not, as 6 won't be guaranteed?

    Different game states will also be on PS4, but will there be vastly reduced cores and reduced GPU access?

    I probably don't know what I'm saying as the only programming language I'm familiar with is Javascript. But I'd be glad to hear from knowledgeable forum members.
     
  2. Rodéric

    Rodéric a.k.a. Ingenu
    Moderator Veteran

    Joined:
    Feb 6, 2002
    Messages:
    3,979
    Likes Received:
    844
    Location:
    Planet Earth.
    I'm not sure it's a problem, I'd guess that when the user doesn't interact with the game, all you have to keep running is the networking side of the game (if multiplayer).

    As for programming model, Cilk like scheduling (1 thread/core) is becoming standard, so I would expect either to have oversubscription for a while (keeping 6 threads running on 4 cores) or just putting two threads to pause.

    Not sure about the GPU, if it's just for compute instead of just graphics, it might lead to a few problems scaling its load, but then you could simply pause the game and be done with it. ^^

    I'm more curious about the impact of having two 4 cores things glued together and seemingly no shared L2/L3 for locks/semaphores...
    (Just curious, not saying it will be a problem at all.)
     
  3. (((interference)))

    Veteran

    Joined:
    Sep 10, 2009
    Messages:
    2,498
    Likes Received:
    70
    The games run in VMs, so the threads are all virtual threads and they just change the mapping of the six virtual threads from six physical cores to four physical cores, so each thread takes more time to execute but still runs in the background.
     
  4. hesido

    Regular

    Joined:
    Mar 28, 2004
    Messages:
    553
    Likes Received:
    85
    Thanks for the insight...

    I'm also wondering if there's such a game state on the PS4, where the number of available cores drop so you can do "other things" faster. Personally I'm not interested in those other things, I'm guessing/hoping 2 reserved cores + arm for background tasks should be enough, so that you always have 6 cores at your disposal no matter what...
     
  5. ERP

    ERP Moderator
    Moderator Veteran

    Joined:
    Feb 11, 2002
    Messages:
    3,669
    Likes Received:
    49
    Location:
    Redmond, WA
    Why do you care how much CPU resource a game has available to it when you can't interact with it?
     
  6. Strange

    Veteran

    Joined:
    May 16, 2007
    Messages:
    1,416
    Likes Received:
    38
    Location:
    Somewhere out there
    Because you may not be the only one interacting with it?

    Besides, how will games handle diminished resources? will they still function properly?
     
  7. tunafish

    Regular

    Joined:
    Aug 19, 2011
    Messages:
    540
    Likes Received:
    170
    I'd be very surprised if there were actually two background cores. I expect one to be disabled for yields, the other for bg tasks.

    If you are in the menu, significant parts of the game (notably, all rendering, audio) are not needed. Making this work properly is something that the devs do, and it's not hard. Just pause the rendering threads when the menu comes up.
     
  8. dagamer

    Veteran

    Joined:
    Dec 23, 2011
    Messages:
    1,261
    Likes Received:
    1
    Location:
    Houston, TX
    Are CPU cores really ever pegged at 100% in a game? Most of the time, games are GPU-bound because it's incredibly easy to throw more stuff at it, whether it be more characters on screen or more special effects. But CPU-bound stuff? A bit harder. Besides, if most games are locked at 30 or 60fps, that implies that there's still some wiggle room to play with.

    Also these statements are not the same: "The system will guarantee you at 90% CPU" is not the same as "You are limited to 90% CPU". It sounds like Microsoft is picking the latter, though it could be the former (and it's up to you to deal with what happens when the system steals 10% if you don't want to have laggy performance in your game).
     
  9. ERP

    ERP Moderator
    Moderator Veteran

    Joined:
    Feb 11, 2002
    Messages:
    3,669
    Likes Received:
    49
    Location:
    Redmond, WA
    It is extremely easy for a game to not use resources when it's in a "suspended" state.
    Continuing running a multiplayer server in the background would probably not be an issue for most games. Besides aren't all the servers supposed to be in the cloud?

    Even if as a dev you did nothing, which they wouldn't all that would likely happen is the frame rate would half, that might result in increased latency if you were acting as a server in multiplayer.

    MS will undoubtedly have a TCR, probably several that defines how you must handle the state, I just don't think it's a big deal. In fact virtualizing the CPU's means that for most games all you probably need to do is pause the game.
     
  10. jonabbey

    Regular

    Joined:
    Oct 12, 2006
    Messages:
    809
    Likes Received:
    1
    Location:
    Austin, TX
    I'd be astonished if Microsoft and Sony were touting 8 CPU cores on their APUs while planning on disabling one for yield.
     
  11. MrFox

    MrFox Deludedly Fantastic
    Legend Veteran

    Joined:
    Jan 7, 2012
    Messages:
    5,351
    Likes Received:
    3,843
    I can see the constrained mode being very useful for MMOs, it needs to maintain the network, continue the group chat or area chat to your headset, hear the game engine for sudden events... but at the same time, you might want to pop a browser full screen and search for a walkthrough or advancements stuff. The constrained mode would be perfect to give your browser as much CPU as possible, it's no big deal for the game if it doesn't have to render graphics. I'm not sure a single Jaguar core will be snappy and responsive with HTML5 and javascript bloat of the future, in the next 6 to 8 years.
     
  12. hesido

    Regular

    Joined:
    Mar 28, 2004
    Messages:
    553
    Likes Received:
    85
    This is Mark Rubin's comment on:
    http://www.eurogamer.net/articles/2...all-of-duty-ghosts-dev-infinity-ward-responds
    I know he is talking about changing OS specs and design guidelines but could this also be an extension of variable cpu resources during snap mode, for example?
     
  13. sebbbi

    Veteran

    Joined:
    Nov 14, 2007
    Messages:
    2,924
    Likes Received:
    5,288
    Location:
    Helsinki, Finland
    Actually, my experience is that most of the time games are slightly more CPU bound on current generation consoles. During the development process, a developer optimizes both the CPU and GPU sides until there's no clear bottleneck anymore (both resources are as close to 100% used as possible).

    Your experience is likely based on powerful (Intel) PC CPUs running current generation console game ports. The game logic limitations (physics, AI, animation, number of enemies, amount of destructibility, game area size, etc) of these games are designed for the 7 year old console CPUs. Of course your brand new Intel CPU crunches though this data set with ease. But at the same time you are likely running the game at double the frame rate (barely 30 fps console game vs 60+ fps on PC), 1080p (vs sub-HD), good anisotropic filtering and antialiasing and higher detail settings (more GPU side effects). So you need at least 5x-10x faster GPU to reach the frame rate and quality goals on PC. That's why the GPUs are the bottleneck on PC gaming. The demands are just that much higher for graphics quality.

    It's much harder to scale up game logic (add more enemies, more destruction/physics, better AI, larger levels) without spending a huge amount of extra time on content production, level design and balancing (the game difficulty cannot change). Of course if you have shared leaderboards / achievements on all platforms, it can be even harder to scale game logic (as game play must be comparable for scoring to be fair between platforms).
     
  14. Arwin

    Arwin Now Officially a Top 10 Poster
    Moderator Legend

    Joined:
    May 17, 2006
    Messages:
    17,678
    Likes Received:
    1,196
    Location:
    Maastricht, The Netherlands
    On the PC end, how much is the draw-call overhead stealing CPU resources? Because that factor may contribute to PC games sticking to current-gen console levels of CPU use, or even to resort to CU more often, also because of latency?
     
  15. Davros

    Legend

    Joined:
    Jun 7, 2004
    Messages:
    14,813
    Likes Received:
    2,229
    At a guess i'd say not much, devs are aware of the bottleneck and avoid it
     
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...