Search Unity

UWP Xbox One Poor Performance "Enhanced Access"

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

  1. bhagerman

    bhagerman

    Joined:
    Feb 15, 2017
    Posts:
    6
    Hello, I've built a couple different projects using:
    1. Unity (2017.2.0p1) using under Ultimate Windows Platform & Graphics API Direct3D 11
    2. Deploying with Visual Studio Community 2017 (15.4.4)

      As well as varying combinations of build configuration settings:
      • D3D, XAML
      • Scripting backend .NET
      • Scripting backend IL2CPP
      • SDK Windows 10 15063, Windows 10 16299
    3. The projects successfully deploy to the Xbox, and I switch their app settings to "Game"
    4. The projects successfully run on the Xbox, but have poor performance in all but the most empty of scenes.
      1. In project A for example,
        • 1GB of RAM is used and
          <10% of any single CPU core,
          and <10% of any GPU
        • Yet FPS is consistently <20, and often <10
      2. In project B for example,
        • 412 MB of RAM is used and
        • <10% of any single CPU core
        • <5% of any GPU with occasional spikes of ~15-20%
        • Yet FPS variably ranges from 1-40.
    5. When ran on my local machine (Windows 10, 16299) either project runs at 60fps when building for UWP and for PC platform environments.

      Is there a way to ensure that the hardware is being utilized, because the requirements for my projects are well below the established (https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/system-resource-allocation).

      Are there any known issues for UWP deployment on Xbox?

      Thanks for reading.
     
    cthomas1970 likes this.
  2. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Did you try profiling your build to see what's slowing you down? How are you measuring CPU and GPU utilization? I'm not sure whether the meters on device portal are accurate.
     
  3. bhagerman

    bhagerman

    Joined:
    Feb 15, 2017
    Posts:
    6
    I am estimating those numbers from the Xbox Device Portal, yes. From my limited testing in the past few weeks they seem consistent with a pushed debugging build's live performance reports inside of Visual Studio

    Is there a way to explicitly profile the actively deployed build running on the Xbox (that isn't in Debugging mode - I've seen weird slowdowns in Debugging mode on deployment even with nearly empty scenes)?

    When I look at the profiler on the desktop PC UWP environment it's performance has no hiccups or hangups or any substantial change, so any clear-cut "oh, that script or that particular particle effect or that model is the culprit" is not the case here I can safely rule out.

    I did try turning vsync off in the graphics settings, and that caused the game to run what felt a bit smoother but with excessive screen tearing (which logically makes sense, I suppose).

    Thank you for your time.
     
  4. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
  5. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    You can deploy your app in "Release" configuration from VS to the xbox and then use Unity's profiler.
     
  6. bhagerman

    bhagerman

    Joined:
    Feb 15, 2017
    Posts:
    6
    I have disabled these options, and saw a minor improvement (maybe just in my head) but nothing substantial.

    Thank you I followed the documentation to get this running over my network to unity's profiler from the Xbox.
    I discovered that the profiler is maxing out on a "PostLateUpdate.FinishFrameRendering" attached a screenshot.
     

    Attached Files:

  7. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    It's spent in "Gfx.WaitForPresent", which indicates the CPU is waiting for the GPU to finish.

    If you select the "GPU" tab on the left side of the profiler it should display where the GPU is spending time. From the screenshot, it's the purple area "Other", which also has a warning icon next to the "Other" label.
     
    BrandyStarbrite likes this.
  8. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    Its funny, I came to this forum, as there is no dedicated Xbox forum. I'm also trying to deploy to Xbox One AND Windows of course, using UWP. Im using UWP, as right now, I cant jump through the hoops Microsoft require to join the developer program, I guess if I was on that, I could use the specific Xbox builder?

    Anyway....

    I created my own FPS counter/display, and it shows a lower frame-rate than Unity Editors Stats display (usuall 20% or so lower). However, even with this, I see say 120+ frames on my Windows PC (vsync off, to get an idea of how much headroom I have on my PC), which is an i7 3770, at 3.5ghz, with an nVidia 1080 ti.

    Sure its a fast GPU, but the CPU is not cutting edge. So, thats 120fps in the Editor. When I build this using VS and UWP, and install it on Windows, I get 300fps! Thats with settings that are aimed at the XBox One S.

    So, the same UWP package installed on XBox one, has, at max, reached 45fps. Generally its doing more like 10 - 20 fps, with any decent quality on (shadows..., lights). The scene that is at 120+, even 200 fps on Windows was doing 4fps on XBox One.

    Now, Ive never done this before. I dont know exactly how much less powerfull the XBox is than my PC. But.. I've played Forza 3 Horizon on it, and well... It looks amazing and has 60fps. And my pretty basic game is doing 4, with a lot less bells and whilstles.

    Something feels very wrong
     
  9. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    That i7-3770 is probably 5-6 times faster than the CPU in Xbox One. EIther way, if you're already deploying in Release config to xbox (rather than debug), try going the same route of profiling your build. If you think that what you're seeing is a bug on Unity's or Xbox side, you can submit a bug report and we will investigate ourselves. For instance, @Peter77 submitted a bug regarding instancing, and after we investigated we concluded that it was a DX11 driver issue and forwarded it to Microsoft to fix.

    Unfortunately there isn't much we can help with your currently provided information.
     
  10. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    Actually this thread has been pretty useful in working out IF and WHERE there is a problem on XBox One, with UWP. As you said, Peters discovery shows there IS an issue. And it appears to be quite severe, and still not fixed. Wonder what Microsoft is doing....

    I had actually just Enabled GPU Instancing on a number of shaders to try and get better perf, and I guess this was paying dividends on Windows 10, with ever increasing crazy good FPS, 300+. However, due to the DX11 bug, it appears the opposite was true on XBox, I was actually hurting my FPS there by adding more instancing. When I turned off GPU Instancing on all my shaders, and then turned off LOCAL and DYNAMIC batching, I got between 44 and 60 fps on XBox, (Before is was 17 ish) with reasonable quality. I guess if the instancing / batching Optimization was actually working as well, then I'd get the kind of perf that other games on that platform suggest is possible.

    Maybe I need to form a company, etc, so I can get on the ID@XBox program. Could you tell me please, joining this program, does it allow you to publish to XBox using the SPECIFIC Build Xbox option?

    If so, Im guessing this might side-step this issue, as it does kind of make game dev for XBox impractical when using UWP, which is odd, as thats its entire reason eh? UWP does require very little effort to get going with. But if that means 17fps (with shared OPTIMAL settings) and very little effort to fix from Microsoft, then its a dead duck really?
     
  11. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    These are all very recent developments. They are looking into it and will be fixing it. These things don't happen over night.

    To publish to Xbox using Xbox specific build option you need to be part of ID@Xbox.
     
  12. bhagerman

    bhagerman

    Joined:
    Feb 15, 2017
    Posts:
    6

    Thank you for this guidance! I took a look and found that I had many shadowcasters (100-200) on screen at any given time with many lights in the scene, I removed a couple lights and turned off most of the models' cast shadows behavior to off.

    This provided a substantial improvement, but still poor FPS overall. It seems that most of the work is in Rendering.OpaqueGeometry when I get the profiler to work properly on desktop, I saw a major number of draw calls to ScreenSpaceReflection, which I promptly disabled in the postprocessingstack (Version 1, by the way - not Version 2)


    It seems there is currently an issue with GPU profiling with a GTX 1080, as Unity Editor's profiler fails to report anything in my GPU tab when on the UWP platform for PC (previously saying that drivers aren't supported - I'm on 388.13 from an automatic update and I think this issue resolved itself this week) however:

    It does report when cross-networked to the Xbox. When I try to look at the GPU profiling (from the Xbox however, it crashes within seconds). Here is a screencap of a snapshot of performance on the xbox for the couple of seconds it profiles before locking up (both unity and the xbox).

    Note that without ScreenSpaceReflection turned on and most objects having cast shadows disabled, overall performance has shot up to almost playable levels.
     

    Attached Files:

  13. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    Really, sorry, I read the bug report, and the date there, was August 31st 2017, going on for 3 months, I guess I miss-read the date. I interpreted it to mean that Peter had reported it HERE more recently (last Friday?), but that he was updating us on a bug he filed some time back. If Im wrong on that, sorry...

    OK, thought so. Yes, I will register for that program, when the game is say 80% complete, with say 3 months of dev left. It requires setting up a Limited Company, bank details etc. Right now I am too early in dev, to commit to all of that.

    I have turned off STATIC and DYNAMIC batching in my Player, and with this I get 120+ FPS in the Editor, and more when pubbed using UWP and installed on my Win10 machine. Same package on XBox does 28 - 45fps, and Im assuming that when this optimisation bug is fixed, my FPS there will jump up somewhat.

    In the mean-time, I am trying to make my game engine follow best practices i.e. making LOD models, turning off shadows where not needed and so on. My thinking being if I can keep the game doing 180+ FPS in Windows, then I should be good to get decent perf down the line on XBox One.
     
  14. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    Hey, I dont' know about your game, but Im curious as to why you are turning of shadows on your models, rather than on your lights? I would have thought it would make more sense to only use shadows on a few key lights (if perf is really bad) and leave shadow casting ON, on your geo?

    Don't get me wrong, I DO turn of shadows on my Geo, but only where it makes 'sense', for instance, glass objects, look better with no shadows, than fully opaque shadows, and my Power Up Geo, has no shadow casting, as they have a light in their center, and the geo was shadowing its own light (kind of counter productive).\

    I have a number of torches across my largest level so far, maybe 12? and for now, I am leaving their shadows off. My game is not trying for realism, so its a reasonable trade off. Down the line, I may put a simple Class on them, to make them turn ON their shadows on platforms / Quality settings that would demand it, like a High / Ultra setting on a Windows PC.
     
  15. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    Why did you do that? Does your game performs better without static batching? Most games I've worked on did benefit from using static batching though.

    Don't assume this bug gets fixed any time soon. From past experience, it could take years.
     
  16. bhagerman

    bhagerman

    Joined:
    Feb 15, 2017
    Posts:
    6
    I did mark "Shadow Type" as "No shadows" for all of my lights save a global directional light as well.

    Only a few objects have shadows, which are things I intentionally want to shadow for visual acuity.

    I would otherwise turn shadows completely off to get that performance back.
    This is kind of fun (after many weeks of frustration) working with such constraints, I do hope whatever rendering issue does get fixed promptly.
     
  17. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    I assumed from your post, that both STATIC and DYNAMIC batching are a part of the problem. If not, Ill re-enable both. I guess I need to benchmark, as I do so, to see if either actually does have a positive / negative impact on XBox. Im assuming both ARE positive on Windows 10 as well. But maybe its worth checking that as well....

    So to be clear, the issue, as far as you tested is ONLY with shaders that are ticked to be instanced?

    Yeah, well, 3 months for a bug of this severity with no fix is not good eh? XBox does get updated quite frequently, so fingers crossed its in a future patch. I allowed one about 3 days back, but as the bug is not marked fixed, we have to assume the issues remain.
     
  18. Peter77

    Peter77

    QA Jesus

    Joined:
    Jun 12, 2013
    Posts:
    6,609
    That is correct.

    Static Batching worked for me on both, UWP Xbox and Windows.

    Dynamic Batching does not work anywhere, if graphics jobs are enabled:
    https://forum.unity.com/threads/case-946946-dynamic-batching-not-working-in-a-player.491903/

    GPU Instancing is broken on UWP Xbox:
    https://forum.unity.com/threads/cas...-than-no-batching-at-all-uwp-xbox-one.491982/
     
  19. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    OK, so for now, the optimal setup is

    Static Batching : ON
    Dynamic Batching : OFF
    Graphics Jobs : ON

    And ensure no shaders use GPU instancing

    ?

    And once the Instancing bug is fixed, I can enable all the shaders again?
     
  20. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    Since this topic is near and dear to me now (I figure if I can run on an Xbox S then PS4 shouldn't be an issue), are there some guidelines about optimizing performance for XB1?

    Somewhere else I found someone's magic bullet to be deferred+linear+baked occlusion+il2cpp+master mode. I'm looking for a bit more guidance I guess: is 1080p reasonable, or do we ship 720p/900p? Is DX12 perferred on XB1 or DX11? Which effects are known to cripple the console vs. what should be relatively cheap? Is 30FPS a reasonable target?
     
  21. cthomas1970

    cthomas1970

    Joined:
    Sep 12, 2017
    Posts:
    75
    Wish I could help with this. Information, THIS specific info for the platform, does seem really hard to find (I've found nothing definative yet). It would make sense to me, for Unity to have a set of crib sheets in the docs, one per platform, with suggested settings for the Player / Quality, and also what effects to avoid.

    I mean, just the difference in horse power on CPU/GUP/Mem between a 1080ti PC, and an XBOX One, seems pretty large to me, 300fps on one, 15fps on the other :/

    I dread to think about tweaking my game down, with zero guidance, to mobile, down the line. Again, some solid guidance on this would be super valuable, especially to smaller teams, one person bands, where trial and error is so much more costly in terms of time.

    Ultimately, effects are a piece of string, Its probably best to just try them out, in order of need, and then tick off those that push your FPS over the edge.

    In terms of FPS, I WANT to hit 60, but have yet to do so. I am publishing using UWP. Does publishing, using the more specific XBox One system yield faster builds? This seems to require a ID@XBOXone account, and that requires a LTD Company, official bank accounts and so on, so Im not ready to make that commitment quite yet. But a UWP build on Windows, gets me sometimes 300+ fps, and 17fps on XBOX One S.

    My game, is pretty simple. I dont have a lot of time for modelling complex worlds, I have to go for more blocky levels. So, it seems my game should be absolutely FLYING along. But still sucks somewhat on XBox. Maybe my use of the Post Processing Stack is the issue. I use it, to make my basic geo look nice via nice lighting and effects. Maybe Im layering on too much icing.
     
  22. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    I will probably start a new thread or just post here with my findings. I've started the search (it takes forever, iterating a build with a setting change is not quick) to hunt down performance.

    Perhaps we can just share information so that the community can benefit.

    First off, based on these documents: https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/system-resource-allocation we can read the following about UWP games set as "Game" in Xbox Dev Mode (its easy to set: view details on your specific game, set the type to Game. I had to reboot the console otherwise it would crash after changing to Game).

    UWP Game on XB1 as of December 2017:
    • Memory: 5GB
    • CPU: 4 exclusive 2 shared cores
    • GPU: full access to entire GPU
    • DX Versions: 12 and 11 (feature level 10)
    So, from that information, I think that using the Graphics Jobs should be beneficial, as we get 4 dedicated cores so some measure of multithreading should be OK.

    So, this was my first test: A scene with 3 planes (one main floor, two subsections with simple materials containing just albedo tints), one object ~580 verts, one object ~200 verts, but my full postprocess stack (mainly PostProcessing v2), set to 1080p / Fantastic / DX11 / Deferred / Release.

    I got 24FPS average, but it wasn't close to smooth. I then switched my graphics to Beautiful (I haven't really tweaked the presets I think, but I don't remember, I'll post screengrabs of them later), and I get ~29FPS now average. Again, this is an empty scene. When I put it in a "complex" (but unoptimized scene, haven't baked OC yet), I get 4 FPS.

    I will start to take screenshots of each quality setting, and perhaps capture small Profiler logs for people to be able to open, and start to note down all my A/B testing for performance. First I will try to drop to 720p and see if I'm fill bound.

    My game is a first person perspective indoor game, without huge environments, virtually no physics/AI. My memory according to Advanced FPS Counter is 185MB total, and according to the Xbox dashboard it was 900MB total commit. CPU on the console was ~10%, GPU ~70%.

    Let's share. Only way it will get better is by sharing and giving info, otherwise everyone will be stuck in this same boat.
     
    zelderus likes this.
  23. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    So sharing my experience.
    Disabling .net native increases performance a lot! But you can't publish UWP apps without being .net native.
    Personally my game runs fine until someone tries to load a scene... Press start? 10 secs until the pause menu appears (additive scene btw). Back to main menu? 30 seconds (note that the boot time is about 15secs). On standalone builds, my scene loads are instantaneous.
    I tried all possible UWP configurations, enabled, disabled, alternated (I must have made 100 builds in the last week) and with .net native enabled I simply failed to accomplish any kind of performance boost.
     
  24. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Did you try profiling .NET native vs non-.NET native build? Did you try IL2CPP? Are you running on release/master build?
     
  25. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    I'm running master build, I did tried IL2CPP at one point but due to C# dll dependencies I was unable to procede, I did try to setup the profiling without much success, I can't seam to be able to connect with my xbox to profile.
     
  26. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Did you enable internet capabilities?

    By the way, you shouldn't have any dependency issues with IL2CPP (except if you hit a bug, which is possible) if you set your API compatibility level to .NET 4.6.
     
  27. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    I had some trouble with this and wasted some hours until I read somewhere the following:

    If you created a UWP build to some folder (say UWP/ in your project folder), and you didn't enable any capabilities, future builds will not reflect capability changes from Unity Player Prefs. This means you have to open the capabilities in Visual Studio to actually change the capability.

    I found that privateNetworkClientServer is the only one you need to connect to the profiler. Make sure you're building Release as well. Master will not connect.

    That said, even when its working, I sometimes have to close and open the editor to get the profiler to actually connect over a given session.

    Also, the Xbox Dev Companion tool lets you stream from the Xbox to your PC, so if you're like me and you don't have an extra monitor for the Xbox you can debug / play / test without ever leaving your PC context.

    Info here: https://docs.microsoft.com/en-us/windows/uwp/xbox-apps/xbox-dev-mode-companion
     
  28. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    Thanks for the release tip! I've been using master!! Funny how the release build option doesn't have the .net native turn on by default XD. Making a new one to try to profile the game, thanks @vostok4
     
  29. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
  30. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    @Sorcha08 that IL2CPP bug was fixed in Unity 2017.2.0p2.
     
    v01pe_ likes this.
  31. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    @Tautvydas-Zilys not an option unfortunately, updating to that unity version breaks the game completely. Still it will be a last resort
     
    Last edited: Dec 7, 2017
  32. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    New status update.
    So the issue has nothing to do with unity (as expected) the problem was reflection! I use a Dependency Injection and it just killed the performance at scene load!
    Not because of the reflection but because of the UWP version that unity has as default (Microsoft.NETCore.UniversalWindowsPlatform v5). It has known performance issues with reflection! So updated to the latest version, removed all legacy reflection code and re-implemented it with UWP specific code, and voila the game runs fine in both .net native and non .net native. The performance is still sluggish when compared with the standalone, but at least it looks like a game now!
     
  33. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    How did you arrive at that conclusion? Also, specifically how did you update the UWP version?
     
  34. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    @vostok4 after your help I was able to profile the game. The profiling sessions pointed out to the code where I had reflection. I made some tests and saw that reflection calls were super slow. After that I started digging for issues relative to .net native and reflection. I found out this github issue about Entity framework performance issues with .net native. EF uses a lot of reflection, from that I theorize that my issue was my .net native version (which is linked to the UWP package).

    Tested it out updating the UWP version (to update right click on your project and click manage nuget packages), after the update my mono compatible reflection functions weren't working due .net native metadata stripping so I updated the reflection code to UWP compatible. Tested it out and finally had the same performance with .net native and without \o/.

    I must say that I have a ""vast"" experience working with UWP platform (I make windows apps since Windows Phone 7), I doubt that anyone without experience on UWP platform (and windows overall ecosystem) would be able to make these connections. I don't have definitely proof that what I did was the most effective way to fix my problem, it does mitigate it a lot, but I still don't have the performance on Xbox that I have in standalone builds, but the game is definitely playable right now.
     
  35. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Can you guys try updating Xbox One to the latest OS update and try out DX12? Apparently DirectX 12 on Xbox One was fixed and an OS update with the fix was just pushed out. It's possible (and very likely) that DX12 is not affected by the instancing issue.
     
  36. ImaginationOverflowPT

    ImaginationOverflowPT

    Joined:
    Sep 15, 2017
    Posts:
    186
    @Tautvydas-Zilys I did tried that, but no improvements (but I'm using unity 5.6)
     
  37. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Did you actually verify that the player starts with DX12 in the player log?
     
  38. Mullan7

    Mullan7

    Joined:
    May 23, 2013
    Posts:
    79
    According to the chart on this page, the Xbox live plug in will not work with IL2CPP. Any way around this?
     
  39. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    In what way does it not work?
     
  40. Mullan7

    Mullan7

    Joined:
    May 23, 2013
    Posts:
    79
    After importing it i get this in the console a few times:

    Assets/Xbox Live/Scripts/UnityTaskExtensions.cs(91,16): error CS0433: The imported type `System.Threading.Tasks.Task<T>' is defined multiple times
     
  41. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Looks like that plugin needs some modifications.. I don't know exactly why it doesn't work. Doesn't seem like the issue is on il2cpp side, though.
     
  42. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    Regarding that error you're seeing: you need to follow the instructions in this page for disabling certain Xbox Live plugin DLLs for use in the Editor based on whether you have .NET 3.5 or .NET 4.6 Scripting Runtime Version in the Project -> Player Settings setup: https://docs.microsoft.com/en-gb/wi...ed-with-creators/configure-xbox-live-in-unity

    Also make sure you get the latest version of the XboxLive plugin (v1802) for IL2CPP support.
     
  43. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    The latest 1802 release of the Xbox Live plugin has specific IL2CPP support so previous versions likely didn't work (by design!).
     
  44. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    Can I just confirm where you set the type to Game? Are you talking about in the Dev Center submission properties? Or is there somewhere in Dev Mode on the actual Xbox (or via the web portal) to do this?

    Thanks.

    Ignore me! Figured out where to set it on the Xbox itself. Well the performance is better now it doesn't think the game is an app! :)

    Unfortunately my project uses a lot of GPU instancing so I'm getting major slow downs when multiple (instanced) characters appear on screen. :(
     
    Last edited: Jan 13, 2018
  45. f0ff886f

    f0ff886f

    Joined:
    Nov 1, 2015
    Posts:
    201
    Glad to hear you got Game mode working at least. I have stepped away from Xbox for now, have some core gameplay to catch up on so the designers are happy, but the next lull I'm coming back to profile and learn more.
     
  46. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    Thanks. Yeah I've managed to switch off most of the GPU instancing and can get the game running about 30fps (sort of) - there are major hitches until (I think) textures have finished loading.

    There's also some ugly screen tearing regardless of whether I set vsync or not, probably due to the loading hitches varying the framerate so much.

    Certainly need Microsoft to fix things at their end though - the game is crippled without the instancing enabled.

    I've applied for a dev kit to see if building the game directly to the platform mitigates the UWP problems I'm having...
     
  47. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    Did you try switching to DX12 like I suggested in the post above? AFAIK it should not be affected by instancing issues.
     
    tntfoz likes this.
  48. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    I did try but couldn't see where I was able to force DX12 onto the Xbox.

    I've got the DX12 experimental API as the top option in the Graphics APIs setup in the Player settings, with DX11 beneath. Unfortunately I can't seem to remove the DX11 option whatever I do.

    After sticking a label on the home screen UI to show me which API is loaded, a UWP build in Windows correctly shows DX12. However, the Xbox still shows DX11.

    Are you aware of any hoops I need to jump through to force DX12 on the Xbox?

    I'm on Unity 2017.2.0p3 by the way. Unfortunately newer releases don't like some of the assets I'm using (deprecation errors and such) so I'm stuck with this version.
     
  49. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,674
    You need to update your Xbox to the latest build for DX12 to work. Your game also must be marked as 'Game' rather than 'App'.

    If you still can't get it to work, can you post the player log?
     
  50. tntfoz

    tntfoz

    Joined:
    Sep 29, 2016
    Posts:
    129
    The Xbox Dev Mode reports OS version as "November 2017 QFE 1" - is that the latest one? No idea how to update it otherwise. I assumed MS would just roll out updates as and when they arrive.

    Regarding marking it as a game rather than an app, I learned that trick a few posts up! :D

    Could you please give some pointers of how to grab the player log from the Xbox?

    The console is still less than a week old - I'm new to all this UWP stuff!

    Messing around in Visual Studio is well outside my comfort zone!

    Edit: Think I've found where I need to grab the Player log from - however I need to do a new build first so will post back tomorrow.
     
    Last edited: Jan 16, 2018