{"id":79172,"date":"2020-04-25T01:42:03","date_gmt":"2020-04-24T23:42:03","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu"},"modified":"2020-04-25T01:42:03","modified_gmt":"2020-04-24T23:42:03","slug":"v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","title":{"rendered":"In den n\u00e4chtlichen Builds von Firefox wurde die Unterst\u00fctzung f\u00fcr WebGPU hinzugef\u00fcgt","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Im <noindex><a rel=\"nofollow\" href=\"https:\/\/nightly.mozilla.org\/\">n\u00e4chtlichen<\/a><\/noindex> Builds von Firefox <noindex><a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/2020\/04\/experimental-webgpu-in-firefox\/\">ein<\/a><\/noindex> Unterst\u00fctzung der Spezifikation <noindex><a rel=\"nofollow\" href=\"https:\/\/webgpu.io\/\">WebGPU<\/a><\/noindex>, die eine Programmierschnittstelle zur Verarbeitung von 3D-Grafik und Berechnungen auf der GPU bereitstellt, konzeptionell \u00e4hnlich wie die API <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52194\">Vulkan<\/a><\/noindex>, <noindex><a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=39913\">Metal<\/a><\/noindex> und <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Direct3D#Direct3D_12\">Direct3D 12<\/a><\/noindex>. Die Spezifikation wird von Mozilla, Google, Apple, Microsoft und Vertretern der Community in <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/community\/gpu\/\">der Arbeitsgruppe<\/a><\/noindex>, die von der W3C-Organisation gegr\u00fcndet wurde. <\/p>\n<p>Ein zentrales Ziel von WebGPU ist die Schaffung einer sicheren, benutzerfreundlichen, portablen und leistungsstarken Programmierschnittstelle f\u00fcr die Nutzung in Web-Plattformen mit Technologien und M\u00f6glichkeiten der 3D-Grafik, die von modernen systemseitigen Graphik-APIs wie Direct3D 12 unter Windows, Metal unter macOS und Vulkan unter Linux bereitgestellt werden. Konzeptionell unterscheidet sich WebGPU von WebGL in etwa so, wie sich Vulkan von OpenGL unterscheidet, und es basiert nicht auf einer bestimmten Grafik-API, sondern stellt eine universelle Schicht dar, die im Allgemeinen dieselben Niedriglevel-Primitiven verwendet, die in Vulkan, Metal und Direct3D vorhanden sind. <\/p>\n<p>WebGPU bietet JavaScript-Anwendungen Mittel f\u00fcr eine niedrigere Steuerung der Organisation, Verarbeitung und \u00dcbertragung von Befehlen an die GPU, die Verwaltung verwandter Ressourcen, Speicher, Puffer, Texturobjekte und kompilierten Grafikhintergr\u00fcnden. Ein solcher Ansatz erm\u00f6glicht eine h\u00f6here Leistung grafischer Anwendungen durch Senkung der Overhead-Kosten und Steigerung der Effizienz im Umgang mit der GPU. <\/p>\n<p>WebGPU erm\u00f6glicht es, vollst\u00e4ndige komplexe 3D-Projekte f\u00fcr das Web zu erstellen, die nicht schlechter funktionieren als eigenst\u00e4ndige Programme, die direkt mit Vulkan, Metal oder Direct3D arbeiten, jedoch nicht an bestimmte Plattformen gebunden sind. WebGPU bietet auch zus\u00e4tzliche M\u00f6glichkeiten beim Portieren nativer Grafikprogramme in ein Format, das in Web-Technologien funktionieren kann, dank der Anwendung von WebAssembly. Neben 3D-Grafik deckt WebGPU auch M\u00f6glichkeiten ab, die mit der Auslagerung von Berechnungen auf der GPU und der Unterst\u00fctzung der Shader-Entwicklung verbunden sind. Shader <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gfx-rs\/naga\">sich<\/a><\/noindex> k\u00f6nnen in der WebGPU Shading Language erstellt oder im intermedi\u00e4ren Format SPIR-V angegeben werden, das anschlie\u00dfend in die von den aktuellen Treibern unterst\u00fctzten Shadersprachen \u00fcbersetzt wird.<\/p>\n<p>In WebGPU wird eine getrennte Verwaltung der Ressourcen, Vorarbeiten und der \u00dcbertragung von Befehlen an die GPU angewendet (in WebGL war ein einzelnes Objekt f\u00fcr alles verantwortlich). Es werden drei separate Kontexte bereitgestellt:<br \/>\n    GPUDevice zur Erstellung von Ressourcen wie Texturen und Buffern; GPUCommandEncoder zum Kodieren einzelner Befehle, einschlie\u00dflich Rendering- und Berechnungsphasen; GPUCommandBuffer zur \u00dcbermittlung an die Warteschlange zur Ausf\u00fchrung auf der GPU. Das Ergebnis kann in einem Bereich gerendert werden, der mit einem oder mehreren Elementen vom Typ canvas verbunden ist, oder ohne Ausgabe verarbeitet werden (z. B. bei der Durchf\u00fchrung von Berechnungsaufgaben). Die Trennung der Phasen erleichtert die Aufteilung von Ressourcenerstellung und Vorbereitungsoperationen in verschiedene Handler, die in verschiedenen Threads ausgef\u00fchrt werden k\u00f6nnen.<\/p>\n<p>Ein weiteres Unterscheidungsmerkmal von WebGPU gegen\u00fcber WebGL ist der andere Ansatz zur Zustandshandhabung. WebGPU bietet zwei Objekte \u2013 GPURenderPipeline und GPUComputePipeline \u2013 die es erm\u00f6glichen, verschiedene von den Entwicklern festgelegte Zust\u00e4nde zu kombinieren. Dies gibt dem Browser die M\u00f6glichkeit, Ressourcen zu sparen, indem er zus\u00e4tzliche Arbeiten wie die Neukompilierung von Shadern vermeidet. Zu den unterst\u00fctzten Zust\u00e4nden geh\u00f6ren: Shader, Layouts von Vertex-Puffern und Attributen, Layouts von angeh\u00e4ngten Gruppen, Mischungen, Tiefen- und Schablonen, Ausgabeformate nach dem Rendern.<\/p>\n<p>Eine dritte Besonderheit von WebGPU ist das Bindungsmodell, das in vielerlei Hinsicht<br \/>\nden in Vulkan vorhandenen Mitteln zur Gruppierung von Ressourcen \u00e4hnelt.<br \/>\nZur Gruppierung von Ressourcen in WebGPU gibt es das Objekt GPUBindGroup, das w\u00e4hrend der Befehlsaufnahme mit anderen \u00e4hnlichen Objekten verbunden werden kann, um sie in Shadern zu verwenden. Die Erstellung solcher Gruppen erm\u00f6glicht es dem Treiber, die erforderlichen vorbereitenden Schritte im Voraus auszuf\u00fchren, und dem Browser, die Bindungen von Ressourcen erheblich schneller zwischen Renderaufrufen zu wechseln. Das Layout der Ressourcenbindungen kann im Voraus mithilfe des Objekts GPUBindGroupLayout definiert werden.<\/p>\n<p><center><img decoding=\"async\" alt=\"In den n\u00e4chtlichen Builds von Firefox wurde die Unterst\u00fctzung f\u00fcr WebGPU hinzugef\u00fcgt\" src=\"\/wp-content\/uploads\/2020\/04\/28e4f9d01acd727178fb0651256b317a.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>In Firefox ist die Einstellung \u00abdom.webgpu.enabled\u00bb in about:config erforderlich, um WebGPU zu aktivieren. Zudem muss das Komposition-System aktiviert sein, um den CanvasContext darzustellen. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/servo\/webrender\">WebRender<\/a><\/noindex> (\u00abgfx.webrender.all\u00bb in about:config), geschrieben in Rust und \u00fcbergibt Rendering-Operationen auf der GPU. Die Implementierung von WebGPU basiert auf dem Code des Projekts.<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gfx-rs\/wgpu\">wgpu<\/a><\/noindex>, das in Rust geschrieben wurde und auf den APIs DX12, Vulkan und Metal in Linux, Android, Windows und macOS arbeiten kann (dar\u00fcber hinaus wird auch die Unterst\u00fctzung f\u00fcr DX11 und OpenGL ES 3.0 entwickelt). Parallel dazu entwickelt Google eine andere Implementierung, die in der <noindex><a rel=\"nofollow\" href=\"http:\/\/chrome.com\/canary\">Canary-Branch verf\u00fcgbar ist.<\/a><\/noindex> Chromium wird durch den Schalter \u00abchrome:\/\/flags\/#enable-unsafe-webgpu\u00bb aktiviert, funktioniert momentan jedoch nur auf macOS und Windows.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Quelle: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52800\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Firefox \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 WebGPU, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 3D-\u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u0438 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u0442\u043e\u0440\u043e\u043d\u0435 GPU, \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0441\u0445\u043e\u0436\u0438\u0439 \u0441 API Vulkan, Metal \u0438 Direct3D 12. \u0421\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f Mozilla, Google, Apple, Microsoft \u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u0435\u043b\u044f\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435, \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u0439 \u043f\u0440\u0438 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 W3C. \u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439 WebGPU \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e, \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e, \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c\u043e\u0433\u043e \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":79173,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-79172","post","type-post","status-publish","format-standard","has-post-thumbnail","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=\"\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Firefox\" \/>\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\/de\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\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\u0412 \u043d\u043e\u0447\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 Firefox \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 WebGPU | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Firefox\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu\" \/>\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=\"2020-04-24T23:42:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-04-24T23:42:03+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\udd47In die Nachtausgaben von Firefox wurde die Unterst\u00fctzung f\u00fcr WebGPU hinzugef\u00fcgt | ProHoster","description":"In den Nachtausgaben von Firefox","canonical_url":"https:\/\/prohoster.info\/de\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","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\u0412 \u043d\u043e\u0447\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438 Firefox \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 WebGPU | ProHoster","og:description":"\u0412 \u043d\u043e\u0447\u043d\u044b\u0445 \u0441\u0431\u043e\u0440\u043a\u0430\u0445 Firefox","og:url":"https:\/\/prohoster.info\/de\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","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":"2020-04-24T23:42:03+00:00","article:modified_time":"2020-04-24T23:42:03+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"79172","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 16:43:23","updated":"2022-09-29 10:54:27","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/79172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=79172"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/79172\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/79173"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=79172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=79172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=79172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}