Is there a way (at a hardware level) to set the OUYA to only output in 720p? It would be VERY helpful if there were a really simple way to control that output.
I agree, my game is designed for 720P originally. But the Ouya (with unity) is forcing 1080i on my TV. My game is not super resolution dependant, so it works in the end, but it would look nicer at 720p. And framerate would be better. Unity doesn't seem to allow me to force resolution on the Ouya. So if we had a settings menu to let us change the consoles resolution that would be ideal.
Actually it shouldn't be affecting your framerate, it'll still render at whatever resolution you set it to (in Unity anyways), and that's what affects your framerate. The automatic scaling to your output resolution shouldn't take hardly any processing time at all.
But I'd still prefer to have an option in the OUYA system menu to choose the resolution, because if it output 720p that would look better on many tv's than if the TV has to scale down 1080p to its native resolution (which will often happen because most tv's support 1080p signals, even if they only have 720p pixels).
No I was trying to straight OUTPUT in 720p (rendered and displayed). Currently the upscaled version runs faster (FPS wise) but looks worse (being upscaled). Would like to have it just output 720p from the OUYA (signal strength) not the current 1080p as it is doing.
I am going to try it on a few different television sets as well to see if what happens when I give it different display requirements.
My first test failed as I couldn't get any output from the OUYA on a 720p Westing House display.
I'm sure it'll scale to 1080p any any TV that accepts a 1080p signal, so to test at true 720p you'd have to find a TV that can't even accept 1080p in the first place (but *can* accept 720p). For that it'll most likely have to be a few years old.
The ideal solution is for the OUYA team to support a manifest tag specifying whether the game supports 720p and 1080p. Have the console output at the highest supported resolution and let the TV do the scaling.
I'm working on resolving this issue on our end right now. Here's what we'd like to do right now:
- All games/apps default to running at 720p
- We'll provide a way of running an app at 1080p, via either a method init call or possibly the manifest
We'll still need to create a 1080p frame buffer when the console boots, but we expect that only outputting at 720p should improve performance / frame rate (we need to test this first though).
Sounds great to me. I'd prefer a method init call for the resolution, so I could have the resolution be an option in my game settings (720p/60fps or 1080p/30fps).
I see what you mean, but not sure how possible that will be for us. I'm still looking into it, but it might be something you set once when the app is init'd... may not be switchable while the app is running. That would be ideal, again, just not sure if we can do it. Will keep you updated.
Of course rendering at 720p will be faster, it's 50% less fill rate needed.. if fill rate is the main issue, although that's not everything - number of polygons, draw calls, physics, logic, etc.. so maybe more like 20-30% difference? Still it might help with some games. I'd like to be sure there is definitely an EASY way to render to a proper 1080p resolution. I don't want to be stuck at 720p when I have a 1080p tv.
Here we're talking about outputting to 720p vs 1080p, not rendering to those resolutions. Of course rendering to those resolutions makes a huge performance difference, and it's really easy right now to render to one resolution or the other, regardless of the output. Whatever you render to, will get scaled to fill whichever resolution the device is outputting. That scaling is what shouldn't cause hardly any performance impact.
On Android, unless composition bypass is enabled, your frame will be upscaled to 1080p as part of the composition process. That siad, I'm not sure if the Tegra 3 has any special handling for upscaling output to HDMI, so it's possible it's the same operation anyway.
For performance, it's far more important that they have composition bypass enabled; blitting a full 1080p frame has quite a measurable impact, not to mention the increased latency.
It's nice to see support for this, especially with some TVs that do more than bilinear interpolation.
We're still working with Nvidia on a solution but we don't have anything to offer yet. It's a relatively new challenge on Android since the system wasn't designed for an external-only (HDMI) display.
For now, if you're using a Java full-screen SurfaceView (e.g. GLSurfaceView), you can reduce the size of the surface you use which gave us a frame rate boost in our test app. For example:
surfaceView.getHolder().setFixedSize(1280, 720);
If you're running native-only (e.g. NativeActivity) you can use ANativeWindow object to do the same thing:
int32_t ret = ANativeWindow_setBuffersGeometry(window, 1280, 720, 0);
If you constructed your surface in Java-land and don't already have ANativeWindow available, you can determine it via:
@gkb, just a quick word on our end - please do not limit to 720p by default in the future. We currently use 1080p @60fps natively here without any problem on OUYA with several thousand animated sprites - and we'd like to keep it that way; game is beautiful and running perfectly :) It would be a shame to downgrade to 720p! Thank you.
Me too, my game is aiming at smooth frame rates in 1080p and that's one of its selling points, so I'd really like it to stay easy and simple to use this mode. ... But I do recognize also for some projects it's okay to sacrifice resolution in favor of a sizeable reduction in filtrate. And some people only have 720p televisions so there it would make sense to do 720p work internally rather than process everything in 1080p and then `throw away pixels`. But I don't know how the downsizing works from 1080 to 720 - is there any bilinear filtering or just like a nearest neighbor thing?
My TV is 1080i, but accepts 1080p signal. From what I can see, it does bilinear filtering to scale down, possibly some other form of scaling, but it's certainly not nearest neighbor...it looks just fine.
Please keep as its i purchased it to use it with my 73" Sony holow LED 1080P as my TV can control the Auto resolution plugin and video enhancement plugin by separate controller Auto or manual.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
I'm working on resolving this issue on our end right now. Here's what we'd like to do right now:
- All games/apps default to running at 720p
- We'll provide a way of running an app at 1080p, via either a method init call or possibly the manifest
We'll still need to create a 1080p frame buffer when the console boots, but we expect that only outputting at 720p should improve performance / frame rate (we need to test this first though).
Sound okay?
@gkb Just curious if there was any progress on this. I don't care too much because in Unity I just set the screen resolution and it's all good, but native output at 720p, at least as a system setting, would be nice.
@gkb We would like to insist - please keep it as is, up to the devs to setup 720p output. An automatic checkup of resolution at boot would be good, if possible, but putting at 720p by default would be a shame. Thank you.
@gkb We would like to insist - please keep it as is, up to the devs to setup 720p output. An automatic checkup of resolution at boot would be good, if possible, but putting at 720p by default would be a shame. Thank you.
I completely agree. 1080p should be default on 1080p televisions.
Dont punish devs that know how to write fast fragment shaders with a forced 720p.
Comments
But I'd still prefer to have an option in the OUYA system menu to choose the resolution, because if it output 720p that would look better on many tv's than if the TV has to scale down 1080p to its native resolution (which will often happen because most tv's support 1080p signals, even if they only have 720p pixels).
Screen.SetResolution( 1280, 720, 0 );
Now your game will render at 720p and be upscaled :)
Wasn't that what you were trying to accomplish in the first place?
Nexus Game Studio | @ NexusGameStudio
We currently use 1080p @60fps natively here without any problem on OUYA with several thousand animated sprites - and we'd like to keep it that way; game is beautiful and running perfectly :) It would be a shame to downgrade to 720p! Thank you.
www.yummycircus.com
Please keep as its i purchased it to use it with my 73" Sony holow LED 1080P as my TV can control the Auto resolution plugin and video enhancement plugin by separate controller Auto or manual.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
www.yummycircus.com