I find it funny how all this time I didn't know that hardware acceleration in VLC was disabled if multithreading is enabled. It really boggles my mind how this basic feature of modern video cards gets sidelined in Linux. Luckily, we have a fix for that, which should work with both VA-API and VDPAU. To disable multithreading:
Go to Tools -->Preferences -->Input/Codecs -->(select all in the lower left) -->under Input/Codecs on the left panel click on downward arrow in the first option "Video Codecs" -->click on FFmpeg -->find option called "Threads" and set it from 0 to 1 -->Save.
Now close and open VLC and play your videos. They should now be properly hardware accelerated.
In the end, you can choose between software multithreading and hardware decode. Thank FFmpeg developer for that.
Why? See this mail-list thread: https://ffmpeg.org/pipermail/ffmpeg-dev ... 87494.html
For mpv player, use --hwdec=vaapi option in the terminal, because hardware decoding is disabled by default.
This was tested using VA-API on Intel card using GNOME Wayland. Somehow, using my Radeon card (radeon drm driver) tears heavily some videos.
Why is video tearing present on Wayland is a mystery, but who cares, right?