Performance considerations when skinning - Printable Version +- Kodi Community Forum (https://forum.kodi.tv) +-- Forum: Development (https://forum.kodi.tv/forumdisplay.php?fid=32) +--- Forum: Skinning (https://forum.kodi.tv/forumdisplay.php?fid=12) +--- Thread: Performance considerations when skinning (/showthread.php?tid=368525) |
RE: Performance considerations when skinning - Andrea1998 - 2023-03-29 (2023-03-29, 11:32)realcopacetic Wrote: Be careful with Photoshop. Exporting a PNG as grayscale is likely to convert it back into an RGB at the export stage. Same with Save for Web. You need to use Save and then choose smallest (slowest) for the ideal grayscale image. https://community.adobe.com/t5/photoshop-ecosystem-discussions/grayscale-png-larger-file-size-than-rgb/td-p/12656783 Thank you for your interest in my post, I am grateful for your reply, in fact I changed my plans because photoshop I think is not very good in this, I used Affinity Photo 2, much more valid for exporting in grayscale and multiple editing always in grayscale. @sarbes I hope we can use this version or an updated version of the Texture Packer, as scott967 previously mentioned, to make better use of grayscale PNGs in Kodi 21. RE: Performance considerations when skinning - mikeSiLVO - 2023-04-30 This was a very interesting read. I tried to use RenderDoc, however, I have not been successful following the Debugging_via_Renderdoc (wiki). DXGI_ERROR_DEVICE_REMOVED I've somewhat recently returned to skinning and was curious how my skin could be improved If you had the time to take a look at my current version, I would truly appreciate any recommendations that you had GitHub link RE: Performance considerations when skinning - Andrea1998 - 2023-09-16 I ask the administrators (especially @sarbes), but will it be necessary to use this in advancedsettings, or will this be implemented by default in the future version of kodi and will already be active by default?
I thank you all. RE: Performance considerations when skinning - Hitcher - 2023-09-18 (2022-06-18, 02:26)sarbes Wrote: For most skins, the info dialog seems to cover the whole screen. Even in those cases, the background elements are still being processed and rendered. It would be very beneficial to set them to being invisible via the <visible> tag. The GUI engine has no way to tell when underlying elements are covered, so everything has to be rendered If there is a reason why this isn't done I'm not aware of, please tell me.I tried to add this to my skin and I found out you can only use WindowOpen or WindowClose animations on windows so there's no way to use Conditional fade animations based on dialog visibility. RE: Performance considerations when skinning - Hitcher - 2023-09-18 (2022-06-18, 02:26)sarbes Wrote: In the content view, you can ditch the uniform filtering texture and animate the diffuse color as soon as https://github.com/xbmc/xbmc/pull/21400 drops.So instead of using a transparent black texture I should use a solid white one with a diffuse fade animation instead? RE: Performance considerations when skinning - nessus - 2023-11-04 This is one of the most important threads in the skin development forum. IMHO someone should create a sticky thread (like Skin Engine changes) with all the progress about this in Kodi core and a guidance for skinners to implement these optimizations to the skins. In any case thanks @sarbes for all your work and for sharing all this knowledge with us. Keep it up. Cheers Nessus RE: Performance considerations when skinning - jurialmunkey - 2023-11-05 (2023-11-04, 17:36)nessus Wrote: IMHO someone should create a sticky thread (like Skin Engine changes) with all the progress about this in Kodi core and a guidance for skinners to implement these optimizations to the skins. I've stickied this thread now. I think the wiki page in Sarbes' first post is probably the place to go for documentation of changes. GUI works seems fairly involved so probably not changing frequently enough from the skinning side of things to need a running history -- the wiki page seems to cover everything and can be updated if there are more PRs related to GUI optimisations for skinning For reference, these github filters are useful for finding merged PRs relating to GUI stuff (not perfect but generally captures most and the description will talk about rationale). https://github.com/xbmc/xbmc/issues?q=label%3A%22Component%3A+GUI+rendering%22+is%3Amerged https://github.com/xbmc/xbmc/issues?q=label%3A%22Component%3A+GUI+engine%22+is%3Amerged RE: Performance considerations when skinning - Andrea1998 - 2023-12-15 @jurialmunkey If I can ask you why I think Sarbes is no longer active... Will we have to use this code when we have the stable version of kodi 21 omega? <advancedsettings version="1"> <gui> <fronttobackrendering>true</fronttobackrendering> </gui> </advancedsettings> To be able to enable this rendering? or will it already be active by default and we shouldn't do anything? Thanks for your help RE: Performance considerations when skinning - sarbes - 2023-12-29 I'm still active, just not as much and not on the forum. Private life got the best of me. Unfortunately due to the movie version issue delaying the branching of Omega, I can't merge my current progress. I've restructured a lot of code and split it into smaller chunks, which are easier to review. Omega won't receive front to back rendering, or single channel textures (2023-09-18, 22:09)Hitcher Wrote:Ditch the texture and modulate the diffuse color of the underlying element directly. It should bring very similar results.(2022-06-18, 02:26)sarbes Wrote: In the content view, you can ditch the uniform filtering texture and animate the diffuse color as soon as 21400 (PR) drops.So instead of using a transparent black texture I should use a solid white one with a diffuse fade animation instead? (2023-09-18, 17:18)Hitcher Wrote:If I have the time, I'll check on that.(2022-06-18, 02:26)sarbes Wrote: For most skins, the info dialog seems to cover the whole screen. Even in those cases, the background elements are still being processed and rendered. It would be very beneficial to set them to being invisible via the <visible> tag. The GUI engine has no way to tell when underlying elements are covered, so everything has to be rendered If there is a reason why this isn't done I'm not aware of, please tell me.I tried to add this to my skin and I found out you can only use WindowOpen or WindowClose animations on windows so there's no way to use Conditional fade animations based on dialog visibility. RE: Performance considerations when skinning - Hitcher - 2023-12-29 (2023-12-29, 20:59)sarbes Wrote: If I have the time, I'll check on that.I actually worked around it by putting all the controls for those windows in a group with the visible condition to hide it when the info dialog is open.
RE: Performance considerations when skinning - Hitcher - 2023-12-29 (2023-12-29, 20:59)sarbes Wrote: Ditch the texture and modulate the diffuse color of the underlying element directly. It should bring very similar results.I did try doing this but I could never get the same effect. The overlay is 45% transparent black but using that value in an animation 73000000 just results in everything being black.
RE: Performance considerations when skinning - sarbes - 2023-12-29 (2023-12-29, 21:27)Hitcher Wrote:Yeah, that would be expected. Whatever values R/G/B have, you are multiplying them with zero. The value you want would be something like(2023-12-29, 20:59)sarbes Wrote: Ditch the texture and modulate the diffuse color of the underlying element directly. It should bring very similar results.I did try doing this but I could never get the same effect. The overlay is 45% transparent black but using that value in an animation FF737373 . Alpha stays the same, but R/G/B get toned down. It functions exactly like normal diffuse color behavior, just animated.
RE: Performance considerations when skinning - Hitcher - 2023-12-30 (2023-12-29, 22:50)sarbes Wrote: Yeah, that would be expected. Whatever values R/G/B have, you are multiplying them with zero. The value you want would be something like FF737373. Alpha stays the same, but R/G/B get toned down. It functions exactly like normal diffuse color behavior, just animated.I get it now, thanks. RE: Performance considerations when skinning - Andrea1998 - 2024-04-07 (2023-12-29, 20:59)sarbes Wrote: I'm still active, just not as much and not on the forum. Private life got the best of me. Forgive me, I saw that you were inactive for some time and so I naively thought so, I understand you perfectly. Can I ask you if "front to back rendering" or "single channel textures" will be added with an update in this version 21 omega, or will we have to wait for a new version of kodi like kodi 22 P.. in the future? In case of addition, should we activate them with the command: <fronttobackrendering>true</fronttobackrendering> in "advancedsettings" or is everything automatic? I ask because they are important versions that in my opinion deserve to be added, performance and stability are much more important even compared to other new features. Sorry but I only saw it now, as I wasn't tagged, so I didn't look at the thread anymore... Thank you very much for your precious help. RE: Performance considerations when skinning - sarbes - 2024-09-19 To give you an update, the front to back rendering path has been merged, and is in an experimental stage. Single and dual channel texture support has been merged. The packer for Piers will now reduce PNGs to more optimized texture formats. Make sure that unused texture channels are pure white, preferably disable the alpha channel and go for grey scale PNGs. Compressed textures are next, which will add favourably to performance, while being virtually lossless in quality (for typical skin textures). This saves 50% of resources over the already optimized formats. If ASTC is used, the savings can exceed 75%, depending on the block size/texture content. |