Search Feedback

1089
votes

Pause render loop for lower power consumption on mobile

Graphics

-

-

Instead of clearing and re-rendering the scene every frame, allow the application to indicate that nothing on screen is changing and thus the rendered image from the previous frame should be reused.

This will allow more static applications (e.g. heavily GUI-oriented apps, and perhaps some turn-based games) to have improved battery life on mobile devices, by eliminating unnecessary re-rendering if it is known that nothing on screen has changed state.

Comments (20)

  1. 49a337c02f37c44472cab5d95a0c4918?d=mm

    korypse

    Dec 15, 2018 22:48

    Are you going to do something ???

  2. 789e9d62f1d13a51b7bd8a5c45e8b21b?d=mm

    IcyHammer

    Oct 02, 2018 08:43

    Still nothing new on this topic?

  3. 0a1f62379324aa95976fe89df4e6c5fe?d=mm

    AuroraUnit

    Jun 12, 2018 08:40

    I really wish we could see progress on this issue. Unity could become an incredibly powerful tool in the app development space if we could control the rate at which new frames are drawn.

  4. 2e49b1a133c7613b33f8f0ab8231ae58?d=mm

    Stamp-Enzi

    May 30, 2018 16:34

    Before 2017.3 it was possible to get a hacky implementation of this with turning the camera on/off and have a Don't clear flag set. Now it's broken and it was never a good idea to begin with sadly. There has to be a solid/easy solution as the difference, even with the hack in battery consumption was huge!

  5. 53feab7217ab59dbd65aecb7c6c5f6c6?d=mm

    Ferazel

    Jun 09, 2017 19:18

    I mean we're 90% of the way there. If we enter a game situation where the game is statically rendering you could set the Application.targetFramerate to something really low. This would reduce the cpu/gpu usage considerably. The problem was that input would be lost between frames. My hope was that the new Input System would allow me to reset the artificially lowered frame rate with an API that would reset the Application.targetFramerate. However, I found out recently that this is currently not the case even with the new Input System. If we could get that callback, we could do this fairly easily. The problem is we don't want to delay input until the next frame. We need to make some noise and make sure that this is a priority!

  6. E730ad272c18949dc9e4daf4b7b68bb8?d=mm

    Nsingh13

    Mar 31, 2017 23:41

    Added 10 votes. The one and ONLY thing I need right now :(

  7. 11f68d28abc7a230cfd0ec85713c71a5?d=mm

    Bitfabrikken

    Mar 26, 2017 12:47

    What's the status on this?

  8. 5aba354f204210046ce62cc9abdb4a63?d=mm

    AdamDavidson

    Jun 07, 2016 10:23

    This would also be useful for saving laptop battery life and also keeping them cooler and quieter. Our application is industrial visualization/CAD and a lot of time can be spent with nothing moving in the scene. Having control over suspending/resuming rendering (while keeping that last frame visible) would be great for our users.

  9. Bb36179ff583fef089e730f998c76e68?d=mm

    salgado18

    May 19, 2016 19:14

    Assuming the screen is tiled on mobiles (except Tegra), if a tile only contains fully opaque UI on a non-world canvas, and nothing on the tile has changed, it should be skipped altogether. Is this the proposal, right?

Your opinion counts

Help us make things better. Share your great idea for improving Unity or vote for other people’s.

Log in to post a new idea

Categories

All

(10883)

2D

(287)

Ads

(57)

AI & Navigation

(81)

Analytics

(130)

Animation

(406)

Asset Store

(363)

Asset Store Publisher

(19)

Assets

(551)

Audio

(185)

Cloud Build

(146)

Collaborate

(67)

Docs & Tutorials

(246)

Editor

(2545)

Everyplay

(17)

Game Performance Reporting

(21)

General

(987)

Graphics

(894)

GUI

(442)

Input

(173)

Licensing

(93)

Networking

(189)

Physics

(387)

Platforms

(445)

Profiling & Optimization

(84)

Runtime

(185)

Scripting

(1141)

Terrain

(174)

WebGL

(142)