Firefox түнгі құрастырулары енді WebGPU қолдауын қамтиды

В түнде Firefox құрастырады пайда болды спецификацияны қолдау WebGPU, ол 3D графикасын өңдеу және GPU жағындағы есептеулер үшін бағдарламалау интерфейсін қамтамасыз етеді, концептуалды API-ге ұқсас. Вулкан, металл и 3. Direct12D. Техникалық сипаттаманы Mozilla, Google, Apple, Microsoft және қауымдастық мүшелері әзірлеп жатыр жұмыс тобы, W3C ұйымы жасаған.

WebGPU негізгі мақсаты Windows, Metal жүйелеріндегі Direct3D 3 сияқты заманауи жүйелік графикалық API интерфейстері ұсынатын 12D графикалық технологиялары мен мүмкіндіктерін пайдалану үшін веб-платформа үшін қауіпсіз, пайдаланушыға ыңғайлы, портативті және өнімділігі жоғары бағдарламалау интерфейсін қамтамасыз ету болып табылады. macOS жүйесінде және Vulkan Linux жүйесінде. Концептуалды түрде WebGPU WebGL-ден Vulkan OpenGL-ден қандай айырмашылығы болса, дәл солай ерекшеленеді және сонымен бірге ол белгілі бір графикалық API-ге негізделмеген, бірақ әдетте Вулкан-да табылған бірдей төмен деңгейлі примитивтерді пайдаланатын әмбебап қабат, Металл және Direct3D.

WebGPU JavaScript қолданбаларын ұйымдастыруды, өңдеуді және командаларды GPU-ға жіберуді, байланысты ресурстарды, жадты, буферлерді, текстуралық нысандарды және құрастырылған графикалық шейдерлерді басқаруды төменгі деңгейлі басқарумен қамтамасыз етеді. Бұл тәсіл үстеме шығындарды азайту және GPU-мен жұмыс істеу тиімділігін арттыру арқылы графикалық қолданбалар үшін жоғары өнімділікке қол жеткізуге мүмкіндік береді.

WebGPU веб үшін толыққанды күрделі 3D жобаларын жасауға мүмкіндік береді, олар Vulkan, Metal немесе Direct3D-ге тікелей қатынайтын, бірақ нақты платформалармен байланысы жоқ дербес бағдарламалардан нашар жұмыс істейді. WebGPU сонымен қатар WebAssembly технологиясын пайдалану арқылы жергілікті графикалық бағдарламаларды веб қосылған пішінге тасымалдау кезінде қосымша мүмкіндіктерді қамтамасыз етеді. 3D графикасынан басқа, WebGPU сонымен қатар GPU-ға жүктеуді түсіруге және шейдер әзірлеуге қолдау көрсетуге қатысты мүмкіндіктерді қамтиды. Шейдерлер мүмкін WebGPU Shading Language тілінде жасалады немесе аралық SPIR-V пішімінде көрсетіледі, содан кейін ағымдағы драйверлер қолдайтын шейдер тілдеріне аударылады.

WebGPU ресурстарды бөлек басқаруды, дайындық жұмыстарын және командаларды GPU-ға жіберуді пайдаланады (WebGL-де бір нысан барлығына бірден жауап берді). Үш бөлек контекст берілген:
Текстуралар мен буферлер сияқты ресурстарды жасауға арналған GPUDevice; GPUCommandEncoder жеке пәрмендерді, соның ішінде көрсету және есептеу кезеңдерін кодтауға арналған; GPUCommandBuffer GPU жүйесінде орындау үшін кезекке қойылады. Нәтижені бір немесе бірнеше кенеп элементтерімен байланыстырылған аумақта көрсетуге немесе шығарусыз өңдеуге болады (мысалы, есептеу тапсырмаларын орындау кезінде). Кезеңдерді бөлу ресурс жасау және дайындау операцияларын әртүрлі ағындарда іске қосылатын әртүрлі өңдегіштерге бөлуді жеңілдетеді.

WebGPU мен WebGL арасындағы екінші айырмашылық күйлерді өңдеуге басқа көзқарас болып табылады. WebGPU екі нысанды ұсынады - GPURenderPipeline және GPUComputePipeline, олар әзірлеуші ​​алдын ала анықтаған әртүрлі күйлерді біріктіруге мүмкіндік береді, бұл браузерге шейдерлерді қайта құрастыру сияқты қосымша жұмыстарға ресурстарды ысырап етпеуге мүмкіндік береді. Қолдау көрсетілетін күйлерге мыналар жатады: шейдерлер, шыңдық буфер және атрибут орналасулары, жабысқақ топ орналасулары, араластыру, тереңдік пен үлгілер және көрсетуден кейінгі шығыс пішімдері.

WebGPU үшінші мүмкіндігі негізінен байланыстыру моделі деп аталады
Вулкандағы ресурстарды топтастыру құралдарын еске түсіреді.
Ресурстарды біріктіру үшін WebGPU пәрмендерді жазу кезінде шейдерлерде пайдалану үшін басқа ұқсас нысандармен байланыстырылуы мүмкін GPUBindGroup нысанын қамтамасыз етеді. Мұндай топтарды құру драйверге алдын ала қажетті дайындық әрекеттерін орындауға мүмкіндік береді және шолғышқа ұтыс қоңыраулары арасындағы ресурстарды байланыстыруды әлдеқайда жылдам өзгертуге мүмкіндік береді. Ресурс байланыстыруларының орналасуын GPUBindGroupLayout нысаны арқылы алдын ала анықтауға болады.

Firefox түнгі құрастырулары енді WebGPU қолдауын қамтиды

Firefox-та WebGPU-ді about:config ішінде қосу үшін “dom.webgpu.enabled” параметрі бар. Сондай-ақ, CanvasContext рендерингі қосу үшін біріктіруді қажет етеді WebRender Rust тілінде жазылған («gfx.webrender.all» туралы:config). WebGPU іске асыру жоба кодына негізделген
wgpu, Rust тілінде жазылған және Linux, Android, Windows және macOS жүйелерінде DX12, Vulkan және Metal API интерфейстерімен жұмыс істей алады (DX11 және OpenGL ES 3.0 қолдауы да әзірленуде). Сонымен қатар, Google қол жетімді басқа енгізуді әзірлеуде Канар тармағы Chromium және «chrome://flags/#enable-unsafe-webgpu» жалаушасы арқылы қосылған, бірақ әзірге тек macOS және Windows жүйелерінде жұмыс істейді.

Ақпарат көзі: opennet.ru

пікір қалдыру