NVK, en åben driver til NVIDIA-grafikkort, understøtter Vulkan 1.0

Khronos-konsortiet, som udvikler grafikstandarder, har anerkendt den fulde kompatibilitet af den åbne NVK-driver til NVIDIA-videokort med Vulkan 1.0-specifikationen. Chaufføren har bestået alle test fra CTS (Kronos Conformance Test Suite) og er inkluderet på listen over certificerede chauffører. Der er gennemført certificering for NVIDIA GPU'er baseret på Turing-mikroarkitekturen (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). Testen blev udført i et miljø med Linux-kernen 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 og GNOME Shell 44.4. At opnå certifikatet giver dig mulighed for officielt at erklære kompatibilitet med grafikstandarder og bruge de tilhørende Khronos-varemærker.

NVK-driveren blev bygget fra bunden af ​​et team, herunder Karol Herbst (Nouveau-udvikler hos Red Hat), David Airlie (DRM-vedligeholder hos Red Hat) og Jason Ekstrand (aktiv Mesa-udvikler hos Collabora). Ved oprettelse af driveren brugte udviklerne officielle header-filer og åbne kernemoduler udgivet af NVIDIA. NVK-koden brugte nogle basale komponenter i Nouveau OpenGL-driveren nogle steder, men på grund af forskellene i navnene i NVIDIA-header-filerne og de reverse-manipulerede navne i Nouveau, er direkte lån af koden vanskelig og for det meste mange ting skulle gentænkes og implementeres fra bunden.

Udviklingen blev udført med henblik på at skabe en ny reference Vulkan-driver til Mesa, hvis kode kunne lånes ved oprettelse af andre drivere. For at gøre dette forsøgte de, når de arbejdede på NVK-driveren, at tage hensyn til al den eksisterende erfaring med at udvikle Vulkan-drivere, vedligeholde kodebasen i optimal form og minimere overførslen af ​​kode fra andre Vulkan-drivere, idet de gjorde, som det skulle være for optimalt arbejde af høj kvalitet, og ikke blindt kopiere, hvordan det gøres i andre drivere. Driveren er allerede inkluderet i Mesa, og de nødvendige ændringer til Nouveau DRM driver API er inkluderet i Linux 6.6 kernen.

Blandt ændringerne i meddelelsen bemærker Mesa også vedtagelsen af ​​en ny backend-compiler til NVK, skrevet i Rust-sproget og løse problemer i den gamle compiler, der forstyrrede passagen af ​​Kronos-tekster, samt eliminere nogle grundlæggende begrænsninger af arkitektur, der ikke kunne rettes uden en fuldstændig omarbejdelse af den gamle compiler. Blandt planerne for fremtiden er tilføjelsen af ​​GPU-understøttelse baseret på Maxwell-mikroarkitekturen og implementeringen af ​​fuld understøttelse af Vulkan 1.3 API nævnt i den nye backend.

Kilde: opennet.ru

Tilføj en kommentar