DLSS 5 Neural Rendering uz Linux tagad palaižams ar Vulkan slāni, kas paņem gatavu kadru no spēles, aizsūta to Windows programmai zem Wine vai Proton un saņem apstrādāto attēlu atpakaļ. Projekts DLSS5VKLayer GitHub parādījās 5. septembrī. Trīs dienās autors ar segvārdu bmitch87 tam uzlika deviņus komitus un sešus laidienus. Pēdējais no tiem, 0.2.5-3, iznāca 8. septembrī.
NVIDIA neironu filtrs lietotājiem pieejams kopš 4. septembra, kad iznāca NBA 2K27. HotHardware to nomērīja uz GeForce RTX 5070 Ti pie 2560 × 1440 ar DLSS kvalitātes režīmu: bez filtra spēle rādīja ap 240 kadriem sekundē, ar filtru 68,9. Minimums nokrita no 168,2 uz 52,3 kadriem. Modelis pārzīmē katru kadru, tāpēc aizņem aptuveni 71 % no veiktspējas.
Kadrs aizceļo uz Wine un atgriežas
Slānis sauc VK_LAYER_NV_dlssnr un ielādējas netieši, taču strādā tikai tad, ja spēle palaista ar mainīgo VKLayer_DLSS5=1. Steam gadījumā pietiek ar VKLayer_DLSS5=1 %command% palaišanas opcijās. Otrā puse ir dlssnr_helper.exe, Windows binārfails, ko būvē ar mingw64 un palaiž zem Wine vai Steam saderības rīka. Tieši tas izsauc NGX funkciju numur 18, jo NVIDIA bibliotēka nvngx_dlssnr.dll eksistē vienīgi Windows formātā.
Kadri starp abiem procesiem pārceļo pa dma-buf, ja draiveris to atļauj. Palīgs eksportē abus attēlus caur VK_EXT_external_memory_dma_buf un ieraksta to nosaukumus koplietojamā galvenē. Slānis deskriptorus pārņem ar pidfd_getfd, vecākos kodolos vietā stājas /proc/PID/fd. Abiem procesiem jādarbojas ar vienu uid. Yama ptrace_scope jābūt nullē, citādi deskriptora pārņemšana tiek bloķēta.
Ja kāds no šiem soļiem neizdodas, kadrs iet pa lēnāko ceļu: vispirms caur resursdatora transportu, tad caur parastām staging kopijām. Attēls tiek pāri jebkurā gadījumā, tikai ar lieku kopēšanu.
Koplietojamās atmiņas fails atrodas /tmp/dlssnr-$UID/shm.bin. Iemesls ir Steam konteiners pressure-vessel, kas spēlei iedod privātu tmpfs vietā XDG_RUNTIME_DIR. Ja fails paliktu tur, slānis izveidotu savu tukšu kartējumu ar identisku ceļu žurnālā un gaidītu palīgu, kurš atbild uz pavisam citu failu. README šo simptomu apraksta ar žurnāla rindu [shm] no answer in 20 ms x4 (helper not running); passing frames through.
Kustības vektorus uzzīmē optiskā plūsma
Funkcija 18 grib kustības vektorus, bet slānis sēž pie swapchain un spēles ģeometriju neredz. Palīgs tos izrēķina pats ar VK_NV_optical_flow starp iepriekšējo un pašreizējo kadru. Rezultāts tiek iesniegts kā R16G16_SFLOAT pusprecizitātes vektori avota pikseļu vienībās, virziens pēc noklusējuma no pašreizējā kadra uz iepriekšējo.
Plūsmas izvades dekodēšana, deadzone filtrēšana un mērogošana notiek uz GPU vienā compute caurlaidē, katram plūsmas formātam ar savu šeidera variantu. Ja šo caurlaidi neizdodas uzbūvēt, sintētiskos vektorus vienkārši izslēdz. Uz procesoru rēķinus nepārceļ. Dziļuma buferi palīgs nepadod vispār, tā vietā ieslēdz UseAutoMask. Ainas griezumus tas nosaka pēc vidējās spilgtuma starpības ar noklusējuma slieksni 55.
HDR ceļš parādījās 7. septembra laidienā. Agrāk modelim rādīja astoņu bitu toņkartētu kopiju, tātad tieši tās gaišās vietas, ko tam vajadzētu vērtēt, bija saspiestas jau pirms novērtēšanas. Tagad proxy attēls šķērso robežu kā R16G16B16A16_SFLOAT ar lineāru gaismu. PQ swapchain gadījumā ST 2084 kods tiek atkodēts uz nitiem ienākot un iekodēts atpakaļ izejot, par atskaites punktu ņemot fiksētos 203 nitus.
NVIDIA bibliotēkas jāsagādā pašam
Publiskajā pakotnē NVIDIA bināro failu nav. Lietotājam pašam jāatnes nvngx_dlssnr.dll, nvngx.dll, nvapi64.dll un sl.*.dll no Windows programmatūras, tad jāimportē ar komandu dlssnr-helper import-binaries. Vajadzīga arī NVIDIA videokarte ar oficiālo draiveri un Qt 6 grafiskajai saskarnei.
Valve oficiālie Proton laidieni un Proton Experimental netiek mērķēti, jo tie nekomplektē DXVK-NVAPI. Strādā Proton-CachyOS, Proton-GE un līdzīgi kopienas rīki vai sistēmas Wine ar pārvaldītu prefiksu, kurā ielikts DXVK 2.7.1. Instalators katram lietotājam uzraksta ~/.config/environment.d/dlssnr.conf ar VK_INSTANCE_LAYERS="VK_LAYER_NV_dlssnr:VK_LAYER_NV_present", lai slānis sakārtotos pareizā secībā ar NVIDIA Smooth Motion. Bez tā abi netiešie slāņi var uzlikties nepareizā kārtībā.
Qt saskarne dod trīs modeļa profilus, kas atbilst DLSSNR.Style vērtībām no 0 līdz 2: Default, Natural un Cinematic. Blakus tiem ir intensitātes, toņa, struktūras, ādas struktūras un asuma regulatori, katru no tiem var pārrakstīt atsevišķi vienai caurlaidei. Iestatījumi aiziet koplietojamā atmiņā un sāk darboties nākamajā apstrādātajā kadrā.
Licence vēl nav nokārtota
Repozitorijā nav LICENSE faila. Toties tajā ir ATTRIBUTION.md, kas uzskaita, no kurienes kods nācis: OptiScaler un divi tā DLSSNR atzari ar GPL-3.0, RenoDX ar MIT, xenmods DLSSNR-Cost-Scaler ar MIT. Krāsu kompozīcijas kodols, tā divu zaru spilgtuma attiecība un OkLab nokrāsas korekcija, pieder RenoDX autoram clshortfuse. Faila autors to raksta tieši:
OptiScaler un abi DLSS-NR atzari ir GPL-3.0, tāpēc būvējums, kas apvieno šo darbu, jāizplata ar GPL-3.0. Bāzes projektam paša licences faila nav; tas jānokārto ar tā autoru pirms jebkādas publiskas izlaišanas.
Repozitorijā glabājas arī extracted_pipeline_notes.md, 23 kilobaitu pieraksts par to, kā funkcija 18 tika izpētīta. Metode aprakstīta sausi: ripgrep pa Magpie eksperimentālo atzaru, pilna katras atrastās vietas izlasīšana un PE eksportu izgāzums no DLL failiem. Piezīmes fiksē, ka sl.dlss_nr.dll eksportē tikai DllMain un slGetPluginFunction, bet tā iekšējās rindiņas izmanto to pašu DLSSNR.* parametru telpu.
Phoronix rakstā par projektu norādīts, ka autors atklāti stāsta par vietēji darbināta valodas modeļa Qwen 3.8 Flash Next izmantošanu koda rakstīšanā. Skaitļi pagaidām nelieli: GitHub repozitorijam ir astoņas zvaigznes un divi atzari, bet laidiena 0.2.5-3 failus līdz šim lejupielādēja 15 reižu.
Komentāri
Šim rakstam vēl nav komentāru. Esi pirmais, kurš dalās ar savu viedokli.