2018-04-06, 05:05
It's funny what you discover when trying to fix seemingly unrelated Kodi Krypton GPU rendering related issues like the (now fixed) LibreELEC Kodi Krypton - AMLogic S912 subtitles - stuttering video playback problem.
Some background reading:
HOW-TO:Modify dirty regions (click)
Kodi - NEWS/DEV JOURNAL - Working with dirty regions [2011] (click)
The XBMC/Kodi Dirty Regions rendering code appears to be pretty old and was needed back in the day when media players had relatively slow CPU's and weak GPU's with constricted, slower GPU memory bandwidth capabilities. RPi's likely still need DR.
New ARM GPU's like the Mali-T820 in the AMLogic S912's now employ superior rendering technologies like ARM - ASTC, AFBC, SC and TE to reduce memory bandwidth needed for data transfer and display rendering. ASTC tech (click) is also present in Nvidia's Maxwell-based Tegra SoCs and Intel GPUs in Skylake and later processors.
ARM Graphics and Multimedia - Mali Technologies (click)
After disabling Dirty Regions, the rendering performance increase for LibreELEC AML S912 Kodi Krypton was such that CPU software decoding and smooth playback of 1080p 11Mbps 10bit H264 aka Hi10P Anime is now possible. The Kodi GUI is now a lot smoother too.
LibreELEC developers have had a discussion over in the Slack chat forum and have found even modern LE/Linux Kodi - Intel hardware benefits from disabling Dirty Regions completely now too, resulting in a smoother Kodi GUI there as well.
For ARM GPU - Kodi users with newer GPU hardware, like AMLogic S912's and I would think the Maxwell microarchitecture GPU found in the NVIDIA Shield, and very likely the Imagination PowerVR GPU's found in the Apple TV 4/4K. It might be worth plugging in a Kodi advancedsettings.xml file and disabling Kodi's Dirty Regions functionality completely there as well.
Copy the following code to a plain text file named advancedsettings.xml - save to a USB stick and use Kodi's File Manager to copy the .xml file into the "Profile" directory.
W.
Some background reading:
HOW-TO:Modify dirty regions (click)
Kodi - NEWS/DEV JOURNAL - Working with dirty regions [2011] (click)
The XBMC/Kodi Dirty Regions rendering code appears to be pretty old and was needed back in the day when media players had relatively slow CPU's and weak GPU's with constricted, slower GPU memory bandwidth capabilities. RPi's likely still need DR.
New ARM GPU's like the Mali-T820 in the AMLogic S912's now employ superior rendering technologies like ARM - ASTC, AFBC, SC and TE to reduce memory bandwidth needed for data transfer and display rendering. ASTC tech (click) is also present in Nvidia's Maxwell-based Tegra SoCs and Intel GPUs in Skylake and later processors.
ARM Graphics and Multimedia - Mali Technologies (click)
After disabling Dirty Regions, the rendering performance increase for LibreELEC AML S912 Kodi Krypton was such that CPU software decoding and smooth playback of 1080p 11Mbps 10bit H264 aka Hi10P Anime is now possible. The Kodi GUI is now a lot smoother too.
LibreELEC developers have had a discussion over in the Slack chat forum and have found even modern LE/Linux Kodi - Intel hardware benefits from disabling Dirty Regions completely now too, resulting in a smoother Kodi GUI there as well.
For ARM GPU - Kodi users with newer GPU hardware, like AMLogic S912's and I would think the Maxwell microarchitecture GPU found in the NVIDIA Shield, and very likely the Imagination PowerVR GPU's found in the Apple TV 4/4K. It might be worth plugging in a Kodi advancedsettings.xml file and disabling Kodi's Dirty Regions functionality completely there as well.
Copy the following code to a plain text file named advancedsettings.xml - save to a USB stick and use Kodi's File Manager to copy the .xml file into the "Profile" directory.
Code:
<advancedsettings>
<gui>
<algorithmdirtyregions>0</algorithmdirtyregions>
</gui>
</advancedsettings>