White flicker on moving through UI after update to 4.2.3
-
Oh, I see.
Correct, I can replicate it as well, as you leave the game. It happens because Carbon uses the SVGs in two different sizes, and when it gets back the first one it renders is the smaller version. Well caught.
I didn't expect you to have flicker with both options, in that the case, though.
Back to looking into this.
-
@josete2k If you turn both options off, and restart ES, surely you shouldn't see a flicker, do you?
You may see a slight stutter, as the images are now loaded before they're shown, but not a flicker as before. Do you confirm?
Also, what transition are you using - slide or fade?
-
@pjft yes sorry, the white flickering was becuse I updated ES from the retropie menu.
Now, with both options in OFF the SVG loads a little slow than ON but is not noticeable.
-
@pjft do you suspect that is because the .svg has the same name? If it used two different names it would not be the case at it would "remember" them each independently?
Does this happen only within the same system you entered a rom in? Or all systems after entering a rom, exiting, and then switching systems?
-
@josete2k Correct. It should low slightly slower first time around (instead of flickering, it ensures it's loaded).
@TMNTturtlguy If the theme used two different names, that would likely work, but that would kind of subvert the purpose of having a SVG in the first place, which is to be able to resize it at will without quality loss - and if you can re-use it in the same theme, that should still be supported. Not to mention that it would take up double the memory, which is what the "re-use" option attempts to fix :)
I'll see what I can do about this.
I like to know that ON/ON and OFF/OFF are suitable solutions for different kinds of problems people have with themes, but I'd like to avoid OFF/OFF, precisely because of the performance hit.
Thanks a lot everyone! I'm calling it a night.
-
@pjft thanks for your hard work! Get some rest and have a nice night!
-
I'm just glad people here are so helpful
-
@RedBatman
This community "offers" some very kind people! I love it -
@josete2k I should have fixed it now. I'm trying to force the SVG to be kept in memory to always be the highest resolution used in the theme.
Hopefully this fixes things. Changes have been made both to this build as well as to the OMX branch.
Download and test using the exact same instructions as before - it's the same link. You'll know you're in the right one as it will no longer have the Multithreaded and Re-Use SVGs options.
To ensure you're using it right, though, you may want to remove the two new option values from your ES-Settings (multithreaded images, and re-use SVGs), or set them to "true, true" in your current build before reinstalling as they are now gone from the menu, and defaulted to "true, true".
All of you testing, let me know how it goes. And thanks a lot for catching that one yesterday, @josete2k !
Edit: I've been testing a bit more, and while it seems to be fairly improved, it's still not eradicated. I'll keep digging into this.
-
@pjft yes flickering is still there.
-
@pjft I will be on late tonight, probably while you are getting some rest. I plan to test on my comic book theme and carbon theme. I will test with my 12 systems and then load up 20 or so and see what happens.
If there are any specific tests or things you want time to look into let me know here or on the PR comments. I will check both and report back. Thanks!
-
@josete2k hopefully the issue with the system logos has disappeared, though? And the flickering should hopefully not be as bad as it was before?
@TMNTturtlguy thanks. I'm trying one final thing - hoping it solves it, but compilation takes quite a bit, so still waiting.
-
Another point...
With the "old" emulationstation, if I set ON Re-Use theme images and Multithreaded in OFF, the white stripe (where the system.svg is loaded) is thinner than normal.
-
@pjft yes, the flickering is... a little "shorter" now.
It happens with the logo in the right side on the screen.
Before it was until it arrived to the center.
Controllers are shown OK.
-
@josete2k said in White flicker on moving through UI after update to 4.2.3:
Another point...
With the "old" emulationstation, if I set ON Re-Use theme images and Multithreaded in OFF, the white stripe (where the system.svg is loaded) is thinner than normal.
Can you test with the new one only and check whether it is normal? That combination should not be useful anymore.
I'm still looking into this - thanks for the details!
Update:
Yeah, this is still somewhat borked. I'm calling it a night, tomorrow is a work day.
I'll keep looking into this in the coming days and see if there's anything that I can think of further.
-
@pjft I have done extensive testing of your update, and first off, let me just say, you are a miracle worker!
Now to some quick notes - I will also leave feedback on the github PR.
Test 1: Comic Book Theme (heavy theme, 17 systems loaded, uses .svg files) VRAM at 100
- After boot up it looks amazing, i can slide with little to no stutter at all, the slide is very smooth, logos and backgrounds load very fast and clean. Every now and then there is a mili-second of a black flash if you want to call it that, but compared to the very large white flashing, this looks so smooth and clean.
- After entering a game and exiting: .png background reload time can vary, sometimes fast, sometimes a slight stutter. Exiting back to system select screen. The first time scrolling to the right, there is a large black flash, and the .png system logos now have a white box flash for a half second before the .png logo loads. After one full cycle, everything goes back to completely smooth. I also noted this does not happen after every time i exit a game. Sometimes, it works smoothly.
Video of this test:
Test 2: Carbon Theme 17 systems loaded VRAM 100
- This reacts the exact same as the comic book theme did. I notice the same stutter after exiting roms and the same white box on the logos when sliding right. These logos are .svg in carbon. From my testing, it seems like your current solution as fixed the use of .svg and .png, not it is just figuring out how to get the white boxes to disappear after exiting a game.
Test 3: Comic Book Theme (heavy theme, 17 systems loaded, uses .svg files) VRAM at 120
- This is absolutely amazing! I can scroll through as fast as I can hit my arrow buttons and never flash or loose the background! After existing a game, the first time though there is a black flash and the logos are still white, after the first time through, it is back to lightning fast speeds.
Video of this test:
Overall - amazing work! I have not seen any negative affects, only major positives. I would suggest this is an upgrade to the current White Screen of Death fix. Even if not perfect yet. I plan to keep this running as my main ES and will report anything else i see back.
EDIT: After more testing with the comic book theme I can create glget errors. More information on this at the Github PR.
-
@TMNTturtlguy Thanks for the testing.
As usual, I'd be hoping that my changes would not have caused any particular increase of glGet errors, at least nothing that wouldn't have happened before, but that's yet another thing to chase.
Yes, thanks to @josete2k 's feedback I have indeed narrowed it down to mostly how to fix things after launching a game and coming back.
ES is unloading all textures when it launches a game, so that we have enough memory available to play the games. However, when we get back I am so far struggling to make it work or understanding why that is happening. I have a few theories I'll be chasing down, but it's a puzzle for me. Nothing short of killing ES and actually restarting it seems to fix it for good. Even fully reloading a theme doesn't seem to make a difference.
So yeah, that's where we're at.
I'll also be testing it with a very old ES version, to understand whether this is a regression or whether this used to happen in the past, as that might yield some clues.
We'll see.
Thanks all!
-
@pjft I am not sure that your new changes have caused a new way to get glget errors. Take a look at my more detailed testing and report on the PR comments. I have additional notes, testing and another video there. I did or want to duplicate my posts on both sites, so I kept the forum post to a synopsis of my larger post.
As you and I both found, we had been able to reproduce glget errors with several systems running on the comic book theme prior to your modification. I had found that it ran fine at VRAM 100 but in order to operate as smooth as possible and avoid Glget errors it was beneficial to run at a different VRAM, slightly lower or higher than 100. I was also never able to scroll at extremely high speeds as I can now. Lastly, as noted on GitHub I cannot create glget errors on other themes such as carbon or futura.
-
@TMNTturtlguy Thanks for the reply. I'll make sure to dutifully read both posts, but thanks for the extensive posting. Hopefully you had a great family weekend! :)
-
Hi,
Don't know if this helps but I managed to get rid of the White Flash altogether on my created theme.
- Rpi3
- Latest RetopiePie build
- Video & Marquee support enabled
- 18 Systems and adding
- Scraped boxart within retropie
- Game shot images dl'd from web
- different backgrounds for system view and gamelist view (PNG 30kb, 6kb)
- 10 extra image elements added to both system view and gamelist view* (PNG 85kb, 4kb, 2kb, 8kb, 6kb, 10kb, 4kb, 4kb, 31kb, 8kb)
What I did...
I changed my 'background png' from 1920x1080 to 1280x720 and batch shrank my scraped and dl'd images (boxart/game shot) down from approx. 300kb to 50kb - This seemed to stop the white flash completely on my theme and runs smooth on all parts.My thoughts
I believe it was the weight of my theme (pretty light) and the weight of the scraped boxart/game shot images together causing the White Flash in my opinion, only happened since RP4.2.Hope this helps...
Cheers,
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.