Posts by jaum20
-
-
mine is a 3229 and goes between 85 degrees and 93, how come yours reaches 70?Use a lighter skin like quartz and see if something changes
It's strange because
- I'm using an image with this patch
- the two files are used only with software decoded streams(during my experiments, eventually broken shaders cause only black screen during playback)
I forgot to say that the whole procedure must be performed as super user, because otherwise there is the risk that the resulting filesystem may have wrong permissions.
In any case, the correct procedure would be to recompile the image with the patch. I'll try to send it to the project maintainer.Okay. I redid the whole thing as root and everything is fine now. Thanks
-
In my Rockchip, the average is around 70 ºC
-
It's strange because
- I'm using an image with this patch
- the two files are used only with software decoded streams(during my experiments, eventually broken shaders cause only black screen during playback)
I forgot to say that the whole procedure must be performed as super user, because otherwise there is the risk that the resulting filesystem may have wrong permissions.
In any case, the correct procedure would be to recompile the image with the patch. I'll try to send it to the project maintainer.I'll try again as root. Thanks for your attention.
Edit. Everything is working fine now. Thank you
-
Assuming that you have a linux distribution:
- flash image as usual on a SD card
- mount first partition of sd card on your linux machine
- explode libreelec filesystem with squashfs tools
at this point under squashfs-root you can find the exploded filesystem of libreelec.
- replace file squashfs-root/usr/share/kodi/system/shaders/GLES/2.0/gles_yuv2rgb_basic.frag
Code
Display More/* * Copyright (C) 2010-2013 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * <http://www.gnu.org/licenses/>. * */ #version 100 precision mediump float; uniform sampler2D m_sampY; uniform sampler2D m_sampU; uniform sampler2D m_sampV; varying vec2 m_cordY; varying vec2 m_cordU; varying vec2 m_cordV; uniform vec2 m_step; uniform mat4 m_yuvmat; uniform mat3 m_primMat; uniform float m_gammaDstInv; uniform float m_gammaSrc; uniform float m_toneP1; uniform vec3 m_coefsDst; uniform float m_alpha; void main() { vec4 rgb; vec4 yuv; #if defined(XBMC_YV12) || defined(XBMC_NV12) yuv = vec4(texture2D(m_sampY, m_cordY).r, texture2D(m_sampU, m_cordU).g, texture2D(m_sampV, m_cordV).a, 1.0); #elif defined(XBMC_NV12_RRG) yuv = vec4(texture2D(m_sampY, m_cordY).r, texture2D(m_sampU, m_cordU).r, texture2D(m_sampV, m_cordV).g, 1.0); #endif /* START PATCH: DISABLE BT.709 colorspace conversion rgb = m_yuvmat * yuv; rgb.a = m_alpha; #if defined(XBMC_COL_CONVERSION) rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); #if defined(XBMC_TONE_MAPPING) float luma = dot(rgb.rgb, m_coefsDst); rgb.rgb *= tonemap(luma) / luma; #endif #endif END PATCH: DISABLE BT.709 colorspace conversion */ gl_FragColor = vec4(vec3(m_yuvmat * yuv),m_alpha); }
- replace file squashfs-root/usr/share/kodi/system/shaders/GLES/2.0/gles_yuv2rgb_bob.frag
Code
Display More/* * Copyright (C) 2010-2013 Team XBMC * http://xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, see * <http://www.gnu.org/licenses/>. * */ #version 100 precision highp float; uniform sampler2D m_sampY; uniform sampler2D m_sampU; uniform sampler2D m_sampV; varying vec2 m_cordY; varying vec2 m_cordU; varying vec2 m_cordV; uniform float m_alpha; uniform mat4 m_yuvmat; uniform float m_stepX; uniform float m_stepY; uniform int m_field; uniform mat3 m_primMat; uniform float m_gammaDstInv; uniform float m_gammaSrc; uniform float m_toneP1; uniform vec3 m_coefsDst; void main() { vec4 rgb; vec2 offsetY; vec2 offsetU; vec2 offsetV; float temp1 = mod(m_cordY.y, 2.0 * m_stepY); offsetY = m_cordY; offsetU = m_cordU; offsetV = m_cordV; offsetY.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY); offsetU.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY) / 2.0; offsetV.y -= (temp1 - m_stepY / 2.0 + float(m_field) * m_stepY) / 2.0; float bstep = step(m_stepY, temp1); // Blend missing line vec2 below, below, below; belowY.x = offsetY.x; belowY.y = offsetY.y + (2.0 * m_stepY * bstep); belowU.x = offsetU.x; belowU.y = offsetU.y + (m_stepY * bstep); belowV.x = offsetV.x; belowV.y = offsetV.y + (m_stepY * bstep); vec4 rgbAbove; vec4 rgbBelow; vec4 yuvAbove; vec4 yuvBelow; yuvAbove = vec4(texture2D(m_sampY, offsetY).r, texture2D(m_sampU, offsetU).g, texture2D(m_sampV, offsetV).a, 1.0); rgbAbove = m_yuvmat * yuvAbove; rgbAbove.a = m_alpha; yuvBelow = vec4(texture2D(m_sampY, belowY).r, texture2D(m_sampU, belowU).g, texture2D(m_sampV, belowV).a, 1.0); rgbBelow = m_yuvmat * yuvBelow; rgbBelow.a = m_alpha; rgb = mix(rgb, rgbBelow, 0.5); /* START PATCH: DISABLE BT.709 COLOR CONVERSION #if defined(XBMC_COL_CONVERSION) rgb.rgb = pow(max(vec3(0), rgb.rgb), vec3(m_gammaSrc)); rgb.rgb = max(vec3(0), m_primMat * rgb.rgb); rgb.rgb = pow(rgb.rgb, vec3(m_gammaDstInv)); #if defined(XBMC_TONE_MAPPING) float luma = dot(rgb.rgb, m_coefsDst); rgb.rgb *= tonemap(luma) / luma; #endif #endif END PATCH: DISABLE BT.709 COLOR CONVERSION */ gl_FragColor = rgb; }
- repackage squash filesystem, copy to sd card and umount
Code# mksquashfs squashfs-root/ SYSTEM -comp gzip # cp SYSTEM /some_mountpoints/SYSTEM # umount /dev/mmcblk0p1
that's all.
NB: This patch disables BT.709 color conversion that is slow on my mali 400 because it's using the pow math function.
Thank you. I followed these steps and everything looked to be ok, but when I tried to start the system I got an error message "failed to start login service". The system starts but a lot of services are no running (ssh, etc). I think I will have to back to the original image.
-
Searching on kodi official github I've found
- Kodi PR#15286 improved rendering performance: · wrxtasy/CoreELEC@8f98ed7 · GitHub CoreELEC patch that is basically what I've done with my box
- [GLES] memcpy instead multi glTexSubImage2D for planes with pitch by peak3d · Pull Request #15286 · xbmc/xbmc · GitHub discussion of what is the problem
- Kodi 18.0 stutters when playing DVD files (VIDEO_TS) on Fire TV · Issue #15405 · xbmc/xbmc · GitHub discussion (now closed) that let me thinking kodi devs will never accept this kind of patch (that is, obviusly, more like a workaround than a solution)
At this point let me know knaerzche if you think reasonable to patch only this libreelec port.
Just for share my experience:
- I've switched back to stable (only because I don't need an external wifi usb adapter)
- patched kodi (no overclock.. no governor... only shaders)
and now, I'm able to play well also netflix/prime tv shows with the appropriate kodi addon (assuming sd quality that is the max available resolution with the DRM addon usable with libreelec).
Can you please elaborate how to apply this patch? I would like to be able to play hevc files without system reboot,
Thank you
-
-
Many thanks for this! Any tips to make the playback smoother?