Désactiver le tampon des sommets
La transmission de null
au lieu d'un GPUBuffer
à setVertexBuffer()
sur GPURenderPassEncoder
ou GPURenderBundleEncoder
vous permet d'annuler la définition d'un tampon de sommets précédemment défini dans un emplacement donné. Voir issue dawn:1675.
// Set vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, myVertexBuffer);
// Then later, unset vertex buffer in slot 0.
myRenderPassEncoder.setVertexBuffer(0, null);
Annuler la définition du groupe de liaisons
La transmission de null
au lieu d'un GPUBindGroup
à setBindGroup()
sur GPURenderPassEncoder
ou GPURenderBundleEncoder
vous permet de désactiver un groupe de liaisons précédemment défini dans un emplacement donné. Voir issue dawn:1675.
// Set bing group in slot 0.
myRenderPassEncoder.setBindGroup(0, myBindGroup);
// Then later, unset bind group in slot 0.
myRenderPassEncoder.setBindGroup(0, null);
Couper le son des erreurs lors de la création asynchrone d'un pipeline en cas de perte d'un appareil
Les méthodes createComputePipelineAsync()
et createRenderPipelineAsync()
de GPUDevice
renvoient une promesse qui se résout une fois la création du pipeline terminée. À partir de maintenant, les erreurs liées à la création asynchrone du pipeline seront mises sous silence lorsque GPUDevice
est défini sur lost
pour que les appareils perdus semblent fonctionner autant que possible. Consultez dawn issue:1874.
Mises à jour apportées à la création du module de nuanceur SPIR-V
La création d'un module de nuanceur SPIR-V avec createShaderModule()
génère désormais une erreur TypeError, sauf si vous exécutez Chrome avec l'indicateur "Unsafe WebGPU Support", car SPIR-V ne fait pas partie de la spécification WebGPU. Avant cette modification, l'utilisation de SPIR-V entraînait la génération d'une erreur GPUInternalError.
Consultez la section Modifier chromium:4711911.
Améliorer l'expérience des développeurs
Amélioration du message d'erreur de validation pour les liaisons de mise en page de groupe de liaisons dans le nuanceur de sommets pour le tampon de stockage en lecture/écriture et les liaisons de texture de stockage en écriture seule. Voir issue dawn:1883.
Mettre en cache des pipelines avec une mise en page générée automatiquement
Les pipelines créés avec createRenderPipeline({ layout: "auto" })
tirent désormais parti des mécanismes de mise en cache dans Chrome. Cela signifie que ces pipelines seront créés plus efficacement et utiliseront moins de mémoire. Voir issue dawn:1933.
Mises à jour de l'aube
wgpu::RequestAdapterOptionsBackendType
fait désormais partie de wgpu::RequestAdapterOptions
pour permettre aux applications de demander plus facilement un backend particulier lors de l'obtention d'un adaptateur. Consultez l'exemple suivant et le problème dawn:1875.
wgpu::RequestAdapterOptions options = {
.backendType = wgpu::BackendType::D3D12};
// Request D3D12 adapter.
myInstance.RequestAdapter(&options, myCallback, myUserData);
Plusieurs méthodes supplémentaires ont été implémentées pour Node.js. Voir change dawn:142465.
L'API C webgpu.h a changé son type pour les valeurs booléennes de stdbool
à WGPUBool
, qui est un uint32_t
. Cette modification a été apportée pour garantir que l'API possède une ABI équivalente en C et C++.
Nous n'aborderons ici que certains des points clés. Consultez la liste exhaustive des commits.
Nouveautés de WebGPU
Liste des points abordés dans la série Nouveautés de WebGPU.
Chrome 125
- Sous-groupes (fonctionnalité en cours de développement)
- Effectuer le rendu sur une tranche de texture 3D
- Informations dès l'aube
Chrome 124
- Textures de stockage en lecture seule et en lecture/écriture
- Assistance pour les service workers et les workers partagés
- Nouveaux attributs d'informations sur l'adaptateur
- Corrections de bugs
- Informations dès l'aube
Chrome 123
- Compatibilité des fonctions intégrées DP4a en WGSL
- Paramètres de pointeur non restreints dans WGSL
- Sucre syntaxique pour déréférencer des composites en WGSL
- État en lecture seule distinct pour les aspects du pochoir et de la profondeur
- Informations dès l'aube
Chrome 122
- Élargir la couverture grâce au mode de compatibilité (fonctionnalité en développement)
- Augmenter la limite maxVertexAttributes
- Informations dès l'aube
Chrome 121
- Prendre en charge WebGPU sur Android
- Utiliser DXC au lieu de FXC pour la compilation de nuanceurs sous Windows
- Horodatage des requêtes dans les passes de calcul et de rendu
- Points d'entrée par défaut des modules de nuanceurs
- Prendre en charge display-p3 en tant qu'espace colorimétrique GPUExternalTexture
- Informations sur les segments de mémoire
- Informations dès l'aube
Chrome 120
- Compatibilité avec les valeurs à virgule flottante 16 bits dans WGSL
- Repoussez les limites
- Modifications de l'état du pochoir de profondeur
- Mises à jour des informations concernant l'adaptateur
- Quantification des requêtes d'horodatage
- Fonctionnalités de nettoyage de printemps
Chrome 119
- Textures flottantes 32 bits filtrables
- Format des sommets unorm10-10-10-2
- format de texture rgb10a2uint
- Informations dès l'aube
Chrome 118
- Compatibilité avec HTMLImageElement et ImageData dans
copyExternalImageToTexture()
- Compatibilité expérimentale avec la texture de stockage en lecture/écriture et en lecture seule
- Informations dès l'aube
Chrome 117
- Tampon des sommets non défini
- Groupe de liaisons non défini
- Couper le son des erreurs lors de la création asynchrone d'un pipeline en cas de perte d'un appareil
- Mises à jour apportées à la création du module de nuanceur SPIR-V
- Améliorer l'expérience des développeurs
- Mettre en cache des pipelines avec une mise en page générée automatiquement
- Informations dès l'aube
Chrome 116
- Intégration de WebCodecs
- Appareil perdu renvoyé par GPUAdapter
requestDevice()
- Assurer une lecture vidéo fluide si
importExternalTexture()
est appelé - Conformité aux spécifications
- Améliorer l'expérience des développeurs
- Informations dès l'aube
Chrome 115
- Extensions de langage WGSL compatibles
- Compatibilité expérimentale avec Direct3D 11
- Utiliser un GPU distinct par défaut sur secteur
- Améliorer l'expérience des développeurs
- Informations dès l'aube
Chrome 114
- Optimiser JavaScript
- getCurrentTexture() sur un canevas non configuré génère une erreur InvalidStateError
- Mises à jour WGSL
- Informations dès l'aube