W3C אַנוויילד פּלאַן וועבגפּו נאָרמאַל

Консорциум W3C представил первые черновые варианты спецификаций WebGPU и WebGPU Shading Language (WGSL), определяющих API для выполнения операций на GPU, таких как рендеринг и вычисления, а также язык шейдров для написания программ, работающих на стороне GPU. концептуально схожий с API Vulkan, Metal и Direct3D 12. Спецификации подготовлены рабочей группой, в которую вошли инженеры из Mozilla, Google, Apple и Microsoft.

Концептуально WebGPU отличается от WebGL примерно так же, как графический API Vulkan отличается от OpenGL, но при этом не основывается на конкретном графическом API, а представляет собой универсальную прослойку, использующую те же низкоуровневые примитивы, что имеются в Vulkan, Metal и Direct3D. WebGPU предоставляет приложениям на JavaScript средства для низкоуровневого контроля за организацией, обработкой и передачей команд к GPU, управления связанными ресурсами, памятью, буферами, объектами текстур и скомпилированными графическими шейдерами. Подобный подход позволяет добиться более высокой производительности графических приложений за счёт снижения накладных расходов и повышения эффективности работы с GPU.

WebGPU даёт возможность создавать для Web сложные 3D-проекты, работающие не хуже, чем обособленные программы, напрямую обращающиеся с Vulkan, Metal или Direct3D, но не привязанные к конкретным платформам. WebGPU также предоставляет дополнительные возможности при портировании нативных графических программ в форму, способную работать на базе web-технологий, благодаря компиляции в WebAssembly. Кроме 3D-графики WebGPU охватывает и возможности, связанные с выносом вычислений на сторону GPU и выполнением шейдеров.

שליסל פֿעיִקייטן פון WebGPU:

  • באַזונדער פאַרוואַלטונג פון רעסורסן, פּריפּעראַטאָרי אַרבעט און טראַנסמיסיע פון ​​קאַמאַנדז צו די גפּו (אין וועבגל איין כייפעץ איז געווען פאַראַנטוואָרטלעך פֿאַר אַלץ אין אַמאָל). דריי באַזונדער קאַנטעקסץ זענען צוגעשטעלט: GPUDevice פֿאַר קריייטינג רעסורסן אַזאַ ווי טעקסטשערז און באַפערז; GPUCommandEncoder פֿאַר קאָדירונג פון יחיד קאַמאַנדז, אַרייַנגערעכנט רענדערינג און קאַמפּיאַטיישאַן סטאַגעס; GPUCommandBuffer צו זיין ריווייד פֿאַר דורכפירונג אויף די גפּו. דער רעזולטאַט קענען זיין רענדערד אין אַ געגנט פֿאַרבונדן מיט איין אָדער מער לייַוונט עלעמענטן, אָדער פּראַסעסט אָן רעזולטאַט (פֿאַר בייַשפּיל, ווען פליסנדיק קאַמפּיוטינג טאַסקס). סעפּאַרייטינג די סטאַגעס מאכט עס גרינגער צו צעטיילן מיטל שאַפונג און צוגרייטונג אַפּעריישאַנז אין פאַרשידענע האַנדלערס וואָס קענען לויפן אויף פאַרשידענע פֿעדעם.
  • א אַנדערש צוגאַנג צו פּראַסעסינג שטאַטן. וועבגפּו אָפפערס צוויי אַבדזשעקץ - GPURenderPipeline און GPUComputePipeline, וואָס לאָזן איר צו פאַרבינדן פאַרשידן שטאַטן פאַר-דיפיינד דורך די דעוועלאָפּער, וואָס אַלאַוז דעם בלעטערער צו נישט וויסט רעסורסן אויף נאָך אַרבעט, אַזאַ ווי ריקאָמפּיילינג שאַדערז. סופּפּאָרטעד שטאַטן אַרייַננעמען: שאַדערז, ווערטעקס באַפער און אַטריביוט לייאַוץ, קלעפּיק גרופּע לייאַוץ, בלענדינג, טיפקייַט און פּאַטערנז, און פּאָסט-פירן רעזולטאַט פֿאָרמאַטירונגען.
  • א ביינדינג מאָדעל פיל ווי Vulkan ס מיטל גרופּינג פֿעיִקייטן. צו גרופּע רעסורסן צוזאַמען, WebGPU גיט אַ GPUBindGroup כייפעץ, וואָס קענען זיין פארבונדן מיט אנדערע ענלעך אַבדזשעקץ פֿאַר נוצן אין שאַדערז בשעת שרייבן קאַמאַנדז. שאפן אַזאַ גרופּעס אַלאַוז די שאָפער צו דורכפירן די נייטיק פּריפּעראַטאָרי אַקשאַנז אין שטייַגן, און אַלאַוז דעם בלעטערער צו טוישן מיטל ביינדינגז צווישן ציען רופט פיל פאַסטער. דער אויסלייג פון מיטל ביינדינגז קענען זיין פּרעדעפינעד מיט די GPUBindGroupLayout כייפעץ.

מקור: opennet.ru

לייגן אַ באַמערקונג