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
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.
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.
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.