How to set 720p or 1080p output only?

wtftadwtftad Posts: 7Member
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.

Thanks!
«1

Comments

  • Orb0Orb0 Posts: 7Member
    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.
  • DreamwriterDreamwriter Posts: 768Member
    edited January 2013
    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).
    Post edited by Dreamwriter on
  • Killa_MaakiKilla_Maaki Posts: 504Member
    You CAN force the resolution in Unity. In your game code:
    Screen.SetResolution( 1280, 720, 0 );
    Now your game will render at 720p and be upscaled :)

    You didn't remember the plot of the Doctor Who movie because there was none; Just a bunch of plot holes strung together.
  • wtftadwtftad Posts: 7Member
    Thanks for the heads up on Unity....we are not using that tool but it is another feather in their cap.

    Now I am stuck trying to use the manifest file to emulate something similar.
  • IQpierceIQpierce Posts: 54Member
    Did you have any luck with that, wtftad?
  • wtftadwtftad Posts: 7Member
    edited January 2013
    Well...sort of! Here is what I did (got some help from another poster for this....thanks error!!)

    (this should go in your manifest file)

    <supports-screens android:smallScreens="false" android:normalScreens="false" android:xlargeScreens="false" android:largeScreens="true" android:anyDensity="false" />

    This enabled the output to be 720p but my television still up-scaled it to 1080p.  So yes and no.

    I cannot find a way to FORCE 720p OUYA output.
      
    Post edited by wtftad on
  • Killa_MaakiKilla_Maaki Posts: 504Member
    wtftad: So you're saying it's RENDERING at 720p, but then being UPSCALED to 1080p?
    Wasn't that what you were trying to accomplish in the first place?
    You didn't remember the plot of the Doctor Who movie because there was none; Just a bunch of plot holes strung together.
  • wtftadwtftad Posts: 7Member
    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.




  • DreamwriterDreamwriter Posts: 768Member
    edited January 2013
    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.
    Post edited by Dreamwriter on
  • wtftadwtftad Posts: 7Member
    I think that is correct as well.  My problem is that I cannot get the OUYA to output correctly on a 720p only television set.

    I am going to check a few more issues before I seek additional support.
  • hypercanestudioshypercanestudios Posts: 126Member
    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.
  • gkbgkb Posts: 14Member
    Hi folks,
    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?
  • DreamwriterDreamwriter Posts: 768Member
    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).
  • gkbgkb Posts: 14Member
    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.
  • wtftadwtftad Posts: 7Member
    Thanks very much for this!  

    Also, thank you for reacting as quickly as you are, that is greatly appreciated!

  • NexusGameStudioNexusGameStudio Posts: 42Member
    Great to hear! Setting it as a manifest permission would be ideal if possible.
  • imaginaryhumanimaginaryhuman Posts: 55Member
    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.
  • DreamwriterDreamwriter Posts: 768Member
    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.
  • noctnoct Posts: 122Member
    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.
  • gkbgkb Posts: 14Member
    Quick update on this...
    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:
    ANativeWindow* window = ANativeWindow_fromSurface(jni_env, surfaceObj);
    where surfaceObj would be passed in via a JNI call from the Java app.

    Suggestions and improvements are welcome!

  • PuzzlPuzzl Posts: 98Member
    @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.
  • gkbgkb Posts: 14Member
    @Puzzl, absolutely.  At most we would set 720p to be an app default but we would not want to remove 1080p support by any means.
  • imaginaryhumanimaginaryhuman Posts: 55Member
    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?
  • gkbgkb Posts: 14Member
    @imaginaryhuman, I'm not exactly sure.  We have 720p-only TVs to test on though, so whatever we do will work with them too.
  • AyrikAyrik Posts: 429Member
    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.
    Saga Heroes - Adventure RPG
    image image
  • SharshoorSharshoor Posts: 1Member

    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" />

  • AyrikAyrik Posts: 429Member
    gkb said:
    Hi folks,
    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.
    Saga Heroes - Adventure RPG
    image image
  • gkbgkb Posts: 14Member
    @Ayrik, unfortunately no updates on this.  For now, the best we can offer is a recommendation to use a lower screen rez, as you mentioned.
  • PuzzlPuzzl Posts: 98Member
    @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.
  • stolkstolk Posts: 119Member
    Puzzl said:
    @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.
Sign In or Register to comment.