Izstrādātājs Adrian Betschart 7. septembrī nosūtīja AMD grafikas izstrādes sarakstam trīs ielāpus ar aptuveni 60 jaunām koda rindām. Tie amdgpu draiverī ieslēdz HDMI 1.4 stereoskopisko 3D izvadi. Intel i915 draiverī tā pati lieta strādā jau vairāk nekā desmit gadus.
Līdz šim Linux mašīna ar Radeon karti un 3D projektoru šo režīmu nevarēja iedot vispār. Ekrāns pats pasaka draiverim, kādus 3D formātus tas prot, taču amdgpu šo informāciju nolika plauktā un neizmantoja. Phoronix raksta, ka par šo caurumu pat starp Linux entuziastiem maz kas zināja, jo 3D ekrāni no lietošanas ir izzuduši.
Dati bija klāt visu laiku
Katrs HDMI ekrāns par sevi atstāj aprakstu EDID blokā. Tajā ir ražotāja datu bloks ar nosaukumu VSDB. Tur savukārt stāv saraksts ar 3D pārraides veidiem, kurus ekrāns pieņem. Linux kopīgais DRM slānis šo bloku izlasa jau gadiem un no tā izvelk 3D režīmu sarakstu.
Betschart pieteikumā norāda, ka amdgpu šo gatavo sarakstu nekad nav aizticis, kamēr Intel i915 to lieto jau labu laiku. Praktiskā izpausme bija dīvaina: uz vienas mašīnas ar Intel integrēto grafiku 3D izvade strādāja, ar Radeon karti tā paša ekrāna 3D režīmi režīmu sarakstā neparādījās. amdgpu draiveris kodolā ir kopš 2015. gada, tātad caurums nostāvēja apmēram 11 gadus.
Daļa atbildes slēpjas amdgpu uzbūvē. Displeja daļu tajā apkalpo koda bloks DC, kuru AMD raksta vienu reizi un lieto gan Linux, gan Windows draiverī. Tāpēc funkcijas, ko Linux DRM slānis piedāvā visiem, amdgpu jāpievieno atsevišķi ar savu līmi starp DRM un DC. Kas šo līmi neuzraksta, to arī neiegūst.
Trīs formāti no 2010. gada
Ielāpi pievieno trīs HDMI 1.4 pārraides veidus: frame packing, top-and-bottom un side-by-side. Pirmais abus acu kadrus liek vienā lielā kadrā vienu zem otra ar atstarpi starp tiem, tāpēc 1080p 3D signālam kadra izmērs kļūst 1920 × 2205 punkti. Otrie divi saspiež abus skatus pa vertikāli vai horizontāli un tādēļ katrai acij atdod pusi no izšķirtspējas.
Šie formāti nāk no HDMI 1.4 specifikācijas, kas iznāca 2009. gadā un ko televizoru ražotāji izmantoja 3D vilnī pēc filmas “Avatar”. Standartā tie nekur nav pazuduši. Pazuda ekrāni, kas tos rāda.
Displeja kodols par 3D pat nezina
Interesantākais ir tas, cik maz šeit jādara aparatūrai. Betschart mehānismu apraksta īsi:
Avots iepako abus skatus kadrā un displeja kodols to izvada kā parastu 2D; vienīgā 3D specifiskā izvade ir HDMI ražotāja infokadrs.
Kadru tātad saliek pati atskaņošanas programma, piemēram, mpv vai Kodi. Draiveris pievieno vienu infokadru, kurā pateikts, kā ekrānam šo bildi lasīt. Pieteikuma pirmajā ielāpā paskaidrots, kāpēc netiek lietoti AMD displeja kodola DC iebūvētie stereo laika formāti: tie aparatūru dzen pavisam citā gultnē, nekā šai shēmai vajag.
No tā izriet arī tas, kāpēc pietiek ar 60 rindām. Kods aparatūru nemāca zīmēt stereo attēlu. Tas atļauj režīmu sarakstā parādīties 3D taimingiem un pareizi aizpilda infokadru.
Testa stends ir viens projektors
Pieteikumā nosaukta konkrēta aparatūra. Radeon RX 7600 karte, kas iekšēji ir Navi 33 ar DCN 3.2.1 displeja bloku. Projektors JVC DLA-RS4100. Starp tiem HDFury VRROOM pārslēgs. Video avots bija Kodi uz LibreELEC caur GBM, tas ir, bez darbvirsmas vides.
Kods rakstīts pret kodolu 7.2.3 un pēc tam pārlikts uz amd-staging-drm-next zaru, lai pārbaudītu vismaz kompilēšanos. Pārbaudīts ir viens dzelžu savienojums. Uz citiem DCN variantiem vai caur DisplayPort adapteriem rezultāts nav mērīts.
Kam šis vēl noder
3D televizori no veikaliem aizgāja ap 2016. gadu, kad ražotāji pārslēdzās uz 4K un HDR. Projektoru pusē stereoskopija palika dzīva, jo mājas kino nišā aktīvās 3D brilles joprojām pārdod. Pastāv arī 3D Blu-ray disku kolekcijas, kuras kāds grib atskaņot bez Windows.
Kodi šo scenāriju atbalsta gadiem. Kodi dokumentācijā frame packing ir aprakstīts kā vienīgais no trim veidiem, kas neupurē izšķirtspēju. Tā trūkums uz Radeon aparatūras līdz šim atstāja izvēli starp Intel grafiku un pusizšķirtspējas režīmu.
Lietotāja pusē tas nozīmē divas prasības. Vajag atskaņotāju, kas prot izdot iepakotu stereo kadru, kā arī vajag laist to pilnekrānā tieši uz ekrāna režīmu. Darbvirsmas logi 3D nekļūst, jo ne Wayland kompozitori, ne X serveris šos formātus neizmanto.
Kas notiek tālāk
Sērija pagaidām ir tikai pieteikta. Ielāpu pavadvēstule stāv amd-gfx sarakstā un gaida AMD uzturētāju atbildi. Ja to pieņem, funkcija nonāk kādā no nākamajiem kodola laidieniem.
Betschart nav AMD darbinieks. Ielāpus viņš sūtīja no uzņēmuma domēna cinemaone.ch. Visa pieteikumā uzskaitītā testa aparatūra ir viena mājas kino iekārta.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.