I have been doing some benchmark test on WP based on DrawingSurface V DrawingSurfaceBackgroundGrid and with rotation of entire screen to support landscape gaming. This is using my actual game running the same test for 5 minuets including loading screens.
DrawingSurface:
Average Fps = 39.23
Min Fps = 14
Mas Fps = 56;
DrawingSufaceBackgroundGrid (rending to back buffer and rotating to support landscape mode)
Average Fps = 54.38
Min Fps = 24
Max Fps = 60;
As you can see even though there is 1 extra rendering in DrawingSurfaceBackground its Still substantial faster.
Its actual 40% percent faster.
Since the performance difference is so large I have a request that mono games should support Landscape in DrawingSurfaceBackgroundGrid via rotating the screen, touch point and gestgers in the background.
Do you mean rotating all the draw calls via a matrix transform? We investigated this option. The problem is we can’t automatically do this when users create custom effects. So it wasn’t a complete solution.
Basically in my gme I had a back buffer i that was set to the same res as the phone, but the backbuffer was in landscape. So in my case my backbuffer was 0,0,1280,720.
I then render the entire game to that back buffer, no rotations required.
Then just before base.draw() it render the back buffer as a texture2d rotated by 90 degrees.
I get a 40% better performance than drawingsurface.
the only problem is working out the touch points and gesters as well as the detecting the orientation as it always reads Portrait.
So if monogames could handle this internal it would be fab, the performance is so much better.
Now my understanding of shaders is very limited but couldn’t the shader be render to the same back buffer and just rotated at the end?