Search Unity

UWP Xbox One Poor Performance "Enhanced Access"

Discussion in 'Windows' started by bhagerman, Nov 16, 2017.

  1. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    6,364
    You can find all player log contents in Visual Studio "output" window.

    As for the required Xbox OS version - let me find out.

    EDIT: your Xbox needs to be on anything newer than 16299.1083.
     
    tntfoz likes this.
  2. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    95
    I'm just deploying Master app packages over at the moment. Still learning my way around VS 2017 :) I've found a player.log file using file explorer in the web portal, however I'll need to redeploy with DX12 in the build again first.

    Thanks for your help.
     
  3. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    95
    I'm on 16299.4055 :/
     
  4. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    155
    That's fine (4055 > 1083), so hopefully the logs will explain what's going on.
     
    tntfoz likes this.
  5. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    95
    Hi, thanks for your help. The problem was actually me not seeing the auto graphics api option for UWP builds in Unity. I thought adding DX12 to the standalone build was what was needed, but after deselecting the above option for UWP I was able to add DX12 and get it running on the Xbox.

    Still learning Unity!

    With DX12 the performance is a lot more stable thankfully. DX11 seemed to have major hitching which is eliminated by using DX12.

    Still got a lot of work to do to raise the framerate to acceptable levels, but I've got a good base to start from now!
     
  6. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    155
    Very cool. I was not measuring a big difference in our scenes between 11 and 12, but knowing that 12 is smoother I will set it as our main API when I get back to it in February.
     
    tntfoz likes this.
  7. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    74
    Yeah, you'd think Microsoft would be on it, seems a major issue (instancing broken I mean...). I also wondered if developing using a Dev kit, would yield any perfomance boosts, or at least give any insights on where to tweak to get acceptable performance.

    Just wondering, have you received your Dev Kit yet, if so, could you share what they have given you over justing using vanilla Unity / UWP. Im guessing you can Build directly, using the XBox profile in the Build dialogue. Could you share if that is the case?

    I'll have to try and get my game working in DX12 at some point, and see if it fixes the poor perf. I only ever managed to get my game running at 40fps, and its really very simple, relatively low poly, simple textures etc.
     
  8. zastrow

    zastrow

    Joined:
    May 23, 2012
    Posts:
    20
    Just joining the "party".

    Using:
    XBOXONE X OS V.10.0.16299.5101
    Visual Studio 2017 V.15.4.1
    Unity 2017.3.0f3

    Built a basic test .Net scene with:
    1 Terrain
    15 Unity Cubes
    1 Character Mesh w/ Mocap and Third person Controller Script
    No Profiling

    Side loaded it onto the XBOX as an UWP app.

    It is totally jerky and unusable. I've read all of your posts. I'm saddened to learn nothing has been done about this and there are no real solutions. I will of course waste my time trying to find a solution and report back if I find anything.
     
  9. zastrow

    zastrow

    Joined:
    May 23, 2012
    Posts:
    20

    I solved the problem. In Visual Studio, use Release and NOT Debug; solves the problem.
     
    f0ff886f likes this.
  10. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    95
    Sorry! Missed this reply completely!

    Haven't received anything from MS unfortunately, but I haven't chased them up either as I still have a lot to do just building the game I'm planning. :) Without actually having one, I do believe the dev kit would include a license to allow building directly in Unity (to the dev kit machine) so testing would be much more streamlined than via UWP to be sure.
     
  11. J_Sauve

    J_Sauve

    Joined:
    May 16, 2017
    Posts:
    7
    Hi guys.

    I've been following this thread for a while now, searching for the optimal settings within Unity to boost my FPS on Xbox. For those who really don't know what to try, here's what I found:

    Setup #1

    Unity version: 5.6.4p4
    Windows SDK: 10.0.16299.15
    Xbox One OS version: February 2018

    Other settings (in Unity):
    Auto Graphics API: Direct3D11
    Static Batching: Enable or Disable
    Dynamic Batching: Disable (doesn't work with Graphics Jobs)
    Graphics Jobs: Enable
    Scripting Backend: Il2CPP
    Api Compatibility Level: .NET 4.6

    Visual Studio Community 2015:
    Build config: Master & x64 (otherwise it doesn't work on Xbox)
    .NET toolchain: Enable
    Results:
    Small scene (less 1 GB): 45-60 fps (capped at 60)
    Normal game scene when idle (1.5-3 GB): 30-45 fps
    Normal game scene with moving rigidbodies, sounds, anims, etc: 20-35 fps with major hiccups

    Setup #2 (pretty much the same performance as setup #1)

    Unity version: 2017.4.1f1
    Windows SDK: 10.0.16299.15
    Xbox One OS version: February 2018

    Other settings (in Unity):
    Auto Graphics API: Direct3D11
    Static Batching: Disable
    Dynamic Batching: Enable (doesn't work with Graphics Jobs)
    Graphics Jobs: Disable
    Scripting runtime version: Stable (.NET 3.5 Equivalent)
    Scripting Backend: Il2CPP
    Api Compatibility Level: .NET 4.6

    Visual Studio Community 2015:
    Build config: Master & x64 (otherwise it doesn't work on Xbox)
    .NET toolchain: Enable
    Results:
    Small scene (less 1 GB): 45-60 fps (capped at 60)
    Normal game scene when idle (1.5-3 GB): 30-45 fps
    Normal game scene with moving rigidbodies, sounds, anims, etc: 20-35 fps with major hiccups


    Setup #3

    Unity version: 2017.4.1f1
    Windows SDK: 10.0.16299.15
    Xbox One OS version: May 2018

    Other settings (in Unity):
    Auto Graphics API: Direct3D12
    Static Batching: Disable
    Dynamic Batching: Disable (doesn't work with Graphics Jobs)
    Graphics Jobs: Disable
    Scripting runtime version: Stable (.NET 3.5 Equivalent)
    Scripting Backend: Il2CPP
    Api Compatibility Level: .NET 4.6
    Visual Studio Community 2017:
    Build config: Master & x64 (otherwise it doesn't work on Xbox)
    .NET toolchain: Enable
    Results:
    Small scene (less 1 GB): 10-30 fps
    Normal game scene when idle (1.5-3 GB): 10-45 fps
    Normal game scene with moving rigidbodies, sounds, anims, etc: 10-20 fps with major hiccups

    Setup #4 (best performance)

    Unity version: 2017.4.1f1
    Windows SDK: 10.0.16299.15
    Xbox One OS version: February 2018

    Other settings (in Unity):
    Auto Graphics API: Direct3D11
    Static Batching: Disable
    Dynamic Batching: Enable (doesn't work with Graphics Jobs)
    Graphics Jobs: Disable
    Scripting runtime version: Stable (.NET 3.5 Equivalent)
    Scripting Backend: Il2CPP
    Api Compatibility Level: .NET 4.6

    Visual Studio Community 2015:
    Build config: Master & x64 (otherwise it doesn't work on Xbox)
    .NET toolchain: Enable
    Scripting:
    Disabling every particle systems
    Avoid saving during gameplay (only during scene change and application being suspended/terminated)
    Results:
    Small scene (less 1 GB): 45-60 fps (capped at 60)
    Normal game scene when idle (1.5-3 GB): 45-60 fps
    Normal game scene with moving rigidbodies, sounds, anims, etc: 30-50 fps with hiccups only when big gameObjects are spawned for the first time (otherwise they are pooled)

    If others want to post their setup(s), It would be appreciated!

    PS: I'll edit this post to add other setups, as of now I'm testing with another Unity version (2017.4.1f1).


    EDIT #1: Add my Xbox One OS version for each setup, I've heard it can change compatibility for Direct3D12.

    EDIT #2: Add 4th setup, the best one yet.
     
    Last edited: Apr 27, 2018
    albertjames and f0ff886f like this.
  12. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    155
    Hey your 2017.4.1f1+VS2017+D3D12 reflects my experience: 10-20fps junk.

    I will try to sync my project to latest and give you some info on how my perf is with detailed scene stats later this weekend.
     
    J_Sauve likes this.
  13. sybere

    sybere

    Joined:
    Mar 26, 2015
    Posts:
    151
    Hi.

    Any news about how to get the enhanced performance?(full gpu use) I'm currently working on Xbox One X and i try to get smooth screen in 4k(native changed from script at starting) resolution but i cant only use the gpu engine0 with d3dx12
     
  14. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    6,364
    Xbox One X has only 1 3D GPU engine, so it makes sense you get to only use that.
     
  15. sybere

    sybere

    Joined:
    Mar 26, 2015
    Posts:
    151
    It has 8 engine, now with real d3dx12(dx11 removed from the list) also post process stack only work with forced 3dx12 unity editor start, with 2018.1 working 3 engine, engine 0, 2, and 3
    engine 0 now working on 50%, engine 2 80-100% engine 3 1-5% also the cpu and the gpu is integrated in one chip so its APU and the 12GB memory shared between so in uwp don't have a real 6GB system memory or 6GB vram, thats why the visual studio give false data about memory usage
     
    Last edited: May 10, 2018
  16. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    6,364
    It does have 8 engines, but only 1 of them is 3D. Others include copy engine, compute engine, video decode, video encode, etc. For rendering only 3D one can be used. Games will probably utilize the copy engine a little bit too, and compute engine if you use compute shaders.
     
  17. v01pe_

    v01pe_

    Joined:
    Mar 25, 2015
    Posts:
    45
    I only recently found out, that this can be done on the dev kit itself. I was searching this option for quite some time and this seems to be the only place where to change it. Now this leads me puzzled on how to set this for builds that I will par example send to certification/ store submission? Is this setting somehow written back to the dev center, or will cert/ the store submission process just mark it as game as well and everything is fine?

    It seems a really weird place for a setting like this... is there any other (more persistent) option to set this?

    UPDATE: Got an answer in the xbox dev forum about the same topic: This is the intended way to do it and for submissions this flag will be set for you, depending on your submission data.
     
    Last edited: Jul 4, 2018
    Peter77 likes this.
  18. hensoup

    hensoup

    Joined:
    Jan 13, 2014
    Posts:
    31
    I'm having issues with this as well. It seems the biggest issue is shadows adding the draw calls if I disable shadows it runs perfect when when I add shadows it it's not as fast as PC
     
  19. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    155
    How many shadow casters do you have? How many light sources? Deferred or forward?
     
  20. hensoup

    hensoup

    Joined:
    Jan 13, 2014
    Posts:
    31
    1 directional light when i set the settings to high instead of Highest it worked better.
     
  21. hensoup

    hensoup

    Joined:
    Jan 13, 2014
    Posts:
    31
    well well I solved it removing Anti Aliasing except for Post Processing. and everything is running way faster and better even with 100 skinned unoptimized meshes on screen.
     
  22. stonstad

    stonstad

    Joined:
    Jan 19, 2018
    Posts:
    89
    Is this "game" setting still present in the dev home deployment app? I swear it used to be there... and I am not seeing it. I'm using the October 2018 XB1 os.
     
  23. stonstad

    stonstad

    Joined:
    Jan 19, 2018
    Posts:
    89
    Bleh, I found it. You have to press the "Change View" controller button over the app's name. After this -- go to details where the option exists.
     
  24. Mullan7

    Mullan7

    Joined:
    May 23, 2013
    Posts:
    68
    It's worth pointing out if you go into the settings on xbox itself, you can treat all new installs as games by default. When you submit to store this happens automatically if your'e submitting a game
     
  25. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    155
    tntfoz likes this.
  26. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    42
    tntfoz likes this.
  27. albertjames

    albertjames

    Joined:
    Aug 11, 2018
    Posts:
    15
    Hey Guys, any hint on the current best settings for UWP XBox ? Or is the previous comparison by J_Sauve still valid ? Im going crazy T_T
     
  28. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    6,364
    What's the issue you're facing? Bad performance?
     
  29. albertjames

    albertjames

    Joined:
    Aug 11, 2018
    Posts:
    15
    Yes, a lot of unexplainable drops in frame rates... in the end I had to use the most conservative settings but it was still buggy. I've stopped my xbox project for now..