{"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\/pt\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","title":{"rendered":"Suporte para WebGPU foi adicionado nas vers\u00f5es noturnas do Firefox","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Em <noindex><a rel=\"nofollow\" href=\"https:\/\/nightly.mozilla.org\/\">noturnos<\/a><\/noindex> compila\u00e7\u00f5es do Firefox <noindex><a rel=\"nofollow\" href=\"https:\/\/hacks.mozilla.org\/2020\/04\/experimental-webgpu-in-firefox\/\">foi introduzida<\/a><\/noindex> suporte \u00e0 especifica\u00e7\u00e3o <noindex><a rel=\"nofollow\" href=\"https:\/\/webgpu.io\/\">WebGPU<\/a><\/noindex>, fornecendo uma interface de programa\u00e7\u00e3o para processamento de gr\u00e1ficos 3D e computa\u00e7\u00e3o no lado da GPU, conceitualmente semelhante ao 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> e <noindex><a rel=\"nofollow\" href=\"https:\/\/en.wikipedia.org\/wiki\/Direct3D#Direct3D_12\">Direct3D 12<\/a><\/noindex>. A especifica\u00e7\u00e3o \u00e9 desenvolvida pela Mozilla, Google, Apple, Microsoft e representantes da comunidade na <noindex><a rel=\"nofollow\" href=\"https:\/\/www.w3.org\/community\/gpu\/\">grupo de trabalho<\/a><\/noindex>, criado sob a organiza\u00e7\u00e3o W3C. <\/p>\n<p>A tarefa principal do WebGPU \u00e9 criar uma interface de programa\u00e7\u00e3o segura, acess\u00edvel, port\u00e1til e de alto desempenho para uso na plataforma Web das tecnologias e capacidades de gr\u00e1ficos 3D fornecidas pelas APIs gr\u00e1ficas do sistema moderno, como Direct3D 12 no Windows, Metal no macOS e Vulkan no Linux. Conceitualmente, o WebGPU difere do WebGL de forma semelhante a como o Vulkan difere do OpenGL, e n\u00e3o se baseia em uma API gr\u00e1fica espec\u00edfica, mas apresenta uma camada universal que, de forma geral, utiliza os mesmos primitivos de baixo n\u00edvel dispon\u00edveis no Vulkan, Metal e Direct3D. <\/p>\n<p>O WebGPU oferece \u00e0s aplica\u00e7\u00f5es em JavaScript meios para um controle de n\u00edvel mais baixo sobre a organiza\u00e7\u00e3o, processamento e transmiss\u00e3o de comandos para a GPU, gerenciamento de recursos relacionados, mem\u00f3ria, buffers, objetos de textura e sombreados gr\u00e1ficos compilados. Essa abordagem permite alcan\u00e7ar um desempenho mais alto em aplica\u00e7\u00f5es gr\u00e1ficas ao reduzir a sobrecarga e aumentar a efici\u00eancia no uso da GPU. <\/p>\n<p>O WebGPU possibilita a cria\u00e7\u00e3o de projetos 3D complexos completos para a Web, funcionando t\u00e3o bem quanto programas isolados que interagem diretamente com Vulkan, Metal ou Direct3D, mas sem estar vinculado a plataformas espec\u00edficas. O WebGPU tamb\u00e9m oferece capacidades adicionais ao portar programas gr\u00e1ficos nativos para uma forma capaz de operar em base a tecnologias web, utilizando a tecnologia WebAssembly. Al\u00e9m dos gr\u00e1ficos 3D, o WebGPU abrange tamb\u00e9m as capacidades relacionadas ao descarregamento de computa\u00e7\u00f5es para a GPU e ao suporte para desenvolvimento de sombreados. Sombreados <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gfx-rs\/naga\">podem<\/a><\/noindex> podem ser criados na linguagem WebGPU Shading Language ou definidos em um formato intermedi\u00e1rio SPIR-V, ap\u00f3s o que s\u00e3o traduzidos para linguagens de sombreados suportadas pelos drivers atuais.<\/p>\n<p>No WebGPU, h\u00e1 um gerenciamento separado de recursos, trabalhos preparat\u00f3rios e transmiss\u00e3o de comandos para a GPU (no WebGL, um \u00fanico objeto era respons\u00e1vel por tudo ao mesmo tempo). Tr\u00eas contextos separados s\u00e3o fornecidos:<br \/>\n    GPUDevice para a cria\u00e7\u00e3o de recursos, como texturas e buffers; GPUCommandEncoder para codificar comandos individuais, incluindo est\u00e1gios de renderiza\u00e7\u00e3o e computa\u00e7\u00e3o; GPUCommandBuffer para ser colocado em fila para execu\u00e7\u00e3o na GPU. O resultado pode ser renderizado em uma \u00e1rea associada a um ou mais elementos de canvas, ou processado sem sa\u00edda (por exemplo, ao executar tarefas de computa\u00e7\u00e3o). A divis\u00e3o de est\u00e1gios facilita a separa\u00e7\u00e3o da cria\u00e7\u00e3o de recursos e opera\u00e7\u00f5es preparat\u00f3rias em diferentes manipuladores que podem ser executados em threads diferentes.<\/p>\n<p>Uma segunda diferen\u00e7a entre WebGPU e WebGL \u00e9 a abordagem distinta para o processamento de estados. O WebGPU oferece dois objetos \u2014 GPURenderPipeline e GPUComputePipeline \u2014 que permitem combinar v\u00e1rios estados previamente definidos pelo desenvolvedor, o que possibilita ao navegador economizar recursos ao evitar trabalho adicional, como a recompila\u00e7\u00e3o de shaders. Entre os estados suportados est\u00e3o: shaders, layouts de buffers de v\u00e9rtices e atributos, layouts de grupos anexados, mistura, profundidade e templates, formatos de sa\u00edda ap\u00f3s a renderiza\u00e7\u00e3o.<\/p>\n<p>A terceira caracter\u00edstica do WebGPU \u00e9 chamada de modelo de vincula\u00e7\u00e3o, que se assemelha muito<br \/>\naos recursos de agrupamento presentes no Vulkan.<br \/>\nPara agrupar recursos no WebGPU, \u00e9 fornecido o objeto GPUBindGroup, que durante a grava\u00e7\u00e3o de comandos pode ser vinculado a outros objetos semelhantes para uso em shaders. A cria\u00e7\u00e3o de tais grupos permite que o driver execute antecipadamente as a\u00e7\u00f5es preparat\u00f3rias necess\u00e1rias e possibilita ao navegador alterar as vincula\u00e7\u00f5es de recursos de forma significativamente mais r\u00e1pida entre chamadas de renderiza\u00e7\u00e3o. O layout das vincula\u00e7\u00f5es de recursos pode ser definido com anteced\u00eancia usando o objeto GPUBindGroupLayout.<\/p>\n<p><center><img decoding=\"async\" alt=\"Suporte para WebGPU foi adicionado nas vers\u00f5es noturnas do Firefox\" src=\"\/wp-content\/uploads\/2020\/04\/28e4f9d01acd727178fb0651256b317a.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>No Firefox, para ativar o WebGPU em about:config, h\u00e1 uma configura\u00e7\u00e3o denominada \u00abdom.webgpu.enabled\u00bb. Para renderizar CanvasContext, \u00e9 necess\u00e1rio tamb\u00e9m habilitar o sistema de composi\u00e7\u00e3o. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/servo\/webrender\">WebRender<\/a><\/noindex> (\u00abgfx.webrender.all\u00bb em about:config), escrito na linguagem Rust e que desloca para o GPU as opera\u00e7\u00f5es de renderiza\u00e7\u00e3o do conte\u00fado da p\u00e1gina. A implementa\u00e7\u00e3o do WebGPU \u00e9 baseada no c\u00f3digo do projeto<br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/gfx-rs\/wgpu\">wgpu<\/a><\/noindex>, escrito em Rust e capaz de operar sobre as APIs DX12, Vulkan e Metal em Linux, Android, Windows e macOS (o suporte ao DX11 e OpenGL ES 3.0 tamb\u00e9m est\u00e1 em desenvolvimento). Paralelamente, outra implementa\u00e7\u00e3o est\u00e1 sendo desenvolvida pela Google, que est\u00e1 dispon\u00edvel na <noindex><a rel=\"nofollow\" href=\"http:\/\/chrome.com\/canary\">ramo Canary<\/a><\/noindex> O Chromium \u00e9 ativado por meio da flag \u00abchrome:\/\/flags\/#enable-unsafe-webgpu\u00bb, mas atualmente funciona apenas no macOS e Windows.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Fonte: <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.3 - 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\/pt\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\/pt\/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\udd47O suporte ao WebGPU foi adicionado nas vers\u00f5es noturnas do Firefox | ProHoster","description":"Nas vers\u00f5es noturnas do Firefox","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/v-nochnye-sborki-firefox-dobavlena-podderzhka-webgpu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\/pt\/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\/pt\/wp-json\/wp\/v2\/posts\/79172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=79172"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/79172\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media\/79173"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=79172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=79172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=79172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}