Firefox gecə quruluşlarına indi WebGPU dəstəyi daxildir

В gecə Firefox qurur ortaya çıxdı spesifikasiya dəstəyi VebGPUkonseptual olaraq API-yə bənzər 3D qrafika emalı və GPU-yan hesablama üçün proqramlaşdırma interfeysini təmin edən . Vulkan, Metal и Direct3D 12. Spesifikasiya Mozilla, Google, Apple, Microsoft və icma üzvləri tərəfindən hazırlanır işçi qrupu, W3C təşkilatı tərəfindən yaradılmışdır.

WebGPU-nun əsas məqsədi Windows, Metal üzərində Direct3D 3 kimi müasir sistem qrafika API-lərinin təqdim etdiyi 12D qrafika texnologiyaları və imkanlarından istifadə etmək üçün Veb platforması üçün təhlükəsiz, istifadəçi dostu, portativ və yüksək performanslı proqramlaşdırma interfeysi təmin etməkdir. macOS-da, Vulkan isə Linux-da. Konseptual olaraq, WebGPU, Vulkan OpenGL-dən fərqli olduğu kimi WebGL-dən eyni şəkildə fərqlənir və eyni zamanda o, xüsusi qrafik API-yə əsaslanmır, lakin ümumiyyətlə Vulkan-da olan eyni aşağı səviyyəli primitivlərdən istifadə edən universal təbəqədir. Metal və Direct3D.

WebGPU, əlaqəli resursları, yaddaşı, buferləri, faktura obyektlərini və tərtib edilmiş qrafik şaderləri idarə edərək, komandaların GPU-ya təşkili, işlənməsi və ötürülməsi üzərində aşağı səviyyəli nəzarəti olan JavaScript proqramlarını təmin edir. Bu yanaşma əlavə xərcləri azaltmaqla və GPU ilə işin səmərəliliyini artırmaqla qrafik tətbiqləri üçün daha yüksək performans əldə etməyə imkan verir.

WebGPU, Vulkan, Metal və ya Direct3D-ə birbaşa daxil olan, lakin xüsusi platformalara bağlı olmayan müstəqil proqramlardan heç də pis olmayan Veb üçün tam hüquqlu kompleks 3D layihələr yaratmağa imkan verir. WebGPU həmçinin WebAssembly texnologiyasının istifadəsi sayəsində yerli qrafik proqramları veb texnologiyalarında işləyə bilən formaya köçürərkən əlavə imkanlar təqdim edir. 3D qrafika ilə yanaşı, WebGPU həmçinin GPU-ya hesablamaların yüklənməsi və şeyder inkişafının dəstəklənməsi ilə bağlı imkanları da əhatə edir. Şaderlər bilərsiniz WebGPU Shading Language-də yaradılmalı və ya aralıq SPIR-V formatında göstərilməli və sonra cari drayverlər tərəfindən dəstəklənən shader dillərinə tərcümə edilməlidir.

WebGPU resursların ayrıca idarə edilməsindən, hazırlıq işlərindən və GPU-ya əmrlərin ötürülməsindən istifadə edir (WebGL-də bir obyekt bir anda hər şeyə cavabdeh idi). Üç ayrı kontekst təqdim olunur:
Dokular və buferlər kimi resursların yaradılması üçün GPUDevice; Göstərmə və hesablama mərhələləri daxil olmaqla, fərdi əmrlərin kodlaşdırılması üçün GPUCommandEncoder; GPUCommandBuffer GPU-da icra üçün növbəyə alınacaq. Nəticə bir və ya bir neçə kətan elementi ilə əlaqəli sahədə göstərilə və ya çıxış olmadan işlənə bilər (məsələn, hesablama tapşırıqlarını yerinə yetirərkən). Mərhələlərin ayrılması resursun yaradılması və hazırlanması əməliyyatlarını müxtəlif mövzularda işləyə bilən müxtəlif işləyicilərə ayırmağı asanlaşdırır.

WebGPU və WebGL arasındakı ikinci fərq vəziyyətlərin idarə olunmasına fərqli yanaşmadır. WebGPU iki obyekt təklif edir - GPURenderPipeline və GPUComputePipeline, tərtibatçı tərəfindən əvvəlcədən müəyyən edilmiş müxtəlif vəziyyətləri birləşdirməyə imkan verir ki, bu da brauzerə şeyderlərin yenidən tərtib edilməsi kimi əlavə işə resurslar sərf etməməyə imkan verir. Dəstəklənən dövlətlərə aşağıdakılar daxildir: şaderlər, təpə buferi və atribut düzümləri, yapışqan qrup tərtibatları, qarışdırma, dərinlik və naxışlar və post-render çıxış formatları.

WebGPU-nun üçüncü xüsusiyyəti əsasən bağlama modeli adlanır
Vulkanda mövcud olan resurs qruplaşdırma vasitələrini xatırladır.
Resursları bir yerdə qruplaşdırmaq üçün WebGPU GPUBindGroup obyektini təmin edir, o, əmrlər yazarkən şeyderlərdə istifadə üçün digər oxşar obyektlərlə əlaqələndirilə bilər. Belə qrupların yaradılması sürücüyə əvvəlcədən lazımi hazırlıq hərəkətlərini yerinə yetirməyə imkan verir və brauzerə çəkiliş zəngləri arasında resurs bağlamalarını daha sürətli dəyişməyə imkan verir. Resurs bağlamalarının tərtibatı GPUBindGroupLayout obyektindən istifadə edərək əvvəlcədən təyin edilə bilər.

Firefox gecə quruluşlarına indi WebGPU dəstəyi daxildir

Firefox-da WebGPU-nu about:config-də aktivləşdirmək üçün “dom.webgpu.enabled” parametri var. CanvasContext renderinqi həmçinin birləşmənin aktivləşdirilməsini tələb edir WebRender ("gfx.webrender.all" haqqında:config), Rust-da yazılmış və GPU-ya əməliyyatlar verən səhifə məzmununu autsorsing. WebGPU tətbiqi layihə koduna əsaslanır
wgpu, Rust dilində yazılmış və Linux, Android, Windows və macOS-da DX12, Vulkan və Metal API-lərin üzərində işləməyə qadirdir (DX11 və OpenGL ES 3.0 dəstəyi də inkişaf mərhələsindədir). Paralel olaraq, Google mövcud olan başqa bir tətbiq hazırlayır Kanar filialı Chromium və “chrome://flags/#enable-unsafe-webgpu” bayrağı ilə aktivləşdirilib, lakin hələlik yalnız macOS və Windows sistemlərində işləyir.

Mənbə: opennet.ru

Добавить комментарий