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:
    10,676
    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:
    129
    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:
    129
    I'm on 16299.4055 :/
     
  4. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    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:
    129
    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:
    201
    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:
    75
    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:
    129
    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:
    201
    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. Kriszo91

    Kriszo91

    Joined:
    Mar 26, 2015
    Posts:
    181
    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:
    10,676
    Xbox One X has only 1 3D GPU engine, so it makes sense you get to only use that.
     
  15. Kriszo91

    Kriszo91

    Joined:
    Mar 26, 2015
    Posts:
    181
    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:
    10,676
    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:
    71
    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:
    35
    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:
    201
    How many shadow casters do you have? How many light sources? Deferred or forward?
     
  20. hensoup

    hensoup

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

    hensoup

    Joined:
    Jan 13, 2014
    Posts:
    35
    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:
    659
    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:
    659
    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:
    79
    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:
    201
    tntfoz likes this.
  26. ImaginationOverflowPT

    ImaginationOverflowPT

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

    albertjames

    Joined:
    Aug 11, 2018
    Posts:
    16
    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:
    10,676
    What's the issue you're facing? Bad performance?
     
  29. albertjames

    albertjames

    Joined:
    Aug 11, 2018
    Posts:
    16
    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..
     
  30. fdp_san

    fdp_san

    Joined:
    Jun 22, 2017
    Posts:
    8
    Unity 2019.216f1 here, using DX12 and disabling static batching did the trick for me (UWP, not "native" xbox one) (I'm also using LWRP if that helps)
     
  31. stonstad

    stonstad

    Joined:
    Jan 19, 2018
    Posts:
    659
    @fdp_san When you say UWP, not "native xbox one" do you mean your testing is UWP on PC, and not XB1?
     
  32. fdp_san

    fdp_san

    Joined:
    Jun 22, 2017
    Posts:
    8
    I built for UWP and deployed on XB1, I don't have a "real" XDK devkit that's what I meant.

    To update my previous answer,what actually fixed the performance issue was setting the game to run as a "game" and not as an "application". (there is an option to treat all deployed app as games in the xbox device portal (aka : https://YOURXBOXIP:11443), you can also do it directly on the xbox, but can't remember where exactly)
     
  33. RLord321

    RLord321

    Joined:
    Feb 25, 2017
    Posts:
    28
    I've been deploying to the XBOX ONE for quite some time now and got through the hurdles. The following are a few tips:
    1. DirectX 12 - This has to be set as without it, you will only be able to use about half of the resources on the XBOX one
    2. Set to "Game" instead of App - this will also reduce your resources by half. (DirectX 12 + "Game" = More Resources). This can be defaulted by using the portal
    3. Set the game in release mode to test your performance. When I deploy, I deploy without debugging for maximum performance. If debugging is enabled then, it slows things down. Not as much not doing #1 and #2 but it's still slower.
    4. Full screen anti-aliasing and other post-processing effects will slow the performance. I only use anti-aliasing on characters and select objects where jagged edges are noticeable
    5. Make sure the quality settings on the XBOX are set correctly. I set my own quality level called XBOX ONE and I merged some of the high quality settings with the ultra settings. You may have to tweak this but make sure the XBOX ONE quality setting is green! I was deploying for quite some time and wasn't happy with the graphics before I realized it was Ultra in the unity editor but VERY LOW when it deployed to the XBOX ONE. Not sure why Unity defaults to this but once I changed this, the graphics look much better....but at the cost of performance
    6. Once you build and deploy many times and think you are an expert, you will get random deployment errors in Visual Studio. Most likely they have nothing to do with your code but maybe an update on the XBOX itself or some other issue. Don't try to troubleshoot anything as most likely, the error will not go away. I've wasted days on this... Instead, just turn your XBOX ONE back into retail mode and then back to Debug mode. This solved all of my deployment issues. You can also turn on advanced logging in Visual Studio but it doesn't matter as it is going to give you generic deployment errors - just switch to retail and back to dev like I mentioned.
    I hope all these tips help. If not, post on here and I can answer any questions on how to deploy to the XBOX using UWP...
     
  34. vabd920

    vabd920

    Joined:
    Oct 31, 2015
    Posts:
    15
    Hey,

    So is it better to use DirectX 12 or DirectX 11?

    Thanks :)
     
  35. RLord321

    RLord321

    Joined:
    Feb 25, 2017
    Posts:
    28
    You HAVE to use DirectX 12 in order to get the high performance on the XBOX that I mentioned in my post. If you use DirectX 11, your game will be unplayable as it will be too slow.
     
    vabd920 likes this.
  36. vabd920

    vabd920

    Joined:
    Oct 31, 2015
    Posts:
    15
    Thank you for the replay :)
     
  37. vabd920

    vabd920

    Joined:
    Oct 31, 2015
    Posts:
    15
    Hi everyone,

    My project is UWP (Creators program)
    Unity 2018.3.0
    Retail XBOX One X

    My a bit subjective tests in-game:


    Quad HD screen + 1440p setted in Xbox Device Portal = 70-90 FPS

    Quad HD screen +1080p setted in Xbox Device Portal = 40-60 FPS

    Quad HD screen +720p setted in Xbox Device Portal = 45-65 FPS

    Quad HD screen + 480p setted in Xbox Device Portal = 40-60 FPS

    Full HD screen +1080p setted in Xbox Device Portal = 40-65 FPS

    Full HD screen +720p setted in Xbox Device Portal = 45-65 FPS

    Full HD screen +480p setted in Xbox Device Portal = 50-65 FPS

    Menu has the same FPS across all configs (120)


    That's sick! I have good perfomance only when I use 1440p.


    What do you guys think about that? And how do I fix this issue?
     
    Last edited: May 12, 2020
  38. GamePyro-com

    GamePyro-com

    Joined:
    Jul 28, 2018
    Posts:
    197
    you fixed it?


    with DX11 have great performance but the most shaders needed not work

    With DX12 have stuttering and more but need it for Shaders do work
     
    Last edited: Feb 26, 2022