Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Asset Forge

Create your own 3D models and 2D sprites! · By Kenney

Performance optimizations (Scale internal resolution and more)

A topic by Rodrigo Rocha created Aug 26, 2020 Views: 437 Replies: 5
Viewing posts 1 to 5
(1 edit)
  • An option to scale the internal resolution (while keeping the UI at high DPI) - it would be very useful for integrated cards.
  • Dont redraw the scene every frame if nothing is happening, like just static image and no input (this is the reason enabling vsync helps)
    • Nice side effect: less heat and better battery life

Thanks for the suggestions! Asset Forge is built using Unity so I don't have a whole lot of control over the rendering, I will however investigate both your suggestions and see if I can improve the performance on Mac.

Thanks! I think these suggestions can improve all versions by the way :)

Hey Kenney, I think there is a silver bullet here:
https://blogs.unity3d.com/pt/2020/02/07/how-on-demand-rendering-can-improve-mobi...
on-demand rendering does exactly what I suggested.

QUOTE:

What is on-demand rendering?

On-demand rendering allows you to skip rendering frames while still running the rest of the player loop at a high frequency. This can be especially useful on mobile; bypassing rendering can bring significant performance and power savings, while still allowing the application to be responsive to touch events.

Why would I use on-demand rendering?

Here are some example scenarios of when you may want to lower the frame rate:

  1. Menus (e.g., the application entry point or a pause menu): Menus tend to be relatively simple Scenes and as such do not need to render at full speed. If you render menus at a lower frame rate, you will still receive input during a frame that is not rendered, allowing you to reduce power consumption and to keep the device temperature from rising to a point where the CPU frequency may be throttled, while keeping a smooth UI interaction.
  2. Turn-based games (e.g., chess): Turn-based games have periods of low activity when users think about their next move or wait for other users to make their move. During such times, you can lower the frame rate to prevent unnecessary power usage and prolong the battery life.
  3. Static content: You can lower the frame rate in applications where the content is static for much of the time, such as automotive user interface (UI).
  4. Performance management: If you want to manage power usage and device thermals to maximize battery life and prevent CPU throttling, particularly if you are using the Adaptive Performance package, you can adjust the rendering speed.
  5. Machine learning or AI applications: Reducing the amount of work the CPU devotes to rendering may give you a little bit of a performance boost for the heavy processing that is the central focus of your application.
(1 edit)

Any news? It's barely usable on my notebook with i7  7300U and Intel HD 620. Instantly maxes out my iGPU when placing a single object

EDIT: Just found the settings for anti aliasing, setting that to low helped. Still, such a basic program should work smoother IMHO

I'm not sure if on-demand rendering has been implemented, but this is a project I worked on that makes it super easy and simple to integrate on-demand rendering into a unity project: link to GitHub.