Interesting article from Google on Android Hardware Scaler

http://android-developers.blogspot.it/2013/09/using-hardware-scaler-for-performance.html
*

[quote]*
For both minimizing power consumption and thermal effects, using the hardware scaler can be very useful. Because you are rendering to a smaller buffer, the GPU spends less energy rendering and generates less heat.
*[/quote]
*

Java:

surfaceView = new GLSurfaceView(this);
surfaceView.getHolder().setFixedSize(1280, 720);
int32_t ret = ANativeWindow_setBuffersGeometry(window, 1280, 720, 0);

Does someone knows if Unity already uses this feature?

That’s what I just came here to ask. Does Unity Free allow you to render to a smaller resolution? With all these extremely high DPI devices coming out, it’s not always best to render full res.

I did some research and found something similar. I’m not sure if it uses the Hardware scalar the article talking about or if Unity just renders to an offscreen surface, but either way you should get some performance improvements if you drop down to 720p on a 1080p phone or higher.

Use that and set it to fullscreen and it should scale. I’m not at my development machine though, so I can’t test it yet, but you should play with it to see how it handles multiple resolutions. It says it will try and match the closest one but I think it would be better if you grabbed the hardware info and set the resolutiona ccordingly to make sure you have the correct aspect ratio. And for unnecessary scaling as would be the case of a 768p phone, you don’t want to scale to 720p. Might actually lose more than you gain because of the scaling function.

You should also remember to scale your UI according to the device DPI using Android’s DP (device independent pixels) you can look up the math on the Android dev site. This way a menu that is the right size on a 720p phone will not be insanely large on a 720p tablet, you need to draw it much smaller on the tablet. Using Android DPs you can get a menu that is physically the same size on all screens regardless of resolution and screen size.

That all would have to be custom code in your GUI system.

Yes, using Screen.SetResolution() will use the hardware scaler.

Awesome!

Is it also working on iOS? I mean does Unity handle something similar?

Thanks.

Screen.SetResolution() also works with iOS.