Πρόβλημα με το Vsync σε GPU της Nvidia

Εδώ και λίγο καιρό αντιμετωπίζω πρόβλημα με το Vsync (πιο συγκεκριμένα, screen tearing) όταν χρησιμοποιώ τη GPU της Nvidia στο laptop μου. Χρησιμοποιώ Arch Linux με τον linux-zen kernel. Αρχικά νόμιζα ότι ήταν πρόβλημα του compositor που χρησιμοποιώ (picom, fork του compton), αλλά με λίγο ψάξιμο στο Arch Wiki παρατήρησα ότι υπάρχει πρόβλημα με το Vsync στις τελευταίες εκδόσεις του Linux kernel.

Με μια αναζήτηση κατάφερα και βρήκα ένα patch σε ένα thread σε forum της Nvidia το οποίο διορθώνει το πρόβλημα.

Επειδή δε γνωρίζω πως ακριβώς γίνεται η διαδικασία για το patch, θα ήταν δεκτή οποιαδήποτε βοήθεια.

Πριν δοκιμάσεις οποιοδήποτε patch παίξε λίγο με αυτές τις επιλογές

Ειδικά το Allow Flipping αν το απενεργοποιήσεις ενδέχεται να σου λύσει τα προβλήματα.

1 «Μου αρέσει»

Δυστυχώς, δεν έχω τέτοια επιλογή…

Δοκίμασε και μια το Linux-lts kernel του arch

2 «Μου αρέσει»

Με το Linux-LTS ο driver της Nvidia δουλεύει χωρίς κανένα πρόβλημα. Και η εναλλαγή από την ενσωματωμένη GPU (Intel) στη GPU της Nvidia γίνεται χωρίς προβλήματα.

Όμως αυτό που έψαχνα είναι το πως να εφαρμόσω το patch, έτσι ώστε να είναι ενεργός ο συγχρονισμός Vsync στις τελευταίες εκδόσεις του πυρήνα.

Το link που post-αρες από το thread στο forum της Nvidia, στην 7η απάντηση έχει ένα link για να κατεβάσεις το patch από το gitlab, όπου λέει και πώς γίνεται η εφαρμογή του :
https://gitlab.com/snippets/1927096

Καταλαβαίνω τι λες αλλά σκέψου 2 πράγματα :

  1. Η Nvidia και κάθε Nvidia ασχολείται μόνο με LTS Linux. Δεν σπαταλάει € παραπάνω για ότι νέο βγαίνει (κάθε 3 μήνες νέος κερνελ)

  2. Έστω εφαρμόζεις το patch. Την άλλη βδομάδα που θα βγει νέα έκδοση kernel ??? Θα πρέπει να ξανακάνεις… και πιθανόν να μην δουλέψει :slight_smile:

Γενικά έτσι «αχταρμάς» που είναι ο πυρήνας Linux να προτιμάς LTS. Εκτός και στην σπάνια περίπτωση που πρέπει να έχεις νέο κερνελ λόγο πχ κάποιας συσκευής , bug κλπ

3 «Μου αρέσει»

Η nvidia μια χαρά υποστηρίζει όλους τούς σταθερούς πυρήνες, όχι μόνο τούς LTS. Εμπειρικά υπάρχει πρόβλημα με τούς experimental. (Στον παλιό μου υπολογιστή που έχει nvidia όποτε έκανα το λάθος να βάλω μη σταθερό πυρήνα βρέθηκα χωρίς γραφικό περιβάλλον). Μπορεί να είμαι κατά τής nvidia αλλά πρέπει να παραδεχτεί κανείς την εντυπωσιακή συνέπεια που έχει η nvidia ως τώρα.

Διαφωνώ. Κανείς χρησιμοποιεί τον τρέχοντα πυρήνα τής διανομής του. Δεν υπάρχει λόγος προτίμησης τής LTS εκτός αν υπάρχει πρόβλημα. Βέβαια εδώ υπάρχει πρόβλημα και αυτό είναι ένας καλός λόγος να τρέχει την LTS. Σε Arch/Manjaro έχω πάντα εγκατεστημένο και τον LTS. Αν υπάρχει πρόβλημα στον τρέχοντα τότε τρέχω τον LTS και δεν έχω ως τώρα ασχοληθεί με πατς και παραμέτρους. Οπότε η αλήθεια είναι ότι εγώ θα χρησιμοποιούσα τον LTS και θα περίμενα απλά να λυθεί το πρόβλημα δοκιμάζοντας πότε-πότε τον τελευταίο.

2 «Μου αρέσει»

