You are not logged in.
Hi, I have recently upgraded my old HTPC from kodi 18.9 to Kodi 19.1 and cannot get the same smooth video playback. 18.9 ran great on my old hardware, smooth 1080p playback and low cpu.
Now videos show stuttering, especially 1080p but sometimes 720p too and cpu is usually around 90%.
I updated a lot of packages that day, including
ffmpeg from 2:4.3.1-4 -> 2:4.4-3
kodi from 18.9-3 -> 19.1-1
I posted in the Kodi forum but was immediately directed here. A debug log is here: https://pastebin.com/F6ACAL3W
CPU is AMD 4850e (old, I know)
GPU is NVidia GT1030
(I acutally used to use an older GT430 with the nvidia 390xx driver, worked perfectly on kodi 18.9, but I swapped to the GT1030 thinking it might solve the problem)
Currently using
libvdpau 1.4-1
nvidia-dkms 465.31-1
nvidia-utils 465.31-1
kernel versions: 5.12.11 and 5.10.44-lts
I've tried options in the advancedsettings.xml but no difference.
I also tried removing the databases and re-importing library, and even went as far as deleting the entire ~/.kodi directory and reinstalling kodi but no change.
I can play the exact same video (1920x1080 x264 video) with VLC and MPV and have perfect playback, smooth and low cpu (about 5-6%)
e.g. if I use "$ mpv --hwdec=auto ~/1080p_video_file.mkv" the driver is reported to be cuda and playback is good
In Kodi there are no options for me to choose hardware acceleration. How can I force Kodi to use the driver I want it to, is there an environment variable I can set?
Last edited by farmerdave (2021-06-21 10:11:14)
Offline
Same problem here. Lost all hardware decoding and deinterlacing.
What I can make out is that even kodi-git compiled with -DENABLE_VDPAU=ON does not seem to use VDPAU at all. I'm also unable to produce relevant debug logging...
There were rumors of VDPAU removal in Kodi 19, but I cannot make out if this actually happened. If they did, and continue to refuse to support NVDEC, they are really leaving NVIDIA users in the dust...
Last edited by Mischa85 (2021-06-19 22:07:08)
Offline
Same problem here. Lost all hardware decoding and deinterlacing.
What I can make out is that even kodi-git compiled with -DENABLE_VDPAU=ON does not seem to use VDPAU at all. I'm also unable to produce relevant debug logging...
There were rumors of VDPAU removal in Kodi 19, but I cannot make out if this actually happened. If they did, and continue to refuse to support NVDEC, they are really leaving NVIDIA users in the dust...
Good to know I'm not alone here, been reading wiki's and forums for days now!
If I press 'o' while watching a video I get
Video Decoder: ff-h264 (SW)
pxel format: yuv420p
The arch wiki in this section (https://wiki.archlinux.org/title/Kodi#H … ingle_core) says
...go to System Settings > Video. Set the settings level to Advanced or Expert. Then go to Acceleration and set Decoding method to software
but that section does not exist for me, so I cannot choose between hardware and software.
Using the examples on https://wiki.archlinux.org/title/Hardwa … celeration, both vaapi and vdpau are working (according to vainfo and vdpauinfo). Using https://wiki.archlinux.org/title/Hardwa … rification example
$ mpv --hwdec=auto video_filename
(+) Video --vid=1 (*) (h264 1920x808 23.976fps)
(+) Audio --aid=1 --alang=eng (*) (dts 6ch 48000Hz)
(+) Subs --sid=1 --slang=eng (*) (subrip)
Using hardware decoding (nvdec).
AO: [pulse] 48000Hz 5.1(side) 6ch float
VO: [gpu] 1920x808 cuda[nv12]
AV: 00:00:02 / 02:28:06 (0%) A-V: 0.000 Cache: 193s/129MB
but changing it to hwdec=vdpau plays poorly and high cpu
$ mpv --hwdec=vdpau video_filename
(+) Video --vid=1 (*) (h264 1920x808 23.976fps)
(+) Audio --aid=1 --alang=eng (*) (dts 6ch 48000Hz)
(+) Subs --sid=1 --slang=eng (*) (subrip)
AO: [pulse] 48000Hz 5.1(side) 6ch float
VO: [gpu] 1920x808 yuv420p
AV: 00:00:06 / 02:28:06 (0%) A-V: 0.000 Cache: 232s/150MB
If I could just find a flag or environment variable to set when starting Kodi to use nvdec I would be happy! Or is there a setting in advancedsettings.xml I could use? (I already tried "vdpauscaling" both true and false) If I need to recompile kodi, I can do that too, just need to know what to set.
Offline
I compiled the kodi packages myself, doing nothing except clone the svntogit-community repo and commenting out the GBD and wayland builds as I only needed x11. I did a makepkg and then replaced kodi-common and kodi-x11 packages on my system with the ones compiled locally. Now a new option appears in the Kodi Settings, which was not there before when using the distribution package:
https://i.imgur.com/i0idibX.png
and HW acceleration appears to be working fine again!
Mod Edit - Replaced oversized image with link.
CoC - Pasting pictures and code
Last edited by Slithery (2021-06-28 18:33:35)
Offline
Are you able to run through the steps for this ?
I did the following:
svn checkout --depth=empty svn://svn.archlinux.org/community
which created a directory community
I then ran
svn update kodi-common
which returned
At revision 967647
but did not create any files. What am I missing ?
Thank you.
Offline
I am getting closer.
I ran
svn update kodi
Updating 'kodi':
A kodi
A kodi/repos
A kodi/repos/community-x86_64
A kodi/repos/community-x86_64/0001-allow-separate-windowing-binaries-being-launched-fro.patch
A kodi/repos/community-x86_64/10160.patch
A kodi/repos/community-x86_64/10775.patch
A kodi/repos/community-x86_64/17804.patch
A kodi/repos/community-x86_64/18131.patch
A kodi/repos/community-x86_64/9703.patch
A kodi/repos/community-x86_64/PKGBUILD
A kodi/repos/community-x86_64/cheat-sse-build.patch
A kodi/repos/community-x86_64/cpuinfo
A kodi/repos/community-x86_64/fix-ftpparse.patch
A kodi/repos/community-x86_64/fix-python-lib-path.patch
A kodi/trunk
A kodi/trunk/PKGBUILD
A kodi/trunk/0001-allow-separate-windowing-binaries-being-launched-fro.patch
A kodi/trunk/cheat-sse-build.patch
A kodi/trunk/18131.patch
A kodi/trunk/17804.patch
A kodi/trunk/cpuinfo
A kodi/trunk/fix-ftpparse.patch
A kodi/trunk/fix-python-lib-path.patch
A kodi/trunk/10775.patch
A kodi/trunk/10160.patch
A kodi/trunk/9703.patch
Updated to revision 967686.
Which created the structure etc.
However if I then start makepkg I get this
makepkg
==> Making package: kodi 19.1-1 (Mon Jun 28 20:41:14 2021)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
-> Downloading kodi-19.1-Matrix.tar.gz...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- - 0 0 0 0 0 0 0 0 --:--:-- -100 126 100 126 0 0 289 0 --:--:-- --:--:-- --:--:-- 289
0 14 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
curl: (22) The requested URL returned error: 404
==> ERROR: Failure while downloading https://github.com/xbmc/xbmc/archive/refs/tags/v19.1.tar.gz
Aborting...
Offline
I compiled the kodi packages myself
...
and HW acceleration appears to be working fine again!
Thanks, fixed for me too! Wondering why it broke in the first place, the only thing I can see is that the order was changed since 19.0-9 so x11 is now compiled last instead of first:
https://github.com/archlinux/svntogit-c … 5eb9b7203a
I am getting closer.
However if I then start makepkg I get this
You'll need to tweak the PKGBUILD, see:
https://bugs.archlinux.org/task/71222
And depending on your Java version:
https://github.com/xbmc/xbmc/pull/19885
Offline
Getting closer, but I am having trouble getting past the java issue.
I applied these two changes to my CMakeLists.txt:
https://github.com/wsnipex/xbmc/commit/ … 302623509d
https://github.com/xbmc/xbmc/pull/19891/files
and my CMakeLists.txt now looks like this:
function(generate_file file)
set(classpath ${GROOVY_DIR}/groovy-all-${GROOVY_VER}.jar
${GROOVY_DIR}/commons-lang-${COMMONS_VER}.jar
${CMAKE_SOURCE_DIR}/tools/codegenerator
${CMAKE_CURRENT_SOURCE_DIR}/../python)
if(NOT CORE_SYSTEM_NAME STREQUAL windows AND NOT CORE_SYSTEM_NAME STREQUAL windowsstore)
set(devnull "/dev/null")
string(REPLACE ";" ":" classpath "${classpath}")
else()
set(devnull "nul")
endif()
set(CPP_FILE ${file}.cpp)
if(CLANGFORMAT_FOUND)
set(CLANG_FORMAT_COMMAND COMMAND ${CLANG_FORMAT_EXECUTABLE} ARGS -i ${CPP_FILE})
endif()
if(Java_VERSION_MAJOR GREATER 8)
set(JAVA_OPEN_OPTS --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.util.regex=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED)
endif()
add_custom_command(OUTPUT ${CPP_FILE}
COMMAND ${SWIG_EXECUTABLE}
ARGS -w401 -c++ -o ${file}.xml -xml -I${CMAKE_SOURCE_DIR}/xbmc -xmllang python ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file}
COMMAND ${Java_JAVA_EXECUTABLE}
ARGS ${JAVA_OPEN_OPTS} -cp "${classpath}" groovy.ui.GroovyMain ${CMAKE_SOURCE_DIR}/tools/codegenerator/Generator.groovy ${file}.xml ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template ${file}.cpp > ${devnull}
${CLANG_FORMAT_COMMAND}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../swig/${file} ${CMAKE_CURRENT_SOURCE_DIR}/../python/PythonSwig.cpp.template)
set(SOURCES ${SOURCES} "${CPP_FILE}" PARENT_SCOPE)
endfunction()
find_package(Java COMPONENTS Runtime REQUIRED)
find_package(SWIG REQUIRED)
# The generated bindings
set(INPUTS AddonModuleXbmcaddon.i
AddonModuleXbmcdrm.i
AddonModuleXbmcgui.i
AddonModuleXbmc.i
AddonModuleXbmcplugin.i
AddonModuleXbmcvfs.i
AddonModuleXbmcwsgi.i)
set(GROOVY_DIR ${CMAKE_SOURCE_DIR}/tools/codegenerator/groovy)
set(GROOVY_VER 2.4.4)
set(COMMONS_VER 2.6)
foreach(INPUT IN LISTS INPUTS)
generate_file(${INPUT})
list(APPEND GEN_SRCS ${CMAKE_CURRENT_BINARY_DIR}/${INPUT}.cpp)
endforeach()
add_library(python_binding STATIC ${SOURCES})
set_target_properties(python_binding PROPERTIES POSITION_INDEPENDENT_CODE TRUE
FOLDER "Build Utilities")
set(core_DEPENDS python_binding ${core_DEPENDS} CACHE STRING "" FORCE)
add_dependencies(python_binding ${GLOBAL_TARGET_DEPS})
if(CORE_SYSTEM_NAME STREQUAL windowsstore)
set_target_properties(python_binding PROPERTIES STATIC_LIBRARY_FLAGS "/ignore:4264")
endif()
but when I run makepkg I get the following:
Generating AddonModuleXbmcwsgi.i.cpp
Caught: java.lang.reflect.InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @1b68ddbd
java.lang.reflect.InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @1b68ddbd
at Generator$_run_closure1.doCall(Generator.groovy:43)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at Generator.run(Generator.groovy:39)
make[2]: *** [build/swig/CMakeFiles/python_binding.dir/build.make:112: build/swig/AddonModuleXbmcwsgi.i.cpp] Error 1
make[1]: *** [CMakeFiles/Makefile2:10815: build/swig/CMakeFiles/python_binding.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
==> ERROR: A failure occurred in build().
Aborting...
Not sure what I am doing wrong. Thank you.
Offline
but when I run makepkg I get the following:
Generating AddonModuleXbmcwsgi.i.cpp Caught: java.lang.reflect.InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @1b68ddbd java.lang.reflect.InaccessibleObjectException: Unable to make field protected transient int java.util.AbstractList.modCount accessible: module java.base does not "opens java.util" to unnamed module @1b68ddbd at Generator$_run_closure1.doCall(Generator.groovy:43) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at Generator.run(Generator.groovy:39) make[2]: *** [build/swig/CMakeFiles/python_binding.dir/build.make:112: build/swig/AddonModuleXbmcwsgi.i.cpp] Error 1 make[1]: *** [CMakeFiles/Makefile2:10815: build/swig/CMakeFiles/python_binding.dir/all] Error 2 make: *** [Makefile:146: all] Error 2 ==> ERROR: A failure occurred in build(). Aborting...
Not sure what I am doing wrong. Thank you.
It's still using the original xbmc/interfaces/swig/CMakeLists.txt
Unless you tell it otherwise makepkg will extract the source again and overwrite any changes you have made.
Offline
Unless you tell it otherwise
Are you able to give me some guidance on how I do that ? I changed my PKGBUILD using the -S option, but that does not seem to fix it and I am getting the same error.
# build x11 version last that will make it fallback in the launcher script
echo "building kodi-x11"
cmake -S "xbmc-${pkgver}-Matrix" \
${_cmake_common_args[@]} \
-DCORE_PLATFORM_NAME=x11 \
../"xbmc-$pkgver-Matrix"
make
}
Thank you.
Offline
Are you able to give me some guidance on how I do that ? I changed my PKGBUILD using the -S option, but that does not seem to fix it and I am getting the same error.
# build x11 version last that will make it fallback in the launcher script echo "building kodi-x11" cmake -S "xbmc-${pkgver}-Matrix" \ ${_cmake_common_args[@]} \ -DCORE_PLATFORM_NAME=x11 \ ../"xbmc-$pkgver-Matrix" make }
Thank you.
Read the makepkg manual, and all should become clear!
Offline
I had a look through the man pages but am none the wiser. Any chance you can give me some pointers ?
Offline