NVK, malferma pelilo por NVIDIA grafikkartoj, subtenas Vulkan 1.0

La konsorcio Khronos, kiu disvolvas grafikajn normojn, rekonis la plenan kongruon de la malfermita NVK-ŝoforo por NVIDIA vidkartoj kun la specifo Vulkan 1.0. La ŝoforo sukcese trapasis ĉiujn testojn de la CTS (Kronos Conformance Test Suite) kaj estas inkluzivita en la listo de atestitaj ŝoforoj. Atestado estis kompletigita por NVIDIA GPU-oj bazitaj sur la mikroarkitekturo Turing (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). La testo estis farita en medio kun la Linukso-kerno 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 kaj GNOME Shell 44.4. Akiro de la atestilo permesas vin oficiale deklari kongruon kun grafikaj normoj kaj uzi la rilatajn varmarkojn de Khronos.

La NVK-ŝoforo estis konstruita de komence fare de teamo inkluzive de Karol Herbst (Nouveau-programisto ĉe Red Hat), David Airlie (DRM-prizorgisto ĉe Red Hat), kaj Jason Ekstrand (aktiva Mesa-programisto ĉe Collabora). Kreante la ŝoforon, la programistoj uzis oficialajn kapdosierojn kaj malfermajn kernajn modulojn publikigitajn de NVIDIA. La NVK-kodo uzis kelkajn bazajn komponentojn de la Nouveau OpenGL-ŝoforo en kelkaj lokoj, sed pro la diferencoj en la nomoj en la NVIDIA-kapodosieroj kaj la inversinĝenieritaj nomoj en Nouveau, rekta pruntepreno de la kodo estas malfacila kaj plejparte necesis repripensi multajn aferojn kaj efektivigi ilin de nulo.

Evoluo estis efektivigita kun okulo al kreado de nova referenco Vulkan-ŝoforo por Mesa, kies kodo povus esti pruntita dum kreado de aliaj ŝoforoj. Por fari tion, laborante pri la NVK-ŝoforo, ili provis konsideri la tutan ekzistantan sperton pri evoluigado de Vulkan-ŝoforoj, konservi la kodan bazon en optimuma formo kaj minimumigi la translokigon de kodo de aliaj Vulkan-ŝoforoj, farante kiel ĝi devus esti. optimuma kaj altkvalita laboro, kaj ne blinde kopii kiel farite en aliaj ŝoforoj. La pelilo jam estas inkluzivita en Mesa, kaj la necesaj ŝanĝoj al la Nouveau DRM-ŝoforo API estas inkluzivitaj en la Linukso 6.6-kerno.

Inter la ŝanĝoj en la anonco, Mesa ankaŭ notas la adopton de nova malantaŭa kompililo por NVK, verkita en la Rust-lingvo kaj solvanta problemojn en la malnova kompililo, kiu malhelpis la trairejon de Kronos-tekstoj, kaj ankaŭ forigi kelkajn fundamentajn limigojn de la arkitekturo kiu ne povus esti korektita sen kompleta reverkado de la malnova kompililo. Inter la planoj por la estonteco, la aldono de GPU-subteno bazita sur la Maxwell-mikroarkitekturo kaj la efektivigo de plena subteno por la Vulkan 1.3 API estas menciitaj en la nova backend.

fonto: opennet.ru

Aldoni komenton