Bad performance on XBOX Series X UWP

So we are building a 2D platformer game and today we tried to deploy it to XBOX for the first time.

The game usually hits around 200-300 FPS on my laptop or even 600 FPS+ on my desktop. Ryzen 5900X/3070 RTX.

When running on XBOX Series X it hits 30-50 FPS. This console easily runs modern games in 4K@120Hz.

I’m having a hard time believing this is the code of our game that is the issue here.

We’ve tried Release/Master, IL2CPP build configuration.

What could possibly be the reason for this?

Ok, this was actually quite easy to solved. It turns out that the game was deployed as an “app” which limits the performance.

On the xbox, in the list of deployed apps. Simply select it, go into the details menu and switch to “game”. Went up to ~200 FPS which is a little disappointing but much better than 30-50 :slight_smile:

Another thing to check is that you actually are using DirectX 12. Unity defaults to DirectX 11, and Xbox through UWP is limited to 50% of GPU power when using DirectX 11. See More Resources for Universal Windows Platform Games with Fall Xbox One Update - Windows Developer Blog

I know, necro, I apologize. This is the only good lead I can find on my crummy performance, what exactly do you mean? can you explain this process a bit more? (Possibly include images, if you can)

On Xbox, after the game is deployed, select the game, but instead of launching it, go to its properties (Press the “View” button and select “App Details”. Then make sure that the “App type” is set to “Game”.

I just ran into an issue deploying UWP to Xbox Series with DX12 and I found this post. In Unity 2022 and before, I had a UWP build with DirectX 12 that ran great on PC and Xbox Series X. I’m trying to upgrade from nothing to URP, for better motion blur, and I noticed how much changed from Unity 2022 to 2023 and 6. Finally, after switching to URP then upgrading to Unity 6, my UWP DX12 build hits breakpoints when trying to debug remotely to the Xbox, and I tracked it to a DirectX 12 error, something about the driver can’t find the graphics device. So I tried switching to DX11 and it runs but as you said the performance is very much worse than my previous Unity 2022 UWP DX12 builds. Any advice? It seems like a URP issue because I believe I did run Unity 6 before switching to URP and on DX12 Xbox Series X everything was fine.

Can you post more details about this error?

We need to figure out why DX12 doesn’t work for you. DX11 is not really a good option on Xbox as you’ve observed.

Yes, when I launch for remote for my Xbox Series X, I get UnityPlayer.dll errors about DX12, screenshot shows the breakpoint error.


It runs fine on local machine which is my PC on Windows 11. And it runs fine on Unity 2022.3 for the Xbox, only changes are upgrading project to Unity 6. Thanks for taking a look.

Once you’re on that screen, can you press Debug → Save Dump As…, then compress the resulting dump file to a .zip/.7z archive and send it to me?

Thanks for the dump. This is a bit of a mystery! Could you do a couple more troubleshooting steps for me?

In the generated Visual Studio project, can you open App.cpp, and find this line:

m_AppCallbacks = ref new AppCallbacks();

Replace it with:

m_AppCallbacks = ref new AppCallbacks(ref new Platform::Array<Platform::String^> { L"-force-d3d12-debug" });

Then, switch to the Debug configuration in Visual Studio, deploy to the device and run. Finally once it crashes, go to Visual Studio “Output” tab, copy all the text and paste it here in the thread.

I’ve noticed you’re also using a beta version of Unity. Does it crash the same way in non-beta version of Unity 6 for you?

I believe you are running into this issue: Unity Issue Tracker - Unity runtime crashes on Xbox when deployed through UWP.

We’re working on a fix. Note, this only affects beta version of Unity.