WebCodecs entegrasyonu
WebGPU, opak "dış doku" oluşturmak için bir API sunar HTMLVideoElement
ile importExternalTexture()
arasındaki nesneler. Video karelerinden verimli bir şekilde örneklendirmek için bu nesneleri kullanabilirsiniz. Örnek olarak doğrudan kaynak YUV renk modeli verilerinden 0 kopya kullanabilirsiniz.
Ancak, ilk WebGPU spesifikasyonu WebCodecs VideoFrame
nesnelerinden GPUExternalTexture
nesnelerinin oluşturulmasına izin vermiyordu. Bu özellik, halihazırda WebCodecs'i kullanan ve WebGPU'yu video işleme ardışık düzenine entegre etmek isteyen gelişmiş video işleme uygulamaları için önemlidir. WebCodecs entegrasyonu, GPUExternalTexture
ve copyExternalImageToTexture()
çağrısı için kaynak olarak VideoFrame
kullanma desteği ekler. Aşağıdaki örneğe ve chromestatus girişine bakın.
// Access the GPU device.
const adapter = await navigator.gpu.requestAdapter();
const device = await adapter.requestDevice();
// Create VideoFrame from HTMLVideoElement.
const video = document.querySelector("video");
const videoFrame = new VideoFrame(video);
// Create texture from VideoFrame.
const texture = device.importExternalTexture({ source: videoFrame });
// TODO: Use texture in bind group creation.
Denemek için WebCodecs ile Video Yükleme deneysel örneğine göz atın.
GPUAdapter requestDevice() tarafından döndürülen kayıp cihaz
GPUAdapter
için requestDevice()
yöntemi, zaten bir GPUDevice
oluşturmak üzere kullanıldığı için başarısız olursa artık null
ile reddeden bir söz döndürmek yerine, hemen kaybedildi olarak işaretlenen bir GPUDevice
ile yerine getiriliyor. Chromium:1234617 hatası konusuna bakın.
const adapter = await navigator.gpu.requestAdapter();
const device1 = await adapter.requestDevice();
// New! The promise is not rejected anymore with null.
const device2 = await adapter.requestDevice();
// And the device is immediately marked as lost.
const info = await device2.lost;
importExternalTexture() çağrılırsa video oynatmanın sorunsuz olmasını sağlar
importExternalTexture()
, HTMLVideoElement
ile birlikte çağrıldığında, video görüntü alanında görünür olmadığında ilişkili video oynatma artık kısıtlanmaz. Chromium:1425252 hatası konusuna bakın.
Spesifikasyon uygunluğu
GPUPipelineError()
kurucusundaki message
bağımsız değişkeni isteğe bağlıdır. Chromium:4613967 değiştirme konusuna bakın.
code
WGSL kaynağı \0
içeriyorsa createShaderModule()
çağrılırken bir hata oluşur. Sorun şafak:1345 bölümünü inceleyin.
createSampler()
ile doku örneklemede kullanılan varsayılan maksimum ayrıntı düzeyi (lodMaxClamp
) 32'dir. Chromium:4608063 değiştirme konusuna bakın.
Geliştirici deneyimini iyileştirme
Geliştiricilere, desteklenmeyen bir platformda WebGPU kullandıklarında hatırlatma yapmak için Geliştirici Araçları JavaScript konsolunda bir mesaj görüntülenir. Chrome:4589369 değiştirme bölümüne bakın.
getMappedRange()
, geliştiricileri sıraya komut göndermeye zorlamadan başarısız olduğunda arabellek doğrulama hata mesajları, Geliştirici Araçları JavaScript konsolunda anında gösterilir. Chromium:4597950 değiştirme konusuna bakın.
![Arabellek doğrulama hata mesajının gösterildiği Geliştirici Araçları JavaScript konsolunun ekran görüntüsü.](https://developer.chrome.com/static/blog/new-in-webgpu-116/image/screenshot-devtools-java-f6335abfb3e85.png?authuser=5&hl=tr)
Şafak güncellemeleri
disallow_unsafe_apis
hata ayıklama açma/kapatma düğmesi allow_unsafe_apis
olarak yeniden adlandırıldı ve varsayılan olarak devre dışı bırakıldı. Bu açma/kapatma düğmesi, API giriş noktalarındaki veya henüz güvenli olarak kabul edilmeyen parametre kombinasyonlarındaki doğrulama hatalarını gizler. Hata ayıklama için faydalı olabilir.
Issue dawn:1685'i inceleyin.
wgpu::ShaderModuleWGSLDescriptor
için desteği sonlandırılmış source
özelliği, code
yerine kaldırıldı. şafak vaktini değiştirme:130321 bölümüne bakın.
Eksik wgpu::RenderBundle::SetLabel()
yöntemi uygulandı. şafak vaktini değiştirme:134502 bölümüne bakın.
Uygulamalar, wgpu::RequestAdapterOptionsBackendType
seçeneğiyle bir adaptör alırken belirli bir arka uç isteyebilir. Aşağıdaki örneği inceleyin ve Issue dawn:1875'i inceleyin.
wgpu::RequestAdapterOptionsBackendType backendTypeOptions = {};
backendTypeOptions.backendType = wgpu::BackendType::D3D12;
wgpu::RequestAdapterOptions options = {};
options.nextInChain = &backendTypeOptions;
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Değişim zinciri dokuları için ek kullanımlarla birlikte yeni bir SwapChain::GetCurrentTexture()
yöntemi eklendi. Böylece, wgpu::Texture
dönüşü kopyalarda kullanılabilir. Aşağıdaki örneği ve sorun şafak:1551 bölümünü inceleyin.
wgpu::SwapChain swapchain = myDevice.CreateSwapChain(mySurface, &myDesc);
swapchain.GetCurrentTexture();
swapchain.Present();
Bunlar, öne çıkan özelliklerden yalnızca bazılarıdır. Taahhütlerin kapsamlı listesini inceleyin.
WebGPU'daki Yenilikler
WebGPU'daki Yenilikler serisinde ele alınan her şeyin listesi.
Chrome 127 sürümü
- Android'de OpenGL ES için deneysel destek
- GPUAdapter bilgi özelliği
- WebAssembly birlikte çalışabilirlik iyileştirmeleri
- İyileştirilmiş komut kodlayıcı hataları
- Gün doğumu güncellemeleri
Chrome 126
- maxTextureArraylayers sınırını artır
- Vulkan arka ucu için arabellek yükleme optimizasyonu
- Gölgelendirme derleme zamanı iyileştirmeleri
- Gönderilen komut arabellekleri benzersiz olmalıdır
- Gün doğumu güncellemeleri
Chrome 125 sürümü
Chrome 124 sürümü
- Salt okunur ve okuma-yazma depolama dokuları
- Service Worker'lar ve paylaşılan çalışan desteği
- Yeni bağdaştırıcı bilgi özellikleri
- Hata düzeltmeleri
- Gün doğumu güncellemeleri
Chrome 123
- WGSL'de DP4a yerleşik işlev desteği
- WGSL'deki kısıtlanmamış işaretçi parametreleri
- WGSL'de kompozitleri referans kaldırmak için söz dizimi şekeri
- Şablon ve derinlik unsurları için ayrı salt okunur durum
- Gün doğumu güncellemeleri
Chrome 122
- Uyumluluk moduyla erişimi genişletme (geliştirme aşamasındaki özellik)
- maxVertexAttributes sınırını artırma
- Gün doğumu güncellemeleri
Chrome 121
- Android'de WebGPU'yu destekleme
- Windows'da gölgelendirici derlemesi için FXC yerine DXC'yi kullanın
- Bilgi işlem ve oluşturma kartlarında zaman damgası sorguları
- Gölgelendirici modüllerine varsayılan giriş noktaları
- Display-p3'ü GPUExternalTexture renk alanı olarak destekle
- Bellek yığını bilgileri
- Gün doğumu güncellemeleri
Chrome 120
- WGSL'de 16 bit kayan nokta değerleri desteği
- Sınırları zorlayın
- Derinlik şablonu durumunda yapılan değişiklikler
- Bağdaştırıcı bilgisi güncellemeleri
- Zaman damgası sorgularının nicelenmesi
- Bahar temizliği özellikleri
Chrome 119 sürümü
- Filtrelenebilir 32 bit kayan dokular
- unorm10-10-10-2 tepe noktası biçimi
- AdX10a2uint doku biçimi
- Gün doğumu güncellemeleri
Chrome 118 sürümü
copyExternalImageToTexture()
ürününde HTMLImageElement ve ImageData desteği- Okunma-yazma ve salt okunur depolama dokusu için deneysel destek
- Gün doğumu güncellemeleri
Chrome 117 sürümü
- Köşe arabelleğini ayarlama
- Bağlama grubunun ayarını kaldır
- Cihaz kaybolduğunda eşzamansız ardışık düzen oluşturma sırasında karşılaşılan hataları susturma
- SPIR-V gölgelendirici modülü oluşturma güncellemeleri
- Geliştirici deneyimini iyileştirme
- Otomatik olarak oluşturulan düzenle ardışık düzenleri önbelleğe alma
- Gün doğumu güncellemeleri
Chrome 116
- WebCodecs entegrasyonu
- GPUAdapter tarafından iade edilen kayıp cihaz
requestDevice()
importExternalTexture()
çağrılırsa video oynatmanın sorunsuz olmasını sağlayın- Spesifikasyon uygunluğu
- Geliştirici deneyimini iyileştirme
- Gün doğumu güncellemeleri
Chrome 115 sürümü
- Desteklenen WGSL dil uzantıları
- Direct3D 11 için deneysel destek
- AC gücünde ayrı GPU'yu varsayılan olarak alma
- Geliştirici deneyimini iyileştirme
- Gün doğumu güncellemeleri
Chrome 114 sürümü
- JavaScript'i optimize edin
- Yapılandırılmamış tuvalde bulunangetCurrentTexture() işlemi InvalidStateError hatası veriyor
- WGSL güncellemeleri
- Gün doğumu güncellemeleri