XBox1 UWP GPU engine utilization

Hi, I’m doing some test on Xbox1 UWP (via creators program) and I’ve noticed that in the Xbox Device Portal (the webpage inside X1 you access to gives you X1 performance details), in the “GPU engine utilization”, appear to be 8 engines and I’m only using 1.

I’ve noticed my PC has a similar webpage and that I’m also only using 1 engine.

I’m not very versed in GPU terms and I don’t even know what a GPU engine is, but I suppose I can batch and send work to those engines in parallel (like a multicore CPU).

Question is, how I do that in MonoGame?


The render pipeline in XNA was designed as a solely single-threaded render pipe, as DirectX 9 was single-threaded only. DirectX 11 does allow multiple render contexts, and DirectX 12/Vulkan are designed solely for multi-threaded rendering. However with the design of XNA being for single-threaded only, we are using that. Changing to a multi-threaded rendering architecture is a very large job and requires careful planning to get it right. Get it wrong and you can actually get worse performance than a single-threaded renderer. It is also something that will not be able to be wrapped behind the existing graphics API, so changing to it would require a re-architecture of your own code when that happens.

1 Like

I understand, thanks for the explanation.

That is the most concise explanation I have come across by far, thank you.


It should also be noted, single threaded applications is not a caveat of MonoGame alone, many engines have this method, check most games you play and you will see they use a single CPU/GPU thread too.