← All ideas
  • Published 5 Oct 2019

Give UI responsiveness priority instead of rendering.

This is probably only an issue for myself and people with more modest hardware, but I find it's quite hard to set up materials in the Shading layout, as Blender will give priority to updating the render instead of changing the value first, then updating it. That has led into many instances where nodes where placed in the wrong place, disconnected, reconnected at the wrong socket, values set with a mouse suddenly are maxed out or zeroed since the UI still thinks I'm holding the value slider, etc.

100%

Development Status: Open

Upvote 10 Downvote 0
bruno.souza.lino
5 Oct 2019

7 Comments

rcsfletcher

Keep in mind that the foundation has limited resources and has to work on what's most beneficial for the broadest group of people. Spending man hours optimising something that 99% of users will gain no benefit from isn't good economics. If I were you I'd turn off live rendering. I'd never expect a low spec machine to be able to hand rendering and interaction at the same time.

bruno.souza.lino Author

* @rcsfletcher * By that logic, how you (and the Foundation) expect Blender to be used in schools then? They also have limited resources and can't simply 'throw money' at the problem.

Historically speaking, this would be more of a regression than a drastic change, as Blender didn't have live updates for anything before a certain version. Also, this is not optimization per say. It's just prioritizing something that's IMO is more important (UI responsiveness) than other (rendering previews in real time), as you'll have to wait for the render to finish anyways, regardless of how previews are rendered.

Josephbburg

* @bruno.souza.lino * The BF's goal is to make Blender more capable of creating films. If they're going to make Free and Open Source Software that's equivalent or better than the proprietary software, they have to keep Blender focused on being extremely robust. They have a separate project in the works for education, Blender 101. Perhaps it could benefit from this sort of modification.

As I said in my other response, I think the solution is to delay the feedback until the choices are committed, and maybe make an option to delay refreshing with a timer/button/etc. The difficulty I foresee is that Blender might need to keep multiple copies of the node-trees or render data and that could actually adversely affect performance instead of improving it.

Cycles is unique in its deep integration into Blender while retaining instant responsiveness. Arnold and Renderman are only just now attempting viewport rendering in 2018. Cycles has been doing it since ~2012. That's Cycles' strength and so it needs to be improved in a way that builds on this strength.

Josephbburg

If you're using Cycles, you can lower the pixel scale, size of the window, number of samples. That should improve things. Also render border.

bruno.souza.lino Author

* @Josephbburg * I have the same issues on Eevee as well.

Josephbburg

* @bruno.souza.lino * Ehh, that's a GPU thing, then. EEVEE is using the GPU that the OS wants to use to refresh the screen. I don't think there's an easy way to solve this that will please everyone. Power-users that use Blender professionally in a studio setting have strong enough machines and appreciate the instant feedback. Often these users have multiple GPUs, so they don't experience the problem at all.

I think the trouble is that two programs are trying to use the GPU at the same time, and I don't know if it's possible to work around that without weakening EEVEE in some way.

But there are some improvements that can and should be made. I can't tell you how many times I've crashed Blender by editing color ramps while Cycles was running. I think there could be a toggle for instant feedback or feedback only after the changes are committed. I'd at least like an option to make Blender to wait until I've finished moving color-ramps around and moving sliders. But who knows how much work that would entail?

bruno.souza.lino Author

* @Josephbburg * Cycles rarely has those issues for me because my GPU is not supported by it and I rarely use it, as it's considerably slower than Eevee with generally worse end results (A render that takes 1 minute for Eevee to complete takes Cycles 1 hour and the Cycles result is always noisy and full of fireflies).