Our great sponsors
-
Vrmac
Vrmac Graphics, a cross-platform graphics library for .NET. Supports 3D, 2D, and accelerated video playback. Works on Windows 10 and Raspberry Pi4.
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
> It seems the Pi’s raw CPU frequency is still not powerful enough for decoding 100% of the time. While 97-98% of the time is good enough, you will get the occasional “screen tearing”
I don’t think that’s inadequate hardware performance. I think that’s Linux GPU stack. More specifically, the parts where hardware acceleration integrates with that decades-old X11.
I once made a toy project for Pi4 that can render GLES content either with or without desktop manager: https://github.com/Const-me/Vrmac/ I did observe occasional tearing on desktop, with both 3D content or accelerated h264 video. Maximizing window into borderless fullscreen didn’t help. However, rebooting into console and running the same code on top of DRM/KMS without X11 resulted in no tearing.
How do projects like this work?
https://github.com/librespot-org/librespot
It's a reverse-engineered version of the "Spotify Connect" protocol. [1] The original name of "librespot" was "spotify-connect", as this fork shows.
[1]: https://github.com/Fornoth/spotify-connect/blob/master/READM...
For Spotify I use Raspotify[1] which uses librespot library. It works flawlessly, controlling what to play from any smartphone on same local network. After last update finally podcasts work too.
Netflix I watch in Kodi Netflix Addon. Worked great so far with no screen tearing.
[1]: https://github.com/dtcooper/raspotify
> It’s hard to implement vsync properly when there’s a socket connecting application to display server.
A simple counter question: Does glXSwapBuffers work?
Answer: Yes, this X protocol extension which most often is synced to vblank works when you aren't dealing with a broken compositor.
> Otherwise it gonna introduce presentation latency (especially bad for online games)
Given KDE and GNOME, this seems like complaining about a patch of dirt in a pigsty. Historically they had really bad latency in the name of adding more eye candy. Gnome pulls the full screen check to avoid it some of the time and KDE seems to have gotten some much needed patches just recently[1].
[1] https://github.com/tildearrow/kwin-lowlatency
Related posts
- Spotify CEO Daniel Ek tells investors Apple's DMA rules are a 'farce'
- 2023 Dec 4 Stickied -FAQ- & -HELPDESK- thread - Boot problems? Power supply problems? Display problems? Networking problems? Need ideas? Get help with these and other questions!
- Headless Spotify client for Spotify connect
- Anyone annoyed with the lack of features? Spotify is resting on their laurels
- Resources for flip phone app development?