Υπάρχουν δυο API για να πατήσει πάνω τους ένας οδηγός. Το ένα με όνομα που έχει την λέξη GPL και ένα άλλο ποιο περιορισμένο χωρίς την απαγορευμένη λέξη. Το νομικό καθεστώς έχει μια δημιουργική ασάφεια, αλλά όλος ο κόσμος θεωρεί πως το δεύτερο είναι για τους κλειστούς οδηγούς που κάνουν tained τον πυρήνα.

Η NVidia χρησιμοποιεί την περιορισμένη διασύνδεση, αλλά υπάρχει ένα μεγάλο αλλά. Και οι δυο διασυνδέσεις δεν είναι σταθερές, και καμιά εγγύηση δεν υπάρχει πως δεν θα αλλάξουν στην επόμενη έκδοση. Ο πυρήνας εγγυάται σταθερότητα στις εξωτερικές του διασυνδέσεις σε χρονικά διαστήματα δεκαετίας και παραπάνω, όχι για τις εσωτερικές.

Κάνεις αναβάθμιση πυρήνα, αλλάζει ή εσωτερική διασύνδεση και χάνεις το υποσύστημα γραφικών. Το σενάριο αυτό δεν είναι θεωρητικό, και έχει παιχθεί αρκετές φορές στο παρελθόν. Οπότε σταθερότητα για να πατήσει ένας οδηγός γραφικών έχεις μόνο στις LTS εκδόσεις, όπου δεν αλλάζει η εσωτερική διασύνδεση τόσο εύκολα, χωρίς κανένας να σε διαβεβαιώνει για αυτό όμως.

2 «Μου αρέσει»

πολύ σωστά, αλλά

Εδώ κάνεις λάθος για τον απλό λόγο ότι η nvidia υποστηρίζει γενικά όλους τρέχοντες πυρήνες, όχι μόνο τούς LTS. Ίσως οι LTS έχουν μια έξτρα φροντίδα για αποφυγή bugs και προβλήματα για τον απλό λόγο ότι επηρεάζουν περισσότερο κόσμο για περισσότερο χρόνο, αλλά ότι θα παίξει το παραπάνω θέμα ρόλο δεν ισχύει.

Τεχνικά όχι όλους. Σύμφωνα με την ίδια υποστηρίζει

All official stable kernel releases from 2.6.32 and up are supported; pre-release versions, such as 4.19-rc1, are not supported.

Και πάλι όμως αυτό όμως δεν σημαίνει πως το σενάριο που περιέγραψα έχει μηδενικές πιθανότητες να επαναληφθεί. Μια καινούργια έκδοση, μπορεί να σπάσει το API αύριο, η κάποιος μη επίσημος πυρήνας. Η NVidia μπορεί μεν να ανταποκριθεί άμεσα, αλλά αν βιαστείς θα μείνεις με σπασμένο σύστημα, έστω και για λίγες μέρες.

ναι αυτό το ξέρω, είναι ο λόγος που έχω βρεθεί χωρίς (καθόλου) γραφικό περιβάλλον όποτε τούς έχω βάλει (κατά λάθος) όπως ανέφερα. Αυτό το ζήτημα όμως δεν έχει σχέση με αυτό που συζητάμε. Όλοι οι τρέχοντες πυρήνες όμως υποστηρίζονται. Όχι μόνο οι LTS.

Σημείωση: Το πραγματικό πρόβλημα με αυτό που λες είναι ότι αν σταματήσει η nvidia να υποστηρίζει το Linux τότε θα χάσουμε αυτήν την επιλογή όπως έχει συμβεί με την AMD (αλλά για την AMD έχουμε πια καλούς ανοικτούς). Ως τώρα η nvidia έχει υπάρξει αξιόπιστη. Πόσο σίγουροι όμως είμαστε ότι θα συνεχίσει να είναι συνεπής; Με τούς ανοικτούς οδηγούς δεν εξαρτόμαστε από μία εταιρεία και αυτό από μόνο του είναι πολύ σημαντικό πλεονέκτημα.

Είναι ακριβώς αυτό που λέω.

Όχι, μηδενικές πιθανότητες δεν έχει. Έχει όμως σχεδόν μηδενικές πιθανότητες.

Πάνω από 10 χρόνια είχα nvidia κάρτες γραφικών σε υπολογιστές μου και πρόβλημα σε αναβαθμίσεις να χα 1-2 φορές μόνο.

Ισχύουν τρεις χρυσοί κανόνες: δεν κάνεις updates την ώρα μηδέν - να την πατήσουν πρώτα κάποιοι άλλοι και μετά εσύ. Πριν τα updates κοιτάς το site του distro σου για τυχόν προειδοποιήσεις. Και έχεις πάντα και έναν lts kernel εγκατεστημένο έτσι ώστε με την κατάλληλη επιλογή στον grub να τον μπουτάρεις, όταν θα τα θκατώθει ο super duper bleeding edge kernel.