{"id":107076,"date":"2023-03-03T12:48:20","date_gmt":"2023-03-03T10:48:20","guid":{"rendered":"https:\/\/prohoster.info\/?p=107076"},"modified":"2023-03-03T23:49:33","modified_gmt":"2023-03-03T21:49:33","slug":"pererabotka-drajvera-vgem-na-yazyke-rust","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/pererabotka-drajvera-vgem-na-yazyke-rust","title":{"rendered":"Il riadattamento del driver VGEM in Rust","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Ma\u00edra Canal di Igalia ha presentato un progetto per riscrivere il driver VGEM (Virtual GEM Provider) in linguaggio Rust. VGEM consiste in circa 400 righe di codice e fornisce un backend GEM (Graphics Execution Manager) non legato all'hardware, utilizzato per l'accesso condiviso ai buffer dei driver di dispositivi 3D software, come LLVMpipe, con l'obiettivo di migliorare le prestazioni della rasterizzazione software.      <\/p>\n<p>VGEM sar\u00e0 il secondo driver grafico in Rust a funzionare a livello di kernel (il primo \u00e8 stato il driver DRM (Direct Rendering Manager) Asahi per la GPU Apple AGX, utilizzata nei chip Apple M1\/M2). Durante lo sviluppo, \u00e8 stata necessaria la creazione di nuovi binding per lavorare con il codice in Rust con il dispositivo della piattaforma, il tipo XArray e le astrazioni legate all'accesso diretto alla memoria, come i barrier DMA (DMA fence). Nella fase attuale di sviluppo, il driver \u00e8 quasi pronto, passando la maggior parte dei test IGT, tranne due controlli (vgem_slow e vgem_basic@unload), ma richiede ulteriori lavori per il supporto IOCTL.<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=58735\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0430\u0439\u0440\u0430 \u041a\u0430\u043d\u0430\u043b (Ma&#237;ra Canal) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Igalia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM (Virtual GEM Provider) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust. VGEM \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043e\u043a\u043e\u043b\u043e 400 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u043a \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u044d\u043a\u0435\u043d\u0434 GEM (Graphics Execution Manager), \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 \u0434\u043b\u044f \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0431\u0443\u0444\u0435\u0440\u0430\u043c \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0445 3D-\u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a LLVMpipe, \u0441 \u0446\u0435\u043b\u044c\u044e \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0439 \u0440\u0430\u0441\u0442\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438. VGEM [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-107076","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0430\u0439\u0440\u0430 \u041a\u0430\u043d\u0430\u043b (Ma\u00edra Canal) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Igalia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM (Virtual GEM Provider) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/pererabotka-drajvera-vgem-na-yazyke-rust\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0430\u0439\u0440\u0430 \u041a\u0430\u043d\u0430\u043b (Ma\u00edra Canal) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Igalia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM (Virtual GEM Provider) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/pererabotka-drajvera-vgem-na-yazyke-rust\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-03-03T10:48:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2023-03-03T21:49:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Riscrittura del driver VGEM nel linguaggio Rust | ProHoster","description":"Ma\u00edra Canal di Igalia ha presentato un progetto per la riscrittura del driver VGEM (Virtual GEM Provider) nel linguaggio Rust.","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/pererabotka-drajvera-vgem-na-yazyke-rust","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust | ProHoster","og:description":"\u041c\u0430\u0439\u0440\u0430 \u041a\u0430\u043d\u0430\u043b (Ma\u00edra Canal) \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Igalia \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b\u0430 \u043f\u0440\u043e\u0435\u043a\u0442 \u043f\u043e \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u043d\u0438\u044e \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u0430 VGEM (Virtual GEM Provider) \u043d\u0430 \u044f\u0437\u044b\u043a\u0435 Rust.","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/pererabotka-drajvera-vgem-na-yazyke-rust","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2023-03-03T10:48:20+00:00","article:modified_time":"2023-03-03T21:49:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/107076","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=107076"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/107076\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=107076"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=107076"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=107076"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}