xLightsSequencer / xLights

xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers.
GNU General Public License v3.0
540 stars 200 forks source link

Multiple text effects cause re-render #4646

Closed bobreese closed 4 weeks ago

bobreese commented 2 months ago

I have a simple 10 minute Non-music sequence with 1 picture and multiple text effects. A full render takes about 110 seconds. Problem is, if I click on one of the text effects, the sequence gets rendered again, click on another one, and its blank until the rendering has completed (again about 110 seconds). I have done Render - Save Tried multiple options for Hardware Video Decoding including Disabling it.

I understand I can always click the Suspend Render, but do not understand why clicking a text effect without making any changes causes it to re-render over and over again. I am including the sequence, Xlights log file, and 2 screenshots. Thanks for the time.

Screenshot 01 Screenshot 02 Stone Cronies.zip xLights_l4cpp.log

AzGilrock commented 2 months ago

Well we do re-render any effect you click on but it should not be re-rendering the entire sequence just what you clicked on. Clicking on an effect renders just that effect and shows the result in the model preview so you can actually see a different result in the final rendering once that model is blended with other layers. If the render time is the same its probably just cause the full render is taking advantage of multiple threads and rendering everything in parallel.
That sounds really slow though. I know on my Mac M1 Max I can render full 3 minute complex sequences in 30 seconds.

bobreese commented 2 months ago

I have even purged the render cache, closed XLights, reopened the sequence. Did a Full render, saved. And it still does it.... If you look at my Task Manger screenshot, its not like I dont have the CPU to do this yet it takes a long time...

AzGilrock commented 2 months ago

Yeah I didn't write the render cache stuff so I'm not familiar when its used. I personally keep it turned off because it uses up way more disc space than the benefit you might receive. I'm not at home so I really can't help look at this further right now.

cybercop23 commented 2 months ago

Tried this on TestFlight .. it is a 10 min seq on a VM 256x384 with full render of 38 seconds. It has 4 sections of layered text (3 min, 3min 2 & 2). What's interesting is that when you click on any of the effects in the first section it shows up instanteneous. The other 3 go through a full 30+ sec rerender before they show up (less if you remove the image that's accross the entire duration).

keithsw1111 commented 1 month ago

Because of the image clicking on a text effect will render the entire duration of the image which is likely the whole song. If this model is also in a group with effects then that will also render ... and before you know it the whole sequence is re-rendering. I like to call it render inflation.

I have often thought about implementing partial time rendering of effects but these days few effects support it and even if they do some settings effectively would stop it working. Interestingly render cache would allow for it but i dont think i ever tried to make that work.

bobreese commented 1 month ago

There are no groups involved in this sequence. Just the Text Effects and the one picture..... This is for a P5 panel only and no music.

keithsw1111 commented 1 month ago

Ok ... but that doesnt change anything ... the reason i stated remains true.

AzGilrock commented 1 month ago

Keith is that a change from how clicking on an effect used to work. I always thought we only re-rendered the effect you click on not every effect underneath it. That's why I thought you had to do a full render to get the layer blending from lower layers.

cybercop23 commented 1 month ago

I moved the Image down to the Tree Model, thinking the same, and the Matrix with only 3 layered texts still took a while to rerender. So if the image was on a diff model, that should not "force" the full length rerender, right?

keithsw1111 commented 1 month ago

@AzGilrock No it has always worked that way (at least since 2014). If it didnt then when you clicked on an effect you wouldnt see how it would actually look when you re-rendered the sequence. That would be super frustrating.

AzGilrock commented 1 month ago

Back in 2020 issue #2245 I had the following comment and I know I've seen it happen: "Well there are ways to create a sequence where clicking the effect changes the result from a render all but it’s a rendering order issue."

On 2024-07-09 11:23, Keith Westley wrote:

@AzGilrock [1] No it has always worked that way (at least since 2014). If it didnt then when you clicked on an effect you wouldnt see how it would actually look when you re-rendered the sequence. That would be super frustrating.

derwin12 commented 4 weeks ago

The underlying pic effect is causing the entire line to render. This is expected behavior